Programming languages 创建一种编程语言以编写程序的指南?
我目前正在研究编程语言和解释器设计。我已经创建了几种编程语言,但到目前为止无法实现我的目标: 创建一种编程语言,重点是让程序员在编写代码时有一种良好的感觉。它应该是有趣的和/或有趣的,而且在任何情况下,在里面写东西都不会让人讨厌 我在用Python编写代码时有这种感觉。我有时会用PHP来反驳,在一些情况下,当需要在C++中重新发明一些轮子时, 因此,我试图找出一些语法特性,使我的新语言编程变得有趣,但我就是找不到Programming languages 创建一种编程语言以编写程序的指南?,programming-languages,Programming Languages,我目前正在研究编程语言和解释器设计。我已经创建了几种编程语言,但到目前为止无法实现我的目标: 创建一种编程语言,重点是让程序员在编写代码时有一种良好的感觉。它应该是有趣的和/或有趣的,而且在任何情况下,在里面写东西都不会让人讨厌 我在用Python编写代码时有这种感觉。我有时会用PHP来反驳,在一些情况下,当需要在C++中重新发明一些轮子时, 因此,我试图找出一些语法特性,使我的新语言编程变得有趣,但我就是找不到 哪些具体的特性(可能主要是语法方面的特性)可以使语言编程变得有趣 示例: 我发
- 哪些具体的特性(可能主要是语法方面的特性)可以使语言编程变得有趣
- 如果你能在回答中只举一个例子,那就太好了
- 这些功能不一定已经存在于任何语言中李>
例如,在C++中使用STL,许多算法对于所有容器甚至字符串都是相同的。这使它很好地使用。。。除了那些不遵循相同API(如布尔向量)的部分外,差异更为明显。
编程语言应使编写正确程序变得容易,而编写错误程序则变得困难(如果不是不可能的话)。例如,在Java中long x = 2000000000 + 2000000000;
溢出,而
long x = 2000000000L + 2000000000;
没有。这是显而易见的吗?我不这么认为。有人想让东西溢出来吗?我不这么认为。要记住的两件事是和。欢闹
- 遵循常见做法(如使用+进行加法和位/逻辑and)
- 在名称空间中对逻辑相似的代码进行分组
- 拥有广泛的字符串处理库
- 合并调试设施
- 对于跨平台语言,尽量减少平台差异
- 俱乐部
- 萨特
- 口齿不清
- 计划
- 闲话
- Perl
- 蟒蛇
- 哈斯克尔
- 斯卡拉
- PHP
- C
- C++
- 爪哇
- C#
- 目标-C
- 二郎
- 你在问题中提到了Ruby。另外,Ruby是唯一的编程语言,对于它来说,Joy是一个实际的、明确的、明确的设计目标。(事实上,这是唯一的设计目标。)
松本幸弘之所以能够以这种方式设计Ruby,是因为他在开始设计Ruby之前已经知道并使用了大量的编程语言,并且为了设计Ruby学习了大量的编程语言。(有趣的是,他不懂Python,并且说如果他懂的话,他可能不会创建Ruby。)
这里只是matz自己使用的语言中的一小部分,或者是为了寻求灵感(或者在某些情况下是为了寻求灵感,不做什么):
当然,这需要你真正了解所有你想“窃取”的语言,特别是需要你了解很多不同的语言,有不同的范式、不同的概念和不同的“感觉”,否则,你从中窃取的想法库就相当小,而且是近亲繁殖的。一种看似简单易学的语言功能,以其意想不到的能力让程序员感到惊讶和愉悦。我推荐Haskell类型的课程:-)有趣吗?为谁?5岁?前COBOL程序员?说英语的人?对你来说,回答这个问题的人我的观点是,
令人愉快的
是非常主观的,不同的人对此会有不同的看法。这是本周最愚蠢的问题。见鬼,是的!编程语言应该只有一种数字类型:number
int
,long
,real
,double
,bigint
,bigdecimic
,fixnum
是优化,优化属于优化器,而不是编程语言。正如Gilad Bracha最近在他的解构Java演讲中指出的那样:“Java有9种整数类型:字节
,短
,int
,长
,字节
,短
,整数
,长
和双十进制
。它们的行为都不像整数。”()这就是Ada创建的目的。正好是1个数字类型。。你想要BCPL!(C的前身)我认为VB6已经涵盖了这一点:-P-1在实用语言中没有用处。啊,但它说“这是令人愉快和有趣的”:)lolcode不有趣。你试过用它写一个图形化的多线程界面吗?我没有。这也是一个笑话。乔治·爱迪生:好吧,没错,如果你使用某种消息传递的比喻,多任务处理要容易得多。我会给你的。所以让我们试试,“如果没有大量的库支持”,我仍然认为C/C++会失败:)(也许有人应该为LOLCODE编写一个消息库,它可以被称为OHAI)。