language-design

    1热度

    2回答

    有时,我有一个控制结构(如果,为...),并根据条件我要么使用控制结构,要么只执行正文。作为一个简单的例子,我可以做在C以下,但它是很丑陋: #ifdef APPLY_FILTER if (filter()) { #endif // do something #ifdef APPLY_FILTER } #endif 另外,如果我只能在运行apply_filter知道这是行不

    1热度

    3回答

    我试图了解命令式和功能式语言之间的区别。 此外,我想了解关闭和垃圾收集器如何实施。所以我决定尝试实现一种功能语言的解释器。 因为我不熟悉函数式语言,所以设计一个函数式语言太困难了。是否有关于简单函数式语言的语法和语义的一些资源?如何做到这一点的教程将是非常有用的。

    20热度

    2回答

    这是一个rvalue参考: void foo(int&& a); 它不结合左值: int i = 42; foo(i); // error 这是一种通用的参考: template<typename T> void bar(T&& b); 它结合到rvalues,它也绑定到左值: bar(i); // okay 这是一个右值引用: template<typename T> st

    0热度

    1回答

    我读语言第5章的概念,并发现 静态的缺点:子程序不能共享相同的存储。 stack-dynamic的优点:没有递归,这不是没有价值的。子程序可以为他们的本地人共享相同的内存空间。 ,我认为这是由于从静态绑定开始终端,所有的子程序应该能看到它,使用 它 喜欢我的代码测试 #include<iostream> static int test = 0; void func1(){ cout << t

    1热度

    1回答

    为了让我的问题具有意义,我必须提供一些背景知识。 我认为这将是非常有用的一个依赖性类型的语言,可以推断论据a的存在和类型,其其它参数和/或返回值有依赖于a类型的函数。考虑语言下面的代码片段我设计: (* Backticks are used for infix functions *) def Cat (`~>` : ob -> ob -> Type) := sig exs

    1热度

    4回答

    例如,向前声明和从Wikipedia section on Alternative function syntax: 类型惩戒是什么加类型LHS和rhs将产生。即使[...] decltype,和这是不可能的: template<class Lhs, class Rhs> decltype(lhs+rhs) //Not legal C++11 adding_func(const Lh

    3热度

    2回答

    编辑:为了澄清,我不打算建议可能不可能为动态语言编写IDE。 /编辑 在我的具体经验中,我正在考虑多年关于JavaScript的谈话/评论,其中很多都在堆栈中,但有时会有人这样说,那么JS没有像样的IDE的原因是因为动态类型使它很难做到。 我曾经想过为JS编写解析器,我不明白类型与自动完成或直接定义东西等功能有什么关系。如果有的话,我会想象通过以动态语言传递参数的范围和可用性在没有类型检查的情况下

    2热度

    2回答

    锈病使用管理指针,写入@T,其是指在物体上,这将被垃圾收集堆。 它还使用借来的指针,写成&T或&lifetime/T。 在我看来,这@T其实类似于借来的指针,而是用一种特殊的无限长的寿命。这是正确的还是有一些微妙之处,我还没有得到?如果这是正确的,Rust为什么创建一种新类型的指针而不是引入魔法生命?

    0热度

    4回答

    可能重复: Why aren’t arrays expandable? 我开始学习Java作为我的计算机科学学校的作业都需要这种语言,我喜欢的语言。但是,我已经看到Java数组不可扩展 - 也就是说 - 在使用它们之前必须声明它们的长度,并且不能进一步更改。 我想知道到底为什么?为什么Java语言设计者选择创建数组呢?我想这是出于性能考虑,但我不确定。 谢谢大家提前。

    0热度

    3回答

    所以我最近决定,为了一个有趣的小宠物编程项目,我会设计我自己的语言并围绕它编译工具(编译器,autodoc,autolint)。到目前为止,我仍然处在语言设计阶段,并且遇到了一个我坚持的话题:关键字是否应该放在上面?通过关键字,我并不是指构建在类型或函数中,我的意思是像“FOR”,“IF”,“ELSE”等词语。我使用它的逻辑是,识别代码要快得多结构和语法,特别是如果语法突出显示不可用(有些地方仍然