CLU

维基百科,自由的百科全书
跳到导航 跳到搜索
CLU
编程范型多范式: 面向对象, 过程式
設計者芭芭拉·利斯科夫和她的学生
實作者麻省理工学院
发行时间1975年,​45年前​(1975
穩定版本
Native CLU 1.5 (SPARC, VAX) / 1989年5月26日,​31年前​(1989-05-26[1]

Portable CLU / 2009年11月6日,​10年前​(2009-11-06[2]

型態系統强类型
網站www.pmg.lcs.mit.edu/CLU.html
主要實作產品
Native CLU,[1] Portable CLU,[2] clu2c[3]
啟發語言
ALGOL 60, Lisp, Simula
影響語言
Ada, Argus, C++, Lua, Ruby, Sather, Swift[4]

CLU是在1974年到1975年由麻省理工学院(MIT)的芭芭拉·利斯科夫和她的学生创造的一门编程语言。虽然它没有被广泛使用,但它引入了许多现在广泛使用的特性,并被视为面向对象(OOP)编程发展的重要一步。然而,它并不是面向对象的,而是被认为基于对象的语言,因为它缺乏OOP的许多特性。

主要贡献包括抽象資料型別[5]传需求调用迭代器,多值返回(并行赋值形式),泛型,和不定型別。值得注意的是它使用了构造器和方法,但没有继承

影响[编辑]

CLU和AdaC++模板的主要启发者[6]

CLU的异常处理机制影响了后来的语言如C++和Java[7]

SatherPythonC#包含了迭代器,它最早出现在CLU中。

PerlLua采用的多赋值和从函数调用返回多个值来自CLU[8]

PythonRuby从它引入了传共享调用yield语句[9]和多赋值[10]

参考资料[编辑]

  1. ^ 1.0 1.1 Curtis, Dorothy. CLU home page. Programming Methodology Group, Computer Science and Artificial Intelligence Laboratory. Massachusetts Institute of Technology. 2009-11-06 [2016-05-26]. (原始内容存档于2016-06-02). 
  2. ^ 2.0 2.1 Curtis, Dorothy. Index of /pub/pclu. Programming Methodology Group, Computer Science and Artificial Intelligence Laboratory. Massachusetts Institute of Technology. 2009-11-06 [2016-05-26]. 
  3. ^ Ushijima, Tetsu. clu2c. clu2c. woodsheep.jp. [2016-05-26]. (原始内容存档于2016-03-04). 
  4. ^ Lattner, Chris. Chris Lattner's Homepage. Chris Lattner. 2014-06-03 [2014-06-03]. (原始内容存档于2018-12-25). The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list. 
  5. ^ Liskov, Barbara; Zilles, Stephen. Programming with abstract data types. Proceedings of the ACM SIGPLAN symposium on Very high level languages: 50–59. 1974. doi:10.1145/800233.807045. 
  6. ^ Stroustrup, Bjarne. The C++ Programming Language (Third Edition and Special Edition). Bjarne Stroustrup's homepage. 2004-09-08 [2020-09-21]. (原始内容存档于2019-05-14). 
  7. ^ Bruce Eckel's MindView, Inc: Does Java need Checked Exceptions?. Mindview.net. [2011-12-15]. (原始内容存档于2002-04-05). 
  8. ^ Ierusalimschy, R.; De Figueiredo, L. H.; Celes, W. The evolution of Lua. Proceedings of the third ACM SIGPLAN conference on History of programming languages – HOPL III (PDF): 2–1–2–26. 2007 [2020-09-21]. ISBN 978-1-59593-766-7. doi:10.1145/1238844.1238846. (原始内容存档 (PDF)于2020-08-17). 
  9. ^ Ruby's Roots and Matz's Leadership. Appfolio Engineering. 2019-11-08 [2019-11-15]. (原始内容存档于2019-11-14). Matz feels that blocks are the greatest invention of Ruby (I agree.) He got the idea from a 1970s language called CLU from MIT, which called them 'iterators'... 
  10. ^ Functional Programming HOWTO — Python 3.8.3 documentation. docs.python.org. [2020-05-25]. (原始内容存档于2012-10-24). 

外部链接[编辑]