ISWIM
ISWIM(“If you See What I Mean”的首字母缩写),是一种抽象的计算机编程语言或编程语言家族,它由彼得·兰丁设计,并描述在他1966年于ACM通讯发表的文章《接下来的700种编程语言》之中。 尽管没有实现,它被证明为在编程语言开发中非常有影响力的语言,特别是对于函数式编程语言,比如SASL、ML、NPL、Haskell和它们的后继者,还有数据流程编程语言如Lucid。 概述 ISWIM是具有函数式核心的指令式编程…
共 24 篇文章
ISWIM(“If you See What I Mean”的首字母缩写),是一种抽象的计算机编程语言或编程语言家族,它由彼得·兰丁设计,并描述在他1966年于ACM通讯发表的文章《接下来的700种编程语言》之中。 尽管没有实现,它被证明为在编程语言开发中非常有影响力的语言,特别是对于函数式编程语言,比如SASL、ML、NPL、Haskell和它们的后继者,还有数据流程编程语言如Lucid。 概述 ISWIM是具有函数式核心的指令式编程…
LispKit Lisp是词法作用域的纯函数式的Lisp语言子集,它是作为函数式编程概念的测试台而开发的。它率先使用了对惰性求值的早期经验。在1980年开发者Peter Henderson,出版了用一种变体ALGOL语言写的基于SECD机的实现。它的编译器和虚拟机都是高度可移植的,并已经在多种机器上实现。 基本函数 基本语言只提供了下列函数,但在Henderson的书中讨论了明确支持惰性求值和非确定性编程的扩展。 (quote ):接受…
Scheme是一种函数式编程语言,是Lisp的两种主要方言之一,不同于与之并列的Common Lisp,Scheme遵循哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。Scheme是第一個使用靜態作用域的Lisp方言,也是第一个引入头等续体和“干净宏”的编程语言。 简介 在1975年,麻省理工學院的傑拉德·傑伊·薩斯曼與蓋伊·史提爾二世,開發出了Scheme語言最初版本,隨後兩人通過發表「λ論文集」而不斷…
(原名 )是個通用、多範型,屬於Lisp家族的函數式程序设计語言,它的設計目之一是為了提供一種用於創造設計與實作其它編程語言的平台,Racket被用於腳本程式設計、通用程式設計、電腦科學教育和學術研究等不同領域。 Racket有一個實作平台,包含了執行環境、函数庫、即時編譯器()等等,還有提供一個以Racket本身寫成的開發環境 DrRacket (原名 )。 Racket平台的發行版本是免費且開放原始碼的,以GNU宽通用公共许可证授權…
Pascal是一个指令式编程和面向过程编程语言,由尼克劳斯·维尔特在1968年9月设计,在1970年发行,作为一个小型的和高效的语言,意图鼓励使用结构化编程和数据结构进行良好的编程实践。 称作Object Pascal的一个衍生是为面向对象编程设计的。 历史 Pascal基于ALGOL编程语言,为纪念法国数学家和哲学家布莱兹·帕斯卡而命名。维尔特后来开发了类似Pascal的Modula-2和Oberon。在开发Pascal之前,维尔特开…
PAL,是教育算法语言(Pedagogic Algorithmic Language)的首字母简写,它是在大约1967年于麻省理工学院开发的编程语言,用于帮助教授编程语言语义和设计。它是ISWIM的直接后代,并拥有很多来自Christopher Strachey的哲学。 PAL最初用Lisp实现,由彼得·蘭丁和小詹姆斯·H·莫里斯(James H. Morris, Jr.)书写。后来馬丁·理察德、Thomas J. Barkalow、A…
{{Infobox programming language |name = ML |logo = |paradigm = 多范型:函数式,指令式 |year = |designer = 罗宾·米尔纳及爱丁堡大学其他人 |developer = |latest release version = [https://smlfamily.github.io/sml97-defn.pdf Standard ML '97] |latest re…
Lisp(過去拼寫為LISP)是具有悠久歷史的計算機編程語言家族,有獨特的完全用圓括號的前綴符號表示法。它起源於1958年。Lisp編程語族已經演變出許多種方言,現代最著名的通用編程方言是Scheme、Common Lisp和新近的Clojure。 简介 Lisp最初是為計算機程序創建的實用數學表示法,當時借鑒過阿隆佐·邱奇的lambda表示法。它很快成為人工智能研究中最受歡迎的編程語言。作為早期的高階編程語言之一,Lisp開創了計算機…
ALGOL 60(源自的縮寫),是在1960年創建的称为“算法语言”的一種程式語言。它是以后来称为ALGOL 58的“国际代数语言”为基礎,其官方後繼者是ALGOL 68,它们一起并称为ALGOL語言家族。Algol 60引进了许多新的概念如:块、词法作用域、递归、巴科斯-诺尔范式(BNF),它在程式語言设计和发展演化中有著巨大的影響力。 歷史 1960年,在巴黎举行的讨论会上,来自欧洲的诺尔、、、、范·韦恩加登、、,与来自美国的佩利、…
FP(缩写的Functional Programming),最终导致了现代函数式语言,但不是Backus曾希望的函数级范型。 在他的这篇图灵奖论文中,Backus描述了FP风格与基于lambda演算的语言有着如何不同: {{quote|FP系统基于了对叫做泛函形式(functional form)的一组固定的组合形式的利用。它们加上简单的定义,就是从现存函数建造新函数的唯一方式;它们不使用变量或替代(substitution)规则,并且…
CPL(,原名),一種計算機程式語言。源自於ALGOL 60,在1963年,由英国的剑桥大学和伦敦大学首先開發出來。CPL语言在ALGOL 60的基础上更接近硬件一些,但规模比较大,难以实现。BCPL是它的後繼語言。 例子 下面是Christopher Strachey等人在1963年论文中举出了的例子,它对应ALGOL 60报告中欧拉变换的例子: function Euler [function Fct, real Eps, inte…
CLU是一门编程语言,由芭芭拉·利斯科夫和她的学生在1974年到1975年于麻省理工学院(MIT)创造。虽然它没有被广泛使用,但它引入了抽象数据类型,和许多现在广泛使用的特性,而被视为面向对象编程发展的重要一步。 主要贡献还包括:传共享调用、迭代器、多值返回(并行赋值形式)、参数化类型和可变类型。值得注意的是它使用了具有构造器和方法的类,但没有继承。 聚类 CLU的语法基于了ALGOL,这是当时多数新语言设计的起点。关键增补是“聚类”(…
ALGOL 68(源自的縮寫),是一種指令式程式語言,作為ALGOL家族的成員,它是官方上的ALGOL 60後繼者。ALGOL 68的設計目標,是提供更廣泛的應用,以及更嚴格的語法定義。 ALGOL 68的特征包括的语法,用户声明的类型和结构与标签联合类型,变量与引用参数的引用模型,可变长数组和字符串、数组与矩阵的,用户定义的运算符和运算符重载,高阶函数与匿名函数,以及并发。 概論 在1964年3月达成一致,要制定ALGOL 60的两个…
Haskell()是一种标准化的,通用的纯函數式編程語言,有惰性求值和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是頭等物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda语言的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标…
Agda 是一个依赖类型的纯函数式编程语言。目前的版本,Agda 2,最初由瑞典查尔摩斯工学院的 Ulf Norell 作为博士论文课题设计并实现。先前的版本 Agda 1 由 Catarina Coquand 在 1999 年开发,而现今的版本则是对其的彻底重写,因此可视作一个全新的语言,但保留了 Agda 的命名和传统。 Agda 的类型系统体现了柯里-霍华德同构(Curry-Howard correspondence),因此亦可作…
Hope是一种小型纯函数式编程语言,由、David MacQueen和,在1970年代于爱丁堡大学于开发。Hope派生自NPL语言,是Miranda和Haskell的先驱,并与在同一所大学开发的ML同时代。NPL和Hope著称于,是具有传模式调用的求值和代数数据类型的最初的语言。 Hope以(约1681年–1771年)命名。 语言细节 斐波那契数程序用Hope写为: dec fib : num -> num --- fib(0) 改变子…
NPL(New Programming Language:新编程语言),是具有模式匹配和集合推导式的简单的纯函数式编程语言,在1973年至1975年,由爱丁堡大学的和,在关于的工作中设计,并于1977年用POP-2实现。 特征 Rod Burstall在1968年关于结构归纳法的一篇重要论文中,向ISWIM扩展了仍用词语来定义的代数类型定义,和用来分析数据结构的case表达式。John Darlington的NPL,将case表达式替代…
SASL(缩写的St Andrews Static Language,或者St Andrews Standard Language,义为圣安德鲁斯静态语言或标准语言),是纯函数式编程语言,在1972年由于圣安德鲁斯大学,基于ISWIM的应用式子集而开发。在1976年,Turner重新设计并重新实现它为非严格(惰性)语言。它以这种形式成为了Turner以后的语言KRC和Miranda的基础,但是SASL表现为无类型的,而Miranda有多…
FL(缩写的Function Level,函数级别),是John Backus、John Williams和Edward Wimmers在1980年代于IBM研究院创立的函数式编程语言,并于1989年形成报告文档。FL被设计为Backus更早的FP语言的后继者,提供了对Backus所称的函数级编程的专门支持。 FL是动态类型的严格函数式编程语言,带有很类似ML中的throw和catch的异常语义。每个函数都有一个隐含的历史实际参数,它被…
Joy编程语言是澳大利亚乐卓博大学Manfred von Thun创立的纯函数式编程语言。Joy基于了函数复合而非lambda表达式。它表现出同30年前出现的Forth语言的很多类似性,这不归结为设计原因而是某种平行的演化和趋同。它还受到John Backus的FP语言的函数级编程风格的影响。 工作机理 Joy是不寻常的(除了函数级编程语言和某些难懂语言如之外),在于它缺乏lambda算子,因而缺乏形式参数。要通过常见例子来说明,平方函…