目录:
- 气旋
- C ++,所有权和别名
- 锈
- Midori的M#
- 小马
- 锥体
- 概要
2001年,Jim Trevor(AT&T研究公司)和Greg Morrisett(康奈尔公司)发起了一个联合项目,以开发C编程语言的安全方言,这是对Typed Assembler的早期工作的发展。经过五年的艰苦努力和几篇科学论文发表后,该团队(包括Dan Grossman,Michael Hicks,Nick Swami等)发布了Cyclone 1.0。然后,开发人员继续进行其他工作。
很少有人听说过旋风,而且几乎没有人使用过它。但是,当您将正确的石头扔到准备好的池塘中时,水在很长一段时间内仍会继续分流。旋风是一块大巧的切割好的石头。他精神的脉动以及他最初所强调的创新,继续以不平凡的方式传播。
在我讲这个故事之前,有一个警告:创新和影响力是一个复杂的社会过程。真空中没有新事物出现。在已经扔掉的石头的影响下,每年有成千上万的人把新的有趣的石头扔进池塘。但是,没有一篇文章可以完全涵盖所有这些混乱的涟漪。
, : , ("") . , . . , .
Cyclone
20- ( "-" ++). CPU, , . , , — , , .
Cyclone , C, , , , , . : , , .
, , : , , use-after-free, , double free, printf, , , , goto , union'.
( ) C ML, Haskell, , :
- . C - struct, union - . , Cyclone , . Cyclone , .
- . Cyclone () . , , () . Cyclone , , . , - .
- . Cyclone 1990- . ML Kit ( ), (GC) , (). Aiken C. Cyclone , - . , , : ( ), , GC ( Boehm), , (unique) .
- / . Cyclone 1980- , , . , ( ), , GC . , . , ( ) - , Cyclone .
- . " " , . (, int @x) . , - , , , .
- . Cyclone "" (char ?), . , . -.
- . , , , . , . , .
- . , ( ) , . Cyclone , , .
Cyclone (, ), , . "" . , , thread-local .
, C. , C. , C Cyclone, , , .
C++,
, Cyclone C++. C++ , 1990 : ( , ) — (RAII). RAII, , , . RAII , new.
- delete, 1997 auto_ptr, "" . , , RAII . , auto_ptr - [1]: . .
, auto_ptr , . 2002 , Bell Labs, " C++". : , . unique_ptr, auto_ptr 2005 (TR1) , , C++11. shared_ptr, , 1990- .
, 2006 , Cyclone, C++ : () . Cyclone, , ( GC) .
, Cyclone , . , , (Smith and Walker, 2000, Typed Assembly Language), Objective C, (.) (Reynolds, O'Hearn, Pym, 2000-2002). : " Cyclone , , ".
"" Cyclone C++. get() ++ . ++ , , , , , , .
Cyclone , . C++, Cyclone , . ( ) . , Cyclone .
Rust
2006 , , Cyclone , ( Mozilla) Rust . , , 1.0 2015 .
Rust, Cyclone . Rust — , , Cyclone.
Rust Cyclone, C++ SML/OCaml . , , , .
Rust , Cyclone, . , :
- Rust C/C++, .
- , ML-. (, Option, Result "" , Rc Mutex).
- Borrowed References , , (, &mut), , , . , Cyclone `r ( ) Rust '.
- . , Rust , , Cyclone. C++, (Box) (Rc) . Rust GC , Cyclone , .
- unsafe. Rust , , , , . .
, Rust , . , , .
, () . . , , , . , . ( Cyclone) , .
. Ada, restrict C, C++, Fortran, Java, , (-) .
, — . . 1992 Clean - . , ATS, Alms Mezzo, -. Rust , .
, , , , (, Mutex) , Cell.
Midori M#
Midori — / , 2007 2014 . Singularity, , , ++ .
, , C# M#. C#, async/await, M#. , Cyclone ( Rust') ; M# ( ).
Cyclone Rust, Midori M# : C++ const, , , , , , , , , C++, D, Go Rust. Midori Cyclone. , Cyclone, /, Midori. , "", Cyclone, Singularity. , Singularity/Midori, ( Cyclone) Microsoft' Checked C, Cyclone.
Midori " ", Cyclone Rust. , ( ), union' . , , , , (.. , ).
M# . M# ( ): , , . , , ( ) -. , isolated, — : .
() . , () . , . , , .
, () , . ? , . , (writable), . , , , . , " ", , .
M# , . — " ", - , . , , - ( ) , .
M# (), "" . ( ) , . , , , . , , immutable isolated , - ( ).
, , M# . ( ) , . , Midori .
Pony
2014-5 - Pony. , - Erlang. , .
Pony , : , , , , , . M#, Pony . Pony , , , . .
Cone
, , , Cone.
Rust Pony . , , , . , Rust () Pony , , .
, Cyclone Rust and Pony. , . , Cyclone .
, Cone , Cyclone, , , . , , GC, , . , Cyclone, 15 , 1 . , , , .
1990 " !", — : " , , ". . , , , .
, , , , , , ( ) . D (.. ). Nim (.., .177), Google/IBM, Cyclone.
, . , Cyclone, , .
我感谢Greg Morriset,Graydon Hoare,Michael Hicks,Colin Gordon和Dan Grossman对本文早期版本的宝贵反馈,这让我看到有多少人为促成这些语言的基础思想做出了贡献。
关于作者
Jonathan Goodwin-3D网络传播者。编程语言锥和橡子的作者。
[1] C ++不是第一个。五年前(1992年),Linear Lisp演示了将线性逻辑用作垃圾回收解决方案的方法。