language-design 相关问题

与编程语言的任何方面的设计相关的问题的标签。

如何证明agda中简单语言的弱化?

我想证明一个类似于PFPL第4章中Harper的弱化定理,即弱化 : {x : String}。也就是说,弱化:{x : String}。{Γ : Context} {e : Expr} {τ τ': Type} → x ∉dom Γ → Γ ⊢ e ؛ τ' → (Γ , x ؛ τ) ⊢ e ؛......。

回答 1 投票 0

编译器设计中的内联装配

我正在为我自己的类C语言(x86-64)制作自己的编译器。但我很困惑,如何编译另一种语言的片段,即x86-64汇编,如:int main() { ...。

回答 1 投票 2

实现类型推断

我在这里看到一些有关静态类型与动态类型的有趣讨论。由于编译类型检查,更好的文档代码等,我通常更喜欢静态类型。但是,我同意它们这样做...

回答 5 投票 90

在PHP中切换语言时停留在当前页面上

我希望用户可以通过单击语言链接来切换语言而无需更改当前页面。我发现了下面的代码。它可以工作,但是找不到页面,因为页面名称是...

回答 1 投票 1

具有智能数组分配的语言(堆或堆栈)

我正在为(有趣和)科学应用编写小型玩具语言/编译器。核心设计原则是简单性和效率(如果您愿意的话,是某种“现代” Fortran)。语言会...

回答 1 投票 1

为什么没有IAwaitable和IAwaiter接口

我最近了解了具有自定义等待类型的可能性,正如这个问题和斯蒂芬·图布(Stephen Toub)所说,要等待类型有一些要求。因此,如果类型T要...

回答 2 投票 5

为什么短路不是VB中的默认行为?

VB具有运算符AndAlso和OrElse,它们执行短路逻辑结合。为什么这不是And和Or表达式的默认行为,因为在每种情况下短路都是有用的。 ...

回答 3 投票 15

为什么在定义时评估默认参数?

我很难理解算法中问题的根本原因。然后,通过逐步简化函数,我发现在Python中对默认参数的求值...

回答 9 投票 35

读/写Python闭包

关闭是一种非常有用的语言功能。他们让我们做一些聪明的事情,这些事情本来需要很多代码,并且常常使我们能够编写更优雅,更清晰的代码。在...

回答 8 投票 34

Python为什么默认启用断言

我已经阅读了一些有关python和其他语言的assert语句的信息。特别是,我已经阅读了Python,Java和C的断言。我的理解可能不是100%正确,但是...

回答 2 投票 1

Go指针声明:为什么用*代替&?

在C中,声明语法受声明遵循用法的原则的启发,例如int * p就其意义而言; * p确实是一个int。但是C最终以螺旋语法结束...

回答 1 投票 0

如何传递一个空的生成器参数?

我有一个使用生成器加上一些附加参数并返回一个新生成器的方法:function merge(\ Generator $ carry,array $ additional){foreach($ carry as $ item){...

回答 4 投票 14


为什么默认情况下列表不是迭代器

python列表是可迭代的,但不是迭代器。例如:>>> a = [1,2,3] >>> [a中i的i] [1、2、3] >>> next(a)TypeError:'list'对象不是迭代器,但是它...

回答 1 投票 -1

为什么C#的格式说明符是字符串?

为什么格式说明符以字符串类型的C#中的基类型为基础,而不是像枚举这样的更不易出错且更易读的类型?虽然我现在知道许多说明符,但我几乎总是必须加倍......

回答 1 投票 4

为什么Java中没有子类可见性修饰符?

[在不止一种情况下,我发现自己希望获得Java无法实现的可变可见性。我希望某些成员在自己的班级和任何子班级中可见,...

回答 3 投票 70

C ++中的数组衰减

学习C ++是我面临的最烦人的事情之一,是数组衰减,直到我最终发现向量,但它们不能用于某些目的。现在我开始学习PHP,幸运的是,有......>

回答 2 投票 -1

将'::'替换为'。 '用C ++创建歧义吗?

在C ++中,运算符::用于访问命名空间或类中的类,函数和变量。如果使用语言规范。在这种情况下也不要使用::,例如在访问实例时...

回答 1 投票 8

C ++中的函数关键字?

为什么C ++没有关键字来定义/声明函数?基本上,该语言中的所有其他设计抽象都有一个(结构,类,概念,模块等)。它不会使语言...

回答 2 投票 0

多维数组中的括号顺序

int数据[3] [5];是5元素数组的3元素数组。为什么?对我来说,如果int [3]是3个元素的数组,而int [3] [5]应该是3个元素的5个元素的数组,则对我来说是直观的。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.