CLU
参考资料

↑
↑
↑  Ushijima, Tetsu. . clu2c. woodsheep.jp.   [2016-05-26]. （原始内容存档于2016-03-04）.
↑  Barbara Liskov.  (PDF). 1992  [2022-04-27]. （原始内容 (PDF)存档于2021-11-05）. CLU looks like an Algol-like language, but its semantics is like that of Lisp: CLU objects reside in an object universe (or heap), and a variable just identifies (or refers to) an object. We decided early on to have objects in the heap, although we had numerous discussions about the cost of garbage collection. This decision greatly simplified the data abstraction mechanism ……. A language that allocates objects only on the stack is not sufficiently expressive; the heap is needed for objects whose sizes must change and for objects whose lifetime exceeds that of the procedure that creates them. …… Therefore, the choice is: just heap, or both. ……
One unusual aspect of CLU is that our procedures have no free (global) variables ……. The view of procedures in CLU is similar to that in Lisp: CLU procedures are not nested (except that there can be local procedures within a cluster) but instead are defined at the "top" level, and can be called from any other module. In Lisp such procedures can have free variables that are scoped dynamically, a well-known source of confusion.
↑  Barbara Liskov.  (PDF). 1992  [2022-04-27]. （原始内容 (PDF)存档于2021-11-05）. Programming languages that existed when the concept of data abstraction arose did not support abstract data types, but some languages contained constructs that were precursors of this notion. …… The mechanism that matched the best was the class mechanism of Simula 67. A Simula class groups a set of procedures with some variables. A class can be instantiated to provide an object containing its own copies of the variables; the class contains code that initializes these variables at instantiation time. However, Simula classes did not enforce encapsulation ……, and Simula was lacking several other features needed to support data abstraction, …….
↑  Lundh, Fredrik. . effbot.org.   [21 November 2017]. （原始内容存档于2019-11-23）. replace "CLU" with "Python", "record" with "instance", and "procedure" with "function or method", and you get a pretty accurate description of Python's object model.
↑  Lattner, Chris. . 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.
↑  Liskov, Barbara; Zilles, Stephen. . . 1974: 50–59. doi:10.1145/800233.807045.
1 2 3  Liskov, B.; Snyder, A.; Atkinson, R.; Schaffert, C.  (PDF). Communications of the ACM. August 1977, 20 (8): 564–576  [2021-03-09]. doi:10.1145/359763.359789. （原始内容 (PDF)存档于2021-08-09）.
↑  Barron, D. W.; Buxton, J. N.; Hartley, D. F.; Nixon, E.; Strachey, C. . Computer Journal. 1963, 6 (2): 134–143  [2021-03-09]. doi:10.1093/comjnl/6.2.134. （原始内容存档于2012-07-07）.
↑  Stroustrup, Bjarne. . Bjarne Stroustrup's homepage. 2004-09-08  [2020-09-21]. （原始内容存档于2019-05-14）.
↑  . Mindview.net.   [2011-12-15]. （原始内容存档于2002-04-05）.
↑  Ierusalimschy, R.; De Figueiredo, L. H.; Celes, W. .  (PDF). 2007: 2–1–2–26  [2020-09-21]. ISBN 978-1-59593-766-7. doi:10.1145/1238844.1238846. （原始内容存档 (PDF)于2020-08-17）.
↑  . 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'...
↑  . docs.python.org.   [2020-05-25]. （原始内容存档于2012-10-24）.