Daftar Isi:
- Topan
- C ++, kepemilikan dan alias
- Karat
- Midori's M #
- Kuda poni
- Kerucut
- Ringkasan
Pada tahun 2001, Jim Trevor (AT&T Research) dan Greg Morrisett (Cornell) meluncurkan proyek bersama untuk mengembangkan dialek yang aman dari bahasa pemrograman C sebagai pengembangan dari pekerjaan sebelumnya pada Typed Assembler . Setelah lima tahun kerja keras dan beberapa makalah ilmiah yang diterbitkan , tim (termasuk Dan Grossman, Michael Hicks, Nick Swami, dan lainnya ) merilis Cyclone 1.0 . Dan kemudian para pengembang melanjutkan ke hal lain.
Hanya sedikit yang pernah mendengar tentang Topan, dan hampir tidak ada yang menggunakannya. Namun, ketika Anda melempar batu yang tepat ke dalam kolam yang telah disiapkan, airnya terus bercampur dalam waktu yang lama. Topan adalah batu besar yang selesai dibuat dengan baik; dan detak jiwanya, serta inovasi yang pertama kali disorot dalam dirinya, terus menyebar dengan cara yang tidak sepele.
Sebelum saya menceritakan kisah ini, saya peringatkan Anda: Inovasi dan pengaruh adalah proses sosial yang kompleks. Tidak ada hal baru yang muncul dalam ruang hampa. Ribuan orang setiap tahun melempar batu baru yang menarik ke dalam kolam, di bawah pengaruh batu yang sudah dibuang. Tapi tidak ada artikel yang bisa menutupi semua riak kacau ini sepenuhnya.
, : , ("") . , . . , .
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, , .
Saya berterima kasih kepada Greg Morriset, Graydon Hoare, Michael Hicks, Colin Gordon, dan Dan Grossman atas umpan balik mereka yang tak ternilai pada versi awal artikel ini, yang membuka mata saya tentang berapa banyak orang yang berkontribusi pada ide-ide dasar yang mengarah pada bahasa-bahasa ini.
tentang Penulis
Jonathan Goodwin - Penginjil Web 3D. Penulis bahasa pemrograman Cone dan Acorn.
[1] C ++ bukanlah yang pertama. Lima tahun sebelumnya (1992), Linear Lisp mendemonstrasikan penggunaan logika linier sebagai solusi pengumpulan sampah.