问题标签 [eiffel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
104 浏览

eiffel - 埃菲尔的奇怪“Check_VIOLATION”测试用例失败

下图中的主要问题是,当添加“check Result end”语句时,它会自动失败并在调试器中显示“CHECK_VIOLATION”错误。

此外,HASH_TABLE 不会存储给它的所有项目,但我通过切换 HASH_TABLE[G, INTEGER] 而不是使用当前的 HASH_TABLE[INTEGER, G] 解决了这个问题

我的主要问题是为什么它总是抛出 Check_violation 并在看到“检查结果结束”语句时失败?也许 HAS[...] 功能不好?

目前,任何带有“检查结果结束”的测试用例功能都会使其为假并抛出 CHECK_VILOATION

在此处输入图像描述

代码:

测试代码:

0 投票
1 回答
163 浏览

eiffel - 将 Eiffel 循环翻译成不支持循环不变量/变量的语言

Eiffel 中的循环遵循以下格式:

您如何将上述 Eiffel 伪代码翻译成不支持循环不变量/变量的语言?让我们假设这样的目标语言有一个assert检查不变量/变量的指令。

0 投票
1 回答
177 浏览

eiffel - Eiffel 中具有特征的后条件违规

这是课程的一部分。这个类被称为 BAG[G -> {HASHABLE, COMPARABLE}] 它继承自 ADT_BAG,ADT_BAG 具有延迟功能,例如计数、扩展、删除、remove_all、add_all...更多,以及要重新实现的域。

域返回 ARRAY[G],它是 G 的排序数组列表

我总是得到后置条件违规“value_semantics”,这与对象比较有关,但我检查过,没有用于对象比较的代码,这很奇怪。

我多次尝试重新制作域功能的代码,但它总是以违反后置条件或失败而告终。

当我检查调试器时,从域返回的数组“a”总是计数为 0,但这没有意义,因为我将键从表移动到“a”但计数仍然为 0。

也许我将错误的键转移到数组?

代码:

测试代码:

0 投票
1 回答
76 浏览

sockets - 在 Eiffel 网上启动客户端-服务器模型的开发人员异常

我正在尝试使用 Eiffel 编程语言在同一 LAN 上的两台 PC 之间使用套接字建立连接。我正在尝试运行 Eiffel Studio 安装目录中默认的示例。但是现在我正试图通过寻址到本地主机(127.0.0.1)在同一台机器上实现它。

它在 Linux(Ubuntu 15.10)上完美运行,但在 Windows 7 上,当我尝试运行客户端程序时出现异常。异常代码为 24 无法建立连接。服务器程序运行得很好,我已经在 linux 上的客户端和 windows 上的服务器之间建立了连接。我在文档或其他网站上都没有找到解决此异常的方法。这是一个屏幕截图:

调试器的屏幕截图

这是文档的链接:

https://www.eiffel.org/doc/solutions/Two%20Machines

先感谢您。

0 投票
1 回答
814 浏览

void - Eiffel 附加语句中的局部变量有什么意义?

在 Eiffel 中,Void Safety 是一种静态防止取消引用未初始化(“null”)对象的方法。它的工作方式是,首先,必须将对象声明为detachable,然后您需要在 if 块中检查该对象是否实际附加(即具有某些值),然后才能使用它。

这就是我到目前为止一直在使用它的方式:

工作得很好:没有附加检查,编译失败并出现“Object_call 的目标可能无效”错误。然而,在实际阅读了关于 Void Safety 的文档之后,我了解到这实际上是它应该看起来的样子:

在这种形式中,是if 块的局部l_some_object变量,它指向与相同的对象,但静态保证为非 void。some_object

但是,我看不出这个 as-clause 存在的原因。正如我上面所指出的,显然原件some_object已经在 if 块中静态保证是非空的,那么引入另一个变量有什么意义呢?

除了范围之外,some_object和之间有什么区别?l_some_object

0 投票
0 回答
261 浏览

macos - 运行 EiffelStudio 的库版本不兼容

我像这样安装了 EiffelStudio:

1)从官方页面下载Eiffel_15.12_gpl_98497-macosx-x86-64.tar.bz2 。

2)

cd /usr/本地

tar xvfj /路径/Eiffel_15.12.tar.bz2

3)

导出 ISE_EIFFEL=/usr/local/Eiffel_15.12

出口 ISE_PLATFORM=macosx-x86-64

导出 PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin

然后我输入“ ec ”来运行命令行编译器,这是输出:

dyld:库未加载:/opt/local/lib/libiconv.2.dylib

引用自:/usr/local/Eiffel_15.12/studio/spec/macosx-x86-64/bin/ec

原因:库版本不兼容:ec需要8.0.0或更高版本,但libiconv.2.dylib提供7.0.0版本

跟踪/BPT 陷阱:5

有什么解决办法吗?

PS:我使用的是 OSX 10.11.4

PPS:当我跑步时

otool -L $(哪个ec)

我明白了

/usr/local/Eiffel_15.12/studio/spec/macosx-x86-64/bin/ec:

/opt/local/lib/libiconv.2.dylib(兼容版本 8.0.0,当前版本 8.1.0)

...

编辑:我发现这个链接对我有帮助

https://stackoverflow.com/a/19016967/6273708

但知道错误信息是

dyld:库未加载:/opt/local/lib/libgtk-x11-2.0.0.dylib

引用自:/usr/local/Eiffel_15.12/studio/spec/macosx-x86-64/bin/ec

原因:找不到图片

跟踪/BPT 陷阱:5

0 投票
1 回答
109 浏览

functional-programming - 使用 Eiffel 代理的函数组合

我正在尝试用 Eiffel 编程语言进行函数组合。通过函数组合,我的意思是创建一个函数,它接受两个函数 f(x)、g(x) 并返回一个函数 f(g(x))。

问题是内联代理无法访问本地值。在下面的代码中,f 和 g 是代理中的未知标识符。

我怀疑可能有某种方法可以通过使用一个接受一个整数和两个函数参数的代理,然后将 f 和 g 显式传递给该代理,但我不确定。

如果有人可以提供一些见解,将不胜感激。

0 投票
1 回答
198 浏览

syntax - Eiffel - 不知道为什么我有语法错误

我是 Eiffel 的新手,我正在尝试创建一个名为“Monomio”的简单类,我有 3 个作为属性的特性和一个作为函数的特性。问题是我遇到了语法错误,我将它与我找到的其他类进行了比较,但在这里找不到错误。这是我的代码

这是我得到的错误:

我希望任何人都可以帮助我。谢谢。

0 投票
2 回答
101 浏览

project-organization - 埃菲尔合同质疑

我正在开发一个用 Eiffel 语言编写的规划软件,我创建了以下代码,但我不太确定应该为此类的例程指定哪种后置条件和/或前置条件。

如果您可以为此提供语法提示,那就太好了,因为我不是埃菲尔语言的大师,而且以我目前的知识水平,它的关键字仍然有点棘手且难以理解。

0 投票
1 回答
656 浏览

linked-list - Eiffel - 如何初始化 LINKED_LIST?

我是 Eiffel 的新手,我正在尝试创建 Linked_List 的实例。我不太确定如何使用此类,因为每当我尝试这样做时都会收到语法错误。这就是我所拥有的:

我得到的错误是:

我希望有人可以帮助我解决这个问题,谢谢。