当前位置: > 投稿>正文

世界编程语言排行榜,十大最热门世界编程语言排行榜(65种创建编程语言的资源)

02-12 互联网 未知 投稿

关于【世界编程语言排行榜】,十大最热门世界编程语言排行榜,今天犇犇小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

1、65种创建编程语言的资源

作者 | Gabriele Tomassetti

赛希翻译组 译

在本指南中,我们将告诉你如何收集并整理你需要的所有知识,从头开始创建你自己的编程语言。

作为一名开发人员,创建一门编程语言是最令人着迷的挑战之一。

问题在于有很多活动部件,许多事情需要做正确,而且很难找到一个详尽的“地图”为你指明方向。当然,你可以找到关于编写解析器的零散教程,关于语言设计的不成熟建议列表,未经完善的解释器案例,但你需要花大量时间浏览论坛和链接来寻找这些东西。

而在这里,我们已经收集了相关的资源,对它们进行了评估和整理,从而让你们的时间用于使用优秀的资源,而不是去寻找它们。

我们围绕创建编程语言的三个阶段来组织资源:设计,解析和执行。

一、设计语言

在创建一种编程语言时,需要把想法转化为决策。这就是你在设计阶段所要做的。

在开始之前

浏览一些优秀的资源来强化你对语言设计的认识。

文章

《设计下一个编程语言?了解人们是如何学习的!》本文介绍了一些关于如何设计一个简单易懂的编程语言的注意事项。

《关于语言设计的五个问题》Paul Graham关于编程语言设计的一些好的说明。

书籍

《编程语言中的设计概念》,如果你想在创建编程语言时做出慎重的选择,那么这就是你需要的书。如果你不具备必要的理论背景,你就可能会按照别人的方式做事。此外,制定一个通用框架来理解不同编程语言的行为方式及其原因也很有用。

《编程语言语用学,第4版》,如果你想了解当代编程语言,这是最全面的一本书。它从不同角度谈论了从c#到OCaml各个方面,甚至还谈论了不同种类的编程语言,如函数式语言和逻辑式语言。它也涉及了执行的步骤,如中间语言、链接、虚拟机等。

《计算机程序的构造和解释,第二版》,这本书向已经获得计算机科学学位的人介绍计算机科学。该书被包括Paul Graham在内的程序员广泛称赞,它帮你开拓看待编程语言的新角度。它很抽象,利用Scheme来展示例子。它还涵盖了编程语言的许多不同方面,包括像垃圾回收这样的高级系列。

类型系统

漫长的讨论和无休止的争议都是围绕着类型系统展开的。无论你最后选择什么,了解不同的立场都是有意义的。

文章

这是有关类型系统主题的两篇很好的入门文章。第一篇文章讨论静态/动态类型检查的二分法,第二篇文章深入探讨自省。

《在讨论类型系统之前要知道什么》,如果您已经了解了类型系统的基础知识,那么本文将通过详细的定义和细节让你更好地理解它们。

《类型系统(PDF)》,本文在类型系统形式化的基础上,对不同类型系统进行了更精确的定义。

书籍

《类型和编程语言》,这是一本很全面的书,帮助你更好地理解类型系统。它一定会提升你设计编程语言和编译器的能力。它有很强的理论基础,但它也解释了个别概念的实际重要性。

《函数式编程与类型系统》,这是关于函数式编程类型系统的一门有趣的大学课程。它被法国一所著名的大学使用,还有笔记和演示材料可用。正如你所期望的那样,它很高级。

《编程语言的类型系统》,这是一门简单的(函数式)编程语言类型系统课程。

二、解析

解析将具体语法转换为计算机更易于管理的形式。这通常意味着将人们编写的文本转换为更有用的源代码表示形式,即抽象语法树

在解析中通常有两个组件:词法分析器和适当的解析器。词法分析器又称标记器或扫描器,它将各个字符转换为标记,即意义的原子。相反,解析器将标记组织在适合程序的抽象语法树中。但由于它们通常是一起工作的,你可以使用单个工具来完成两个任务。

工具

使用Flex作为词法分析器生成器,使用(Berkeley) YaccBison生成适当的解析器,是生成完整解析器较为古老的选择。它们已经有几十年的历史了,仍然保留为开源软件。两者都是用C/C++编写的,也是为C/C++创建的,并且它们仍然有效,但是在功能和对其他语言的支持方面存在局限。

ANTLR既是词法分析器又是解析器生成器,它也积极地开发为开源软件。它是用Java编写的,但它可以用c#、c++、Python、Javascript、Go等多种语言生成词法分析器和解析器。

你自己的词法分析器和解析器。 如果你需要最佳性能,则可以创建自己的解析器。你只需要具备必要的计算机科学知识。

教程

Flex和Bison教程对这两个工具进行了很好的介绍,并附有额外的技巧。

Lex和Yacc教程,共40页,是学习如何在几个小时内将lex和yacc组合在一起的理想入门教程。

关于lex/Yacc的视频教程分为两部分(第1部分和第2部分)。在一个小时的视频中,你可以学习使用lex和Yacc的基础知识。

ANTLR Mega Tutorial是一个著名的、受欢迎的教程,它解释了你需要知道的有关ANTLR的一切,并提供了额外的技巧和其他资源,以帮助你学习更多。

书籍

《lex & yacc》,尽管这本书写于1992年,但它仍然是这方面最值得推荐的书。

《flex&bison:“文本处理工具”》 ,这是本世纪撰写该主题的最佳书籍。

《权威的ANTLR 4参考》,由该工具的主要作者编写的这本书是关于ANTLR 4的权威书籍。它解释了其所有的秘密,同时也很好地介绍了整个解析的工作原理。

《解析技术,第2版》,一本全面,高级且昂贵的书,可以让你了解更多关于解析的知识。

三、执行

要实现你的编程语言,也就是说,要使一些事情真正实现,你可以构建以下两种方法之一:编译器或解释器。如果需要,你也可以同时构建它们。

如果需要,你可以在这里找到很好的概述: 编译语言和解释语言。这些资源专门用于解释如何构建编译器和(或)解释器,但出于实际原因,它们通常还解释创建词法分析器和解析器的基础知识。

编译器

编译器将原始代码转换为其他东西,通常是机器代码,但也可以是任何较低级别的语言,例如C语言。在后一种情况下,有些人更喜欢使用术语“transpiler”。

工具

LLVM,是用于创建编译器的一组模块化和可重用的编译器和工具链技术。

CLR,是NET技术的虚拟机部分,允许你将不同的语言转换成通用的中间语言。

JVM,是支持Java执行的Java虚拟机。

文章和教程

2008年2月 ,《 MSDN杂志》的电子版(CHM格式)包含了一篇关于如何为NET Framework创建语言编译器的文章。它是对整个过程的有效概述。

《LLVM文档中的一系列教程》这是一个很不错的系列,包括三个教程,介绍如何使用LLVM实现一种名为Kaleidoscope的语言。唯一的问题是有些部分并非总是最新的。

《我的第一个LLVM编译器》,它简短而温和地介绍了如何用LLVM构建编译器。

《为Cpu0体系创建LLVM后端》,这是一个长达600页的教程,教你如何创建LLVM后端,它也有PDF或ePub版本。它的内容很棒,但英文表达欠佳。从积极的方面看,如果你是一个学生,他们感受到了你将理论知识转化为实际应用的痛苦,而这本书是为你准备的。

《用于编译器教育的Nanopass框架》,该论文提出了一个框架,以一种更简单的方式教授如何创建编译器,将传统的单一方法转变为一系列简单的转换。如果你已经具备了一些计算机科学的理论背景,这是一本有趣的读物。

《编译器构造的增量方法(PDF)》,该论文也是一种使用简单易学的方法开发基本Scheme编译器的教程。

书籍

《编译器:原理,技术和工具,第2版》,这是著名Dragon书籍的第二版(紫色龙)(由于封面)。还有一种平装本,价格可能更低,但上面没有龙,因此你无法购买。这是一本理论书籍,因此不要指望这些技术能真正包含很多可以重复使用的代码。

《工程编译器,第二版》,这是另一本采用理论方法的编译器书籍,但它采用了更现代的方法,更具可读性。它也更致力于编译器的优化。所以如果你需要理论基础和工程方法的话,这本书是最好的选择。

解释器

解释器直接执行语言,而无需将其转换为另一种形式。

文章和教程

《一个从头开始使用Python的简单解释器》,这是一个由四部分组成的系列文章,内容涉及如何在Python中创建解释器,简单优秀。

《让我们来构建一个简单的解释器》,这是由12部分组成的系列文章,介绍了如何为Pascal的一个子集创建解释器。源代码是用Python编写的,但是它有足够的理论量以适用于另一种语言,它还有很多有趣的图片。

《如何编写解释器》,这是一个有可用源代码的视频,介绍了如何使用Python编写简单语言的解释器。

《如何用JavaScript编写一个简单的解释器》,这是一篇条理清晰的文章,解释了如何用JavaScript创建一个简单的解释器。

书籍

《用Go编写解释器》,尽管标题如此,但它实际上展示了从解析到创建解释器的所有内容。它很新,是最近出版的,而且篇幅很短,充满了代码和测试,没有第三方库,传递了边做边学的态度。

《制造解释器》,这是一本正在编写的免费书籍,已经有了不错的评价。它的重点是让解释器运作良好。实际上,你将在本书的过程中建立两个。它计划拥有适量的理论,以适合编程语言创建者的聚会。

四、通用编程语言资源

这些资源涵盖了创建一种编程语言的广泛过程。它们可能是全面的,也可能只是给出一个大致的概述。

工具

在这一节中,我们将介绍一些工具,它们涵盖了构建编程语言的整个范围,这些工具通常作为独立的工具使用。

Xtext是开发编程语言(尤其是领域特定语言)的几种相关技术的框架部分。它允许你构建从解析器到编辑器再到验证规则的所有内容。你可以使用它为你的语言构建强大的IDE支持。通过重复使用和链接内部现有技术(比如ANTLR解析器生成器),它简化了整个语言构建过程。

JetBrains MPS是投影语言工作台。投影是指将抽象语法树保存在磁盘上,并向用户呈现投影。投影可以是类似文本,也可以是表格或图表,或你可以想象的其他任何东西。这样做的一个副作用是,你将不需要做任何解析,因为没有必要。术语“语言工作台”表示Jetbrains MPSS是一个完整的技术系统,用于帮助你创建自己的编程语言:从语言本身到IDE,再到帮助你语言设计的工具。你可以用它来创建每一种语言,但是创建一切的可能性和需求使其成为创建特定领域语言的理想选择,这些语言被特定的受众用于特定的目的。

Racket被其作者描述为 "一种通用的编程语言,也是世界上第一个用于开发和部署新语言的生态系统"。这是一种具有实践野心的教学工具,甚至还有宣言。它是创建其他语言的一种语言,具有所有功能:从库到开发的GUI应用程序,到IDE和开发逻辑语言的工具。它是Lisp语言家族的一部分,告诉你你需要了解的所有内容:要么全有,要么全无,而且永远是Lisp的方式。

文章

《为JVM创建一种编程语言:入门》,概述如何以及为什么要为JVM创建一种语言。

《告诉你如何编写一个非常基本的编译器》,文章很好地回答了这个问题,它概述了构建编译器所需的步骤和可用的选项。

《用Racket创建语言》,来自ACM期刊上对Racket的精彩概述和介绍,并附有代码。

《易处理的Scheme实现(PDF)》,这是一篇讨论Scheme实现的论文,着重于可靠性和易处理性。它构建了一个解释器,该解释器将动态生成一种字节码。然后,该字节码将由VM立即执行。它得名于原始版本是在48小时内构建的。完整的源代码可在该项目的网站上找到。

教程

《创建一个有用的语言和所有支持工具》,这一系列的文章,从零开始,教你从解析到建立一个可以自动完成的编辑器,同时构建针对JVM的编译器。

有关Racket的大量文档,即使你不知道任何编程语言,它们也可以帮助你开始使用它。

有关Xtext的大量文档。帮助你开始使用它,其中包括几个《15分钟的教程》。

有关JetBrains MPS的大量文档,包括专业的指南。有一个视频频道,里面有帮助你使用软件的视频,以及介绍了如何用JetBrains MPS创建你的第一语言。

《一小时内讲一门语言:stacker 》,该教程提供了Racket及其工作流程的介绍。

《用JetBrains MPS编程语言中创建你自己的语言》,这个由5个部分组成的系列文章提供了一个简单的示例,说明使用JavaScript构建的创建编程语言的原理。

《创建您自己的编程语》,这篇文章展示了使用JavaCC创建解析器和Java反射功能来创建编程语言的简单而又实用的方法。显然这不是最合适的方法,但它展示了所有的步骤,而且很容易操作。

《使用Flex, Bison和LLVM编写你自己的玩具编译器》,正如标题所说,这篇文章使用适当的工具(Flex, Bison, LLVM等),但它有点过时,因为它是从2009年开始的。如果你想了解整体情况以及如何将所有内容融合在一起,它仍然是一个很好的起点。

《项目:一种编程语言》,这是《Eloquent JavaScrip》一书中的一章。它展示了如何使用JavaScript创建简单的编程语言以及如何用正则表达式进行解析。这一切都错得离谱,但也好得离谱。作者这样做是为了揭开编程语言的神秘面纱。你不应该做这些东西,但你可能会发现阅读它很有用。

《设计一种程序设计语言I》,这比书不足,比文章有余。它很好地结合了理论和实践,实现了所谓的Duck编程语言(灵感来自Duck- typing)。计划了第二部分,该部分解释了如何创建编译器,但还未完成。

《介绍如何构建编程语言》,一个100分钟的视频,用JavaScript实现PHP的一个子集:这有点麻烦,但不可否认它很酷。

《自下向上地用Ruby编写编译器》,这是由45部分组成的关于用Ruby创建编译器的系列文章。由于某种原因,它是自下而上开始的,也就是说从代码生成到最后的解析器。这与传统的(合乎逻辑的)做事方式相反。这很奇特,但也很踏实。

《使用c# 4.0实现编程语言》这种方法很简单,库也很过时,但这篇文章很好地介绍了如何用c#构建解释器。

《如何创建自己的虚拟机!(PDF)》,本教程解释了如何用c#创建一个虚拟机。这很有趣,尽管不一定实用。

书籍

《如何创建实用的轻量级语言》,它的重点是创建一种在实践中有效的语言。它解释了如何生成字节码,针对LLVM,为你的语言构建编辑器。一旦你读了这本书,你就应该知道制作一种有用的、有成效的语言所需的一切。顺便说一句,我们已经写了这本书。

《如何创建自己奇妙的编程语言》,它是一个100页的PDF文件和一个视频,教你如何使用Ruby或JVM创建一种编程语言。如果你喜欢速成,这本书将使你在短时间内入门。

《编写编译器和解释器:软件工程方法,第3版》,这是一本实用的书,也是教授编译器/解释器的正确方法。只不过,它不是以学术为重点,而是以工程为重点。这意味着书中充满了Java代码,而且到处都是UML。技术和代码都略显过时,但如果你是软件工程师,并且需要尽快产出一些可以正常运作的东西,即审核完成后的几个月内完成,这仍然是最好的书。

《语言实现模式》,这是ANTLR的作者写的一本书,他也是一名计算机科学教授。所以这是一本理论与实践相结合的书,它指导你全程,从解析到编译器和解释器。正如它的名字,它着重于解释构建这类软件所使用的已知工作模式,而不是直接解释所有的理论,然后再进行实际应用。如果你需要现在就可以真正使用的东西,这本书就是你的首选。它甚至被Python的设计师Guido van Rossum推荐。

《构建你自己的Lisp》,这是一本非常特别的书,以一个迷你Lisp为主要例子,旨在教你如何使用C语言,以及如何构建自己的编程语言。你可以在网上免费阅读或直接购买。这本书的目的是教你认识C语言,但你必须已经熟悉编程。

《美丽的Racket:如何用Racket构建你自己的编程语言》,这是一本在网上不断更新的,教你如何用Racket构建你自己的编程语言的好书。该书由一系列教程和一些解释和参考组成。这是一本技术上免费的书,但如果你要使用它,应该为它付费。

《编程语言:应用和解释》这是一本有趣的书,解释了如何用Racket从零开始创建编程语言。作者是一名善良的教师。事实上,还有一系列相关讲座的录音,但音频有时会有些问题。

对于那些想要通过示例和使用测试驱动方法来学习的人来说,《用Xtext和Xtend(第二版)实现特定领域的语言》是一本很好的书。它涵盖了DSL设计的所有级别,从类型系统的设计到解析和构建编译器。

《实现编程语言 》是一本介绍如何以JVM为主要目标构建编译器和解释器的书。它很好地平衡了理论和实践,但它明确定义为了教科书,所以不要指望有很多可以重复使用的代码。从某种意义上说,它也是典型的教科书,如果你已经具备必要的背景知识(或你是老师),那它会是一本很棒的著作,否则你可能会感到困惑。

《实现函数式语言:教程》,这是一本免费的书,介绍了如何从解析到解释器和编译器创建一种简单的函数式编程语言。另一方面:“这本书提供了一种实用的方法来理解使用惰性图化简的非严格函数式语言的实现。”此外,预计会有大量的数学知识。

《DSL工程》,一本解释使用MPS和Xtext等语言工作平台构建DSL的理论和实践的好书。这意味着,除了传统的设计方面,如解析和解释器,它还涵盖了诸如如何创建IDE或如何测试你的DSL等内容。它对软件工程师特别有用,因为它还讨论了DSL的软件工程和业务相关方面。也就是说,它讨论了公司为什么应该构建DSL。

《稀碎的Lisp》,这是一本有趣的书,详细解释了如何设计并实现Lisp家族的语言。它描述了“11个解释器和2个编译器”以及许多实现的细节,比如编译器的优化。这本书显然对有兴趣创建Lisp相关语言的人最有用,但对每个人来说都可以是一本有趣的读物。

2、十大最热门世界编程语言排行榜

电脑和手机的不断发展更新,软件行业也在逐步的提高。我们电脑玩的游戏和手机的各种软件都是通过电脑编程而来的,所以编程这一专业成为许多年轻人报考的重要对象。今天就来聊一聊十大最热门世界编程语言排行榜。

操作方法

C是迄今为止最常用、最古老的编程语言之一,于20世纪70年代初创建。1978年,美国贝尔实验室正式发布了C语言,并出版了一本名叫《The C Programming Language》的书,这本书一直被当做C语言的非正式标准说明。

Go最初是由谷歌设计的,专门针对世界上最繁忙的搜索引擎谷歌,为它提供规模巨大的多处理器系统。如今使用GO语言编译的程序已经可以媲美C++和C的速度了,并且更加安全,也已经成为开发人员的热门选择。

这种语言发音为“C-Sharp”,也是由微软开发的。它是Java的竞争对手,主要用于商业软件和系统级应用程序的开发。

层叠样式表(英文全称:Cascading Style Sheets,CSS),是一种广泛用于网站设计和基于浏览器的编程语言。

C++是C编程语言的分支,创建于1983年,我们可以在桌面web应用程序或者服务器框架上找到他。

PHP的应用非常广泛,我们包括雅虎和脸书等大型网络公司都使用PHP作为网站的代码。PHP混合了C语言、JAVA语言、PERL语言,它可以将程序嵌入到html中去执行。

Ruby因易于阅读和编写而赢得了很多赞誉。Ruby可以使构建Web应用程序变得简单。该语言的座右铭是“程序员最好的朋友”,也被许多老程序员称为可读性最强的语言。

Java最初是由Sun Microsystems在1991年创造的,Java吸收了C++的优点,具有功能强大和简单易用的特征。

Python的历史可以追溯到1989年,由荷兰人Guido van Rossum(吉多·范罗苏姆)发明。因其高度可读的代码而深受其程序眼们的喜爱,而且许多程序员认为这是最容易入门的语言。

尽管它们的名字和JAVA很相似,但JavaScript实际上并没有太多与Java有关的东西。它被广泛应用于客户端的脚本语言,最开始是用在html网页上,但它也会让浏览器变慢,有时会让用户暴露于安全漏洞。

特别提示

以上十种编程语言可以说包含了我们生活大部分的软件代码,喜欢编程的同学可以试试学习一种。

本文关键词:世界上最受欢迎的编程语言排名,编程语言排行榜有那些,最流行编程语言排名,世界排名第一的编程语言,全球十大编程语言排行榜。这就是关于《世界编程语言排行榜,十大最热门世界编程语言排行榜(65种创建编程语言的资源)》的所有内容,希望对您能有所帮助!更多的知识请继续关注《犇涌向乾》百科知识网站:http://www.029ztxx.com!

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。

猜你喜欢