サイクロンの興味深い影響

目次:



  • サイクロン
  • C ++、所有権とエイリアス
  • さび
  • みどりのM#
  • ポニー
  • 円錐
  • 概要


2001年、Jim Trevor(AT&T Research)とGreg Morrisett(Cornell)は、Typed Assemblerに関する初期の作業の開発として、Cプログラミング言語の安全な方言を開発するための共同プロジェクトを開始しました。ハードワークと、いくつかの公表の5年後の科学論文、(ダン・グロスマン、マイケル・ヒックス、ニック・スワミとを含むチームなどが)解放サイクロン1.0を。そして、開発者は他のことに進みました。



Cycloneについて聞いたことがある人はほとんどおらず、ほとんど誰も使用していません。それでも、準備された池に正しい石を投げると、水は長い間円を描くように発散し続けます。サイクロンは大きくてよくカットされた石でした。そして彼の精神の脈動、そして彼の中で最初に強調された革新は、取るに足らない方法で広がり続けています。



この話をする前に、警告します。イノベーションと影響力は複雑な社会的プロセスです。真空中では何も新しいことは起こりません。毎年何千人もの人々が、すでに投げられたものの影響を受けて、新しい興味深い石を池に投げ込みます。しかし、この混沌とし​​た波紋を完全に網羅できる記事はありません。



, : , ("") . , . . , .



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 , .



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, , .



この記事の以前のバージョンに対する貴重なフィードバックを寄せてくれたGregMorriset、Graydon Hoare、Michael Hicks、Colin Gordon、Dan Grossmanに感謝します。これにより、これらの言語につながる基本的なアイデアに貢献した人の数に目を向けることができました。



著者について



ジョナサングッドウィン-3Dウェブエバンジェリスト。プログラミング言語の作者ConeandAcorn。



[1] C ++は最初ではありませんでした。5年前(1992年)、Linear Lispは、ガベージコレクションソリューションとして線形ロジックを使用することを実証しました。




All Articles