ĂŤndice:
- Ciclone
- C ++, propriedade e aliases
- Ferrugem
- Midori's M #
- PĂłnei
- Cone
- Resumo
Em 2001, Jim Trevor (AT&T Research) e Greg Morrisett (Cornell) lançaram um projeto conjunto para desenvolver um dialeto seguro da linguagem de programação C como um desenvolvimento de um trabalho anterior em Typed Assembler . ApĂłs cinco anos de trabalho árduo e vários artigos cientĂficos publicados , a equipe (incluindo Dan Grossman, Michael Hicks, Nick Swami e outros ) lançou o Cyclone 1.0 . E entĂŁo os desenvolvedores passaram para outras coisas.
Poucos ouviram falar do Cyclone e quase ninguĂ©m o usou. E ainda, quando vocĂŞ joga a pedra certa em um lago preparado, a água continua a divergir em cĂrculos por um longo tempo. Cyclone era uma pedra grande e bem cortada; e as pulsações de seu espĂrito, assim como as inovações que nele se destacaram, continuam a se espalhar de maneiras nĂŁo triviais.
Antes de contar esta história, aviso: inovação e influência são processos sociais complexos. Nada de novo surge no vácuo. Milhares de pessoas todos os anos jogam novas pedras interessantes no lago, sob a influência das já lançadas. Mas nenhum artigo pode cobrir todas essas ondulações caóticas inteiramente.
, : , ("") . , . . , .
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, , .
Sou grato a Greg Morriset, Graydon Hoare, Michael Hicks, Colin Gordon e Dan Grossman por seus comentários inestimáveis ​​sobre uma versĂŁo anterior deste artigo, que abriu meus olhos para quantas pessoas contribuĂram para as ideias fundamentais que levaram a essas lĂnguas.
Sobre o autor
Jonathan Goodwin - Evangelista da Web 3D. O autor das linguagens de programação Cone e Acorn.
[1] C ++ não foi o primeiro. Cinco anos antes (1992), Linear Lisp demonstrou o uso da lógica linear como uma solução de coleta de lixo.