15分钟讲解所有较知名编程语言

本内容是对 Every Programming Language Ever Explained in 15 Minutes 内容的翻译与整理。

汇编语言 是一种低级编程语言,它允许人类向计算机硬件发出指令。你知道,计算机只能以0和1的形式执行操作,所以汇编语言的诞生就是为了让计算机指令对人类来说更易于操作。它通过一种叫做汇编器(Assembler)的工具,将人类可读的代码翻译成计算机能理解的0和1。

汇编语言是世界上最早的编程语言之一,曾经是运行超级计算机的标准语言。即便在今天,它仍然被用于处理CPU内存等底层操作,有时也通过WebAssembly在浏览器中使用。

Fortran 是世界上最早的高级编程语言之一。高级语言与低级语言的区别在于:使用低级语言可以更直接地操作计算机内存,执行速度也更快,但学习难度较大;而高级语言更易于理解,支持也更多,但运行速度较慢。

Fortran由IBM在1950年代创建,名称是"Formula Translator"(公式翻译器)的缩写。编写Fortran程序当时需要使用打孔卡,然后通过打卡机读取,并被翻译成计算机可理解的代码,这个翻译过程就叫做"编译",即将人类可读代码转化为0和1。

Comtran (Commercial Translator)是IBM开发的另一种编程语言,被视为Fortran在商业领域的对应版本。Fortran主要用于科学计算,而Comtran则用于商业数据处理。它还受到了另一种编程语言Flow-Matic的影响,该语言运行在一台名为UNIVAC 1的巨型计算机上。

LISP(List Processing)在Fortran之后不久被创建。它以在代码中使用大量括号而闻名,是一门非常具有创新性的语言,启发了许多编程概念。

COBOL(Common Business-Oriented Language)是一种在1959年为商业用途开发的编程语言。虽然它诞生已有几十年,今天仍被许多金融机构用于处理交易。这种语言的代码看起来像英语句子,随后会被转译到打孔卡中。美国国防部是该语言的早期用户之一。

IBM RPG(Report Program Generator)是IBM开发的一种编程语言,主要运行于IBM系统上。它是为数不多使用行和列结构编写代码的编程语言之一。

ALGOL 60(Algorithmic Language 1960)是一种不太为人所知的编程语言,但它启发了后来非常著名的语言------C语言。它也是最早支持嵌套函数的编程语言之一。

APL(A Programming Language)出现于1960年代,主要为了解决代数等数学问题。它在代码中大量使用数学符号和希腊字母。

SIMULA 是几十年前开发的一种编程语言,被认为是世界上最早的面向对象编程语言之一。面向对象编程是一种将代码封装成可重用模块(对象)的方式,对象由类创建,具有属性和方法。例如你可以创建一个类叫"Pokemon",生成一个叫"Charmander"的对象,赋予它"火属性",并让它执行"喷火"和"抓挠"等方法。

SPEAKEASY 是1960年代物理学家常用的一种编程语言,它以在代码中使用颜色而著称。

BASIC(Beginner's All-purpose Symbolic Instruction Code)诞生于1963年的达特茅斯学院,旨在让普通大众也能学会编程。在此之前,编程仅限于科学家和数学家使用。BASIC的语法非常简单易懂,语法指的是编程语言中写代码的规则。

MUMPS(Massachusetts General Hospital Utility Multi-Programming System),有时简称为"M",是为管理医院实验室信息系统和电子健康记录而创建的。它的代码非常简洁,很多命令都可以简写为几个字母。

LOGO 是1960年代开发的一种教育类编程语言,它使用一种叫"海龟绘图"的功能(不是实际的乌龟,而是光标的名字)来绘制几何图形。

Pascal 是1970年代非常流行的一种编程语言,甚至曾是很多电脑的默认语言。它是最早支持IDE(集成开发环境)的编程语言之一。Photoshop就是用Pascal开发的。

C语言 是1970年代由贝尔实验室开发的,至今仍是最受欢迎的编程语言之一,是很多操作系统(如Windows和Linux)的基础。它启发了后来的C++、Objective-C、Go、Java、JavaScript、PHP、Python等语言。C语言以其对内存的低级访问能力而闻名,通过使用"指针"来操作内存。在过去,计算机内存非常有限,程序员必须小心分配,否则会导致内存泄漏,使电脑变得非常慢。

Smalltalk 是1970年代的一种编程语言,以其面向对象编程而知名,启发了许多后来的面向对象语言。

Prolog 是第一种逻辑编程语言,建模理念源于哲学中的形式逻辑。

ML(Meta Language)开创了静态类型的函数式编程,意即数据类型在编写时就明确,如字符串、整数、浮点数或布尔值。字符串是文字和字母,整数是整数,浮点数是带小数的实数,布尔值是"真"或"假"。

SQL(Structured Query Language)是一种用于创建和管理数据库的语言。信息储存在"表格"中,结构由行和列组成。代码看起来像英语句子。今天仍广泛用于存储用户名、密码、交易记录、账户信息等。可以将其类比为Excel表格系统。

C++ 是C语言的扩展,主要区别是它支持面向对象编程,而C语言不支持。C++以学习曲线陡峭著称,但至今仍被广泛用于开发操作系统、网页浏览器、数据库和游戏,是最重要的编程语言之一。

Ada 是1980年代由美国国防部开发的编程语言,命名来自世界上第一位程序员 Ada Lovelace。

MATLAB(Matrix Laboratory)是一种为数据科学家和工程师设计的数学编程语言,广泛用于统计、机器人、人工智能,在学术界仍被广泛使用。

Objective-C 是1980年代受C语言启发而创建的编程语言,曾是苹果电脑和早期iPhone的主语言。虽然它的流行度逐渐下降,但仍可见于某些开发中。苹果在2020年代中期用Swift取而代之。

LabVIEW 是1980年代由National Instruments开发的一种图形化编程语言,不使用传统代码,而是通过图像构建用户界面和处理逻辑。

Erlang 是为电信行业设计的编程语言。

Perl 是一种非常适合处理文本的编程语言,广泛应用于系统管理、网络编程、金融等领域,人称"维系互联网的胶水"。不过其代码看起来可能比较奇怪。

Wolfram Language 是由Stephen Wolfram创建的,可以用于数据可视化、图像处理、数学计算等几乎所有任务,甚至可以帮你找出穿越欧洲的最短路线。

Haskell 是一种函数式编程语言,变量不可变(即声明后不能更改),基于λ演算。

Visual Basic 是微软在1990年代初推出的编程语言,用于创建带有图形用户界面的程序。图形界面即你用鼠标操作的所有屏幕元素。它也有一个同名的IDE。


Brainfxxx(是的,它真的叫这个)是一种非常奇特的编程语言,它只使用八个字符。这就是它的代码样子------每一个字符都有其用处。你可以进行数据输入输出、执行条件循环等等。你知道下面这段代码是做什么的吗?它的作用是输出"hi"这个词(小写)。而下面是大写的版本。如果有人能翻译这段代码,我会送你一个饼干。

Malbolge 被称为人类已知最难的编程语言,名字来自《神曲》中地狱的第八层圈。它之所以困难,有几个原因。一般编程语言编译成的是机器码(二进制),而Malbolge 编译成一种叫"三进制"(trinary)的东西,它使用0、1和2三种数字。

另外,你输入的内容还必须先经过一层加密处理,并且数据是通过一个叫"疯狂操作符表"(crazy operator)的表格来解释的。所有这些疯狂的机制,使得Malbolge 的代码看起来就像这样:

由于这些复杂结构,Malbolge 最初并不图灵完备。人们花了2年时间才弄清楚如何用它输出"Hello, World",而且,这个解决方法不是人想出来的,而是一个算法完成的。

Forth 是一种在1970年诞生的编程语言,它是基于"堆栈"的语言。堆栈是一种数据结构,就像是积木一样层层叠加,采用"先进后出"(FILO)的方式处理数据。

你知道电脑的"撤销"功能吗?就是用堆栈实现的。电脑会记住你在程序中执行的每一步操作,撤销时就从堆栈顶部移除一步。将数据放入堆栈叫"压栈"(push),移除数据叫"出栈"(pop)。

ATLAS(Abbreviated Test Language for All Systems)是一种用于自动化测试设备的编程语言。它主要用于执行车辆和机器的诊断测试,广泛应用于航空航天和军事领域。它的语法中包含大量缩写词。

RPG II 是由IBM开发的RPG语言(报告程序生成器)的第二个版本,是一种固定格式的编程语言,允许程序员通过列来书写代码。虽然这门语言很老,但在金融和制造业中仍有应用。它也有后续版本,比如RPG III 和 RPG IV。

REXX 是IBM开发的另一种编程语言,全称是 Restructured Extended Executor,主要用于自动化和在IBM大型机上处理数据。它的代码几乎像英语句子一样易读,不使用复杂符号或花括号。

KAL(Common Algorithmic Language),1970年代在丹麦创建。代码读起来像英语,也不使用太多特殊符号或花括号。最初为小型计算机设计,后来被改编为可运行于微型计算机上。

Mojo 是一种 Python 的超集语言,也就是说,如果你已经会 Python,那么学 Mojo 不太费劲。它的主要优势是运行速度比 Python 快很多。Python 是一门非常通用的语言,但人们经常批评它太慢。而 Mojo 结合了高级语言的简洁性与低级语言的速度,主要用于机器学习和人工智能领域。不过,这门语言非常新,因此相关资料还不太多。

Bash 既是命令行程序也是脚本语言,它使用一种叫"Shell"的命令行界面。你可以用它来自动化日常任务、管理文件,甚至自定义用户界面。学会基础很简单,但精通却很难。Bash 在 Linux 和 Unix 系统中非常实用。

Visual FoxPro 是一种用于数据库(如dBase和Microsoft Access)操作的语言,它有一个同名的IDE,内置可视化拖拽编辑器,用于创建图形用户界面、表单和菜单。后续版本还加入了面向对象编程功能。不过,该语言自2015年起已停止支持。

dBase 是数据库管理语言,虽然不再更新,但曾经推出过多个版本,如dBase II、dBase III 和 dBase III Plus。dBase 也是一个数据库管理系统。

Clipper 也是一种用于数据库编程的语言,可以与dBase结合使用,但运行速度更快,因为它使用即时编译(Just-in-Time compiling)。不过,自1990年代以来Clipper已不再更新,逐渐被淘汰。

Uniface 是一种编程语言和开发平台,采用低代码开发方式,也就是说你只需写少量代码,配合拖拽编辑器就能构建按钮、菜单和表单等组件。它还可用于数据库管理。但由于社区规模较小,获取支持可能较困难。

SPSS(Statistical Package for the Social Sciences)并不是像C++或Java那样的传统编程语言,而是一款带有专用命令语法的软件包,主要用于学术研究和统计分析。其界面看起来类似Microsoft Excel。

VHDL(VHSIC Hardware Description Language),VHSIC 是"Very High Speed Integrated Circuits"的缩写。这是一种用于电路板和集成电路的语言,用于控制逻辑门、内存等电路运作。最初由美国国防部命令创建。

Scheme 是LISP家族的一员,也使用大量括号,优化支持Lambda函数的执行。

PLEX 是为爱立信的AX电话交换机设计的专用语言,用于控制电话交换、确保连接顺畅和管理系统资源。PLEX 是一种遗留语言,现已不再被现代系统使用。

GML(Game Maker Language)是专为 Game Maker Studio 而设计的语言。它分为两种类型:GML代码和GML可视化。GML代码就是通过代码编辑器编写,而GML可视化则是通过拖拽图形控制游戏功能。无论是哪种方式,最终都会编译为相同的内容。

IDL(Interactive Data Language)主要用于科学领域,如物理、生物、地质、天文、大气物理、医学影像等,擅长处理大量数据并进行计算。所使用的软件还支持数据可视化。

ALAM 是一种用于并发编程的语言,允许你创建可以同时执行多个任务的程序。它的名字来源于哲学家威廉·奥卡姆(William of Ockham),就像"奥卡姆剃刀"这个思想实验一样,这门语言也以简洁为设计理念。

B语言 是C语言之前的语言,与C语言不同的是,B语言没有数据类型(如字符、整数、浮点数),也不支持结构体和指针,且可移植性也较差。B语言最早是为了简化BCPL语言而在贝尔实验室开发的。

Verilog 是为电路和微芯片设计的语言,主要由硬件工程师使用,也能执行计算和数据存储。它属于硬件描述语言(HDL),与传统编程语言不同,HDL代码不是由CPU执行,而是被硬件部件(如集成电路IC、数字信号处理器DSP)使用。

TCL(Tool Command Language),有时发音为"Tickle",是一种用于脚本编写、创建应用、自动化任务等多用途的语言。它由John Ousterhout在1980年代创建,是一种多范式语言,支持面向对象编程和函数式编程。

D语言 是在C之后出现的一种语言,也叫"Dang",创建于2000年代,目标是成为C/C++的现代版本。不同的是,D语言自动管理内存,无需像C那样使用指针,也更擅长并发编程,支持多线程。

ABAP(Advanced Business Application Programming)是一种主要用于商业领域的语言,用于构建企业应用、管理数据和处理业务逻辑。

Odin 是一种较新的编程语言,可用于构建游戏引擎、网页服务器和数据分析工具。它使用LLVM作为编译工具。


相关推荐
uzong1 小时前
技术故障复盘模版
后端
GetcharZp1 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程2 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研2 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi2 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国3 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy3 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
AntBlack4 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
bobz9654 小时前
pip install 已经不再安全
后端
寻月隐君5 小时前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github