问题标签 [language-theory]

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 投票
2 回答
1305 浏览

language-agnostic - 语言评估问题:渴望与。懒惰的

我正在阅读 Shriram 的 PLAI,这让我陷入了以下问题:

  1. 你能证明急切和懒惰的政权总是会产生相同的答案吗?(Shriram 要求查看他开发的语言,但还有其他方法可以证明这一点以及如何证明吗?)

  2. 急切的评估总是会随着更少的步骤而减少吗?

这是 Clojure 中的替换代码和热切评估代码。

0 投票
1 回答
575 浏览

theory - 文本协议哪个不是常规语言?

表示与文本网络协议相关的语法方式的常用方法是使用 ABNF。

就像任何与 EBNF 相关的元语法一样,ABNF 能够描述上下文无关的语法。

这些上下文无关的语法可以代表一种非常规语言,对吧?

实现网络堆栈的常用方法是开发状态机。是否有任何不是常规语言的文本网络协议?

0 投票
5 回答
3751 浏览

language-agnostic - 除了 Logo 和 Emacs Lisp,还有哪些纯动态作用域语言?

有哪些动态范围语言的例子?选择这种设计的原因是什么?是因为它易于实施吗?

0 投票
6 回答
5038 浏览

python - 究竟什么是“注册机”?

http://code.google.com/p/unladen-swallow/wiki/ProjectPlan我引用:

“使用 JIT 还可以让我们将 Python 从基于堆栈的机器转移到注册机器,这已被证明可以提高其他类似语言的性能(Ierusalimschy 等人,2005 年;Shi 等人,2005 年)。”

在大学里,我为带有递归过程的语言构建了一个简单的编译器——它为每个调用的过程维护堆栈帧——这样它们就可以被递归调用,这样参数和返回值就可以工作......

2件事:

1)考虑到上面引用中使用的术语,我认为我实施的东西将被视为“基于堆栈的机器”是否正确?

2) 如果我在第 (1) 点的假设是正确的,那么“注册机”是如何工作的?即它与基于堆栈的机器有何不同?

谢谢!

0 投票
3 回答
113 浏览

programming-languages - 关于基于契约/约束的类型系统的好信息?

问题:

我正在寻找关于类型系统的良好介绍,它们基于合同/约束
(抱歉,我不记得哪个术语适合类型系统)

我需要这些信息才能实现这种实验类型的系统。

据我所知,XSD(Xml Schema Definition)中使用了这种类型系统。

不是定义数据类型,而是定义一组可能值的约束。

例子:

我用一个参数定义了一些方法,它要么是"nothing",要么与整数范围匹配[0..100]

这种方法将接受以下值:

我希望,我可以说清楚自己。

0 投票
6 回答
11441 浏览

programming-languages - “闭包”和“块”之间究竟有什么区别?

我发现很多人交替使用闭包阻塞这两个词。这些人中的大多数都无法解释他们在说什么。

一些 Java 程序员(甚至来自非常昂贵的咨询公司的程序员)将匿名内部类称为“块”和“闭包”——但我知道这不是真的。(您不能从定义它们的方法的范围内传递可变变量......)

我在找:

  • 块的精确的计算机科学定义
  • 闭包的精确计算机科学定义
  • 澄清两者之间的区别。

我真的很想看到关于这些的链接、文章或书籍参考

0 投票
1 回答
125 浏览

types - 数据类型编程

我知道“命令式”和“函数式”编程,但在“数据类型”编程方面我几乎找不到。有没有这样的事情,它与其他范式有什么关系?

0 投票
7 回答
23929 浏览

programming-languages - 所有的迭代算法都可以递归表达吗?

如果没有,是否有一个很好的反例来显示不存在递归对应的迭代算法?

如果是所有迭代算法都可以递归表示的情况,有没有更难做到的情况?

另外,编程语言在这一切中扮演什么角色?我可以想象,与纯 Java 程序员相比,Scheme 程序员对迭代(=尾递归)和堆栈使用有不同的看法。

0 投票
2 回答
652 浏览

scheme - CPS 转换后的行政重述究竟是什么?

在 Scheme 和CPS转换的上下文中,我在确定管理redexes (lambdas) 到底是什么时遇到了一些麻烦:

  • CPS 转换引入的所有lambda 表达式
  • 只有CPS 转换引入的 lambda 表达式,但如果您“手动”或通过更智能的 CPS 转换器进行转换,您就不会编写

如果可能,欢迎提供良好的参考。

0 投票
3 回答
3904 浏览

terminology - 运行时定义

什么是运行时?而且我的意思不是“在运行时”=程序/脚本正在运行。我是说

<your-interpreted-language-here> 运行时