| . |
| + | |
| - | |
| +/- | |
| -/+ | |
| ? | |
| x | |
| List comprehension | |
| - | |
| - | |
|
|
|
| «hello world» | |
|
|
|
| ALGOL 58 ALGOL 60 | |
| ALGOL 60: | |
| ALGOL 68 C++ | |
| ALGOL 68: | |
| C C++ | |
| Pascal Borland Delphi | |
| Object Pascal C | |
| Pascal C | |
| Java C++ | |
| C# Java | |
| C# Visual Basic .NET | |
, , , .
|
|
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | Prolog | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | + | + | - | - | + | + | + | + | + [1] |
+ | + | + | + | + | + | + | + | + | + | + | + | + | |
| - | + | +/-[2] | + | + | + | + | - [3] |
- [3] |
+ | + | + | + [4] |
- [5] |
+ | + | + | + | + | + | + | + | + | + | + | + | -/+ |
| - | - | +/- | +/- | +/- | +/- | + | + | + | + | - | +/- | + | + | + | + | +/- | +/- | + | + | + | + | +/- | -/+ | + | +/- | |
| - | - | - [6] | -/+ | - | ? | + | + | -/+ | -/+ | -/+ | + | - | + | -/+ | +/- | + | + | + | -/+ | + | + | -/+ | -/+ | - | ? | |
| + | - | + | + | + | +/- | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | - | + | + | + | -/+ | |
| - | - | - | - | - | - | - | + | - | - | - | - | +/- [7] |
+/- [8] |
+/- | - | - | - | - | ? | +/- | - | - | - | - | ? | |
| - | - | - | -/+[9] | -/+ | ? | + | + | + | + | - | +/- | + | +[10] | + | -/+ [11] |
+ | + | + | + | +/- | - | +/- | - | + | +/- | |
| + [12] |
+/- [13] |
+/- [13] |
-/+ [14] |
- | + | + | + | - | -/+ | + | - | + [15] |
+/- | - | - | - | -/+ | -/+ | ? | +/- | ? | - | - | - | - | |
| Ada | C | C++ | C# | D | Eiffel | Erlang | Prolog | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | + | + | - | + | + | + | - | + | +/-[16] | + | +/- [17] |
- | - | - | + | +/- [18] |
- | + | + | + | + | |
| - | - | - | -/+ [19] |
- | - | + | -/+[20] | + | - | + | - [21] |
+ | - | + | + | + | + | - | + | + | + [22] |
-/+ [23] |
- | - | |
| + | + | + | + | + | + | -/+ [24] |
+ | + | + | - | + | +/-[16] | + | -/+ [25] |
+/- | +/- [26] |
- | + | +/- [27] |
- | + | + | + | + | |
| - | - | -/+ | -/+[28] | + | - | + | + | + | - | + | + | + | + | + | + | + | + | + | + | + | + | - | + | + | |
| -/+ [29] |
+ | + | + | + | + | - | - | + | - | + | - | + | + | + | + | + | + | ? | + | + | + | + | - | + | |
| - | + | + | - | + | - | - | - | - | - | ? | - | - | ? | + [30] |
+ | - | - | ? | + | + | + | + | - | -/+ | |
| - | + | + | + | + | - | - | - | - | - | + | - | - | + | + [31] |
+ | - | - | ? | - | + | + | - | - | -/+ | |
| + | + | + | + | + | - | x | + | - | - | x | + | +[32] | + | x | x | x | x | ? | ? | x | - | + | + | -/+ | |
| - | - | +/- [33] |
+ | + | - | x | + | - | - | x | + | +/- [34] |
+ | x | x | x | x | + | ? | x | + | - | + | + | |
| - | - | +/- [33] |
- | - | - | x | + | - | - | x | + | +/- [34] |
+ | x | x | x | x | ? | ? | x | ? | - | + | +/- | |
| - | - | - | + | + | + | + | x | + | + | + | x | + | +/- [34] |
+ | x | x | x | x | + | ? | x | + | - | + | ? |
| - | - | - | - | ? | - | x | + | - | - | x | + | +/-[34] | + | x | ? | x | x | - | ? | x | ? | - | + | ? | |
| - | x | - | + | + | + | x | + | + | + | - | + | + | + | x | + | x | x | + | ? | x | + | - | + | ? | |
| - | x | - | +/- [35] |
? | + | x | + | - | - | - | x | + | +/- | ? | ? | x | x | + | ? | x | - | - | ? | ? | |
| - | x | - | - | - | ? | x | - | - | - | - | + | + | - | x | ? | x | x | + | ? | x | - | - | ? | ? | |
| runtime | -/+ [36] |
- | -/+ [37] |
+ | + | + | + | + | + | + | -/+ | - | + | + | + | + | + | + | + | + | + | + | + | - | - |
| - runtime | - | - | -/+ | + | ? | ? | - | + | - | - | -/+ | - | + | + | + [38] |
+ | + | ? | - | ? | - | + | + | - | - |
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
[] /
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | Ocaml | PureBasic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Open-source () | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + [39] |
+ | + | + [40] |
+ | - |
| + | + | + | + | + | + | -/+ [41] |
+ | + | + | + | + | + | + | + | + [42] |
+ | + | + | + [43] |
- | + | + | + | + | |
| Bootstrapping | + | + | + | + | - | ? | + | + | + | + [44] |
+ [45] |
+ | +[46] | + | ? | x | + [47] |
+ | + | + [48] |
x | ? | + | + | + |
| + | + | + | - | + | ? | + | + | + | + | ? | + | + | - | ? | ? | x | x | - | - | x | + | ? | + | + | |
| +/- [49] |
-/+ [50] |
+/- [50] |
- [51] |
- | ? | + | + | + | - | + [52] |
+ | + | + | + | + | + | + | + | + [53] |
+ | + | - | + | - | |
| +/- [54] |
+ | + | + | + | ? | + | + | ? | -/+ [55] |
-/+ [56] |
+ | +[57] | + | + | + | x | x | ? | + | x | + | + | x | + | |
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | + | -/+ [58] |
? | ? | - | - | - | +/- [59] |
+/- [60] |
+ | - | - | - | - | ? | ? | - | - | -/+ [61] |
? | + | |
| + | + | + | + | + | - | - | - | - | -[62] | - | -[62] | -[62] | - | - | - | - [63] |
- | - | + [64] |
- | - | + | - | + | |
| + | + | + | +[65] | + | - | - | - | - | -[62] | - | -[62] | -[62] | - | - | - | -[62] | - | - | + [66] |
- | - | + | - | + | |
| -/+ [67] |
- [68] |
-/+ [69] |
+ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | - [70] |
+ | - | |
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | Tcl | VB.NET | Delphi | OCaml | PureBasic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| goto | + | + | + | + | + | - | - | x | - | - [71] |
- | x | +[72] | - | + | +/- [73] |
- | -/+ [74] |
- | -/+ [75] |
- | + | + | - | + |
| break | + | + | + | + | + | - | - | x | + | + | + | x | +[76] | + | + | + | + | + | - | ? | + | + | + | +/- [77] |
+ |
| break | + | - | - | - | + | - | - | x | + | + | + | x | +[78] | + | + | +/- [79] |
- | + | - | ? | - | + | - | x | +/-[80] |
| try/catch | + | - | + | + | + | + [81] |
+ | + | + | + | + | + | + [82] |
+ | + [83] |
+ | + | + | + | + | + | + | + | + | +[84] |
| finally | -/+ [85] |
- | - | + | + | - | - | + | + | + | + [86] |
+ | + [87] |
+ | - | - | + | + | + | + | + | + | + | - [88] |
+[84] |
| else () | - | - | - | + | - | - | + | - | + | + [89] |
? | + | + [90] |
- | + [91] |
- | + | + | - | ? | + | + | + | + | +[84] |
| ? | - | ? | - | ? | ? |
- | - | ? | ? | ? | ? | + |
- | - [92] |
? | ? | + [93] |
? | ? | - | - | ? | ? | ? | |
| ? | - | -/+ | -/+ [94] |
+ | - |
- | +/-[95] | - | - | - | + | - [96] |
- [97] |
- |
- | + | -/+ [98] |
? | - | - | -/+ [99] |
- | +[100] | + | |
| Continuations | ? | -/+[101] | ? | - | ? | ? |
- | - | ? | ? | ? | + | -[102] |
- | ? |
? | - | + | ? | + | - | - | ? | +/- [103] |
? |
| (oroutines) | - | - | - | - | - | + | + | - | ? | +/- [104] |
- | + | +/-[105] | - | + [106] |
? | +/- [107] |
? | ? | + | + | - | - | +/-[108] | - |
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | VB.NET | Delphi | OCaml | PureBasic | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | +/- [109] |
+/- [110] |
+/- | + | + | + | + | - | - | + | + | + | + | - | + | + | + | + | +/- [110] |
- | + | - | ||
| -/+ [111] |
- | - | - | ? | ? | x [112] |
+ | ? | - | x [112] |
+ | x [112] |
+ | x [112] |
x [112] |
x [112] |
x [112] |
? | x [112] |
- | -/+ [111] |
+ | - | ||
| ? | + | + | + | + | ? | - | + | + | +/- | +/- | + [113] |
+ | + | +/- | +/- | +/- | +/- | ? | ? | + | + | + | + | ||
| ? | -[114] | + | +/- | + | ? | - | +/- | ? | +/-[115] | +/- | - | + | ? | +/- | +/- | +/- | +/- | ? | ? | + | + | ? | + | ||
| ? | - | + [116] |
+ | + | ? | - | + | + | +/-[117] | + | +[118] | + | + | + | + | + | + | ? | ? | + | +/- | + | + | ||
| ? | - | +/- [119] |
+ | + | + | x | + | ? | + | x [120] |
+ [113] |
+ | + | x [120] |
x [120] |
+ | ? | ? | ? | + | + | + [121] |
- | ||
| foreach | +/- [122] |
- | + [123] |
+ | + | - | +/- [124] |
+ | + | + | + [125] |
+ | + [126] |
+ | + | + | + | + | + | + | + | + | + | + | |
| List comprehensions | - | - | - | -/+ [127] |
- | - | + | + | - | - | - | + | +[128] | + | ? | - | + | ? | + | + | + | - | +/- | - | |
| - | - | - | + [129] |
+ | ? | + | + | + | + [130] |
- | + | + | + [129] |
+ | +/- [131] |
+ | + | + [132] |
+ | + [129] |
- | + [133] |
- | ||
| + | - | - | - | - | ? | - | - | - | - | - | - | +[134] | - | - [135] |
- | - | ? | - | ? | - | + | - | - | ||
[] -
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | VB.NET | Delphi | OCaml | PureBasic | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ? | - | + [136] | + | + | ? | x | + | ? | + | ? | x | x[137] | + | +/-[138] | + | + | ? | ? | ? | + | + | + | x | ||
| - | - | -/+[139] | -/+[140] | - | - | x | - | ? | - [141] |
- | x |
+ | - | - [141][142] |
- | - [141] |
- [141] |
- | - | - | - | - | x | ||
| Mixins | ? | - | -/+[143] | - | + | ? | x | ? | ? | + |
? | x |
+ | ? | ? |
? | + [144] |
+ |
+ | + | ? | -/+[145] | ? | x | |
| ? | x | -/+[146] | - | ? | + | x | - | - | - | ? | x | - | - | -/+ | - | - | ? | ? | - | - | - | ? | x | ||
| ? | x | + | - | - | + | x | - | - | - | ? | x | + | - | + | - | + | - | ? | - | - | - | + | x | ||
| ? | x | -/+ [147] |
x | x | + [148] |
x | x | ? | x | ? | x | +[149] | x | + | x | + | x | ? | x | x | x | ? | x | ||
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | VB.NET | Delphi | OCaml | PureBasic | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | +[150] | - | - | - | - | - | - | + | - | - | - | - | - | - | - | - | - | - | - | - | ||
| First class functions | ? | -/+[151] | +[152] | + | + | ? | + | + | + | - | + |
+ | + | + |
+ | - |
+ |
+ | + | + | ? | +/- [153] |
+ | ? | |
| ? | - | +[154] | +[155] | + | ? | + | + | + | - | + |
+ | +[156] | + |
+ | + |
+/-[157] |
+ | + | + | + | +/- [153] |
+ | + | ||
| - | - | + [158] | + | + | + | + | + | + | +[159] | + | + | + | + | + | +[160] | + | + | + | + | + | +/- [161] |
+ | - | ||
| ? | - | +/- [162] |
? | - | ? | ? | + | ? | - | - | + | - | + | - [163] |
- | + [164] |
+ | + | ? | ? | ? | + | ? | ||
| - | - | +/- [165] | + | - | - | - | + | - | - | + |
+ | - | - |
+ | - |
+ |
+[166] | + | - | - | - | + | - | ||
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | VB.NET | Delphi | Ocaml | PureBasic | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -/+ | + [167] |
+ [167] |
- | - | - | -/+ | - | - | - | - | +/- [168] |
+ | + |
+[169] | - | - | +/- | - | - | + [170] |
- | -/+ [171] |
+ | ||
| /Generics | + | - | + | + | + | + | x [172] |
+ | + | + | x [172] |
- [173] |
x [172] |
+ | x [172] |
x [172] | x [172] |
x [172] |
+ | x [172] |
+ | + [174] |
+/- | ? | |
| Unicode | + | + [175] |
+ [176] |
+ | + | ? | - | + | + | + | + | + | +[177] | + | +/- | -/+ | + [178] |
+ [179] |
+ | + | + | + | + | + | |
| + | - | + | + | + | - | + | + | + | + | -/+ [180] |
+ | +[181] | + | - [182] |
- | - [183] |
- | + | ? | + | + | + | - | ||
| ? | - | - | ? | ? | ? |
- | ? | ? | ? | ? | +/-[184] |
+[185] |
? | + |
- | - | ? | ? | ? | + | ? | ? | - | ||
| + | - | - | + [186] |
- | - | - | +/- | + | - | -/+ [187] |
- | +[188] | + | + | - | + | + | + | -/+ [189] |
+ | -/+ [190] |
+ | - | ||
| + | - | + | + [186] |
+ | - | +/- [191] |
- | + | - | - | - | +[192] | + | +/- [193] |
+ | + | + | + | +/- | + | + | + | + | ||
| + | -/+ [194] |
+ [195] |
+/- | + | - | + | + | - | +/- [196] |
+ | + | +[197] | + | +/- | + | + | + | + | - | +/- | + | + | ? | ||
| - | - | - | +/- | - | - | + | + | - | - | - | + | +/-[198] | + | + | - | - [183] |
- | + | ? | - | - | + | ? | ||
| - | - | - | + [199] |
+ | + | ? | +/- [199] |
+/- | +/- [200] |
? | + [201] |
+ | + | ? | - | +/- | +/- | ? | ? | + [199] |
- | - | ? | ||
| (OpenGL/WebGL/OpenML/OpenAL DirectX) | ? | + | + | + | ? | ? | ? | ? | ? | + | + | + | ? | ? | ? | -/+[202] | + | ? | ? | ? | + | + | ? | ? | |
[]
| Ada | C | C++ | C# | D | Eiffel | Erlang | F# | Groovy | Java | JavaScript | Haskell | Common Lisp | Nemerle | Perl | PHP | Python | Ruby | Scala | Smalltalk | VB.NET | Delphi | OCaml | PureBasic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ISO ANSI | ISO ANSI | ISO | ISO ECMA | - | ISO ECMA | - | - | - | - | ECMA | Haskell 2010 | ANSI | - | - | - | - | - | - | ANSI | - | - | - | - |
[]
- /Haskell. .
- , - . OpenGL, OpenCL, OpenMAX AL .., .
- 1 2 /Erlang. [1].
- /Javascript. .
- /Haskell. .
- c++ , Qt
- /Haskell. , . - Curry, Haskell .
- /Common Lisp. , .
- LINQ
- , , , , .
- /Perl. .
- /Ada. . Annex E. Distributed Systems.
- 1 2 /C C++. MPI OpenMP.
- /C#. , Parallel C#.
- /Haskell. , . Glasgow Distributed Haskell.
- 1 2 ANSI , - . CL , .
- /Perl. 5.6. .
- /Smalltalk. Smalltalk Strongtalk'.
- /C#. -
dynamic4.0. - /F#. (?)
xml?namexml.op_Dynamic("name"), . - /Haskell.
Data.Dynamic. - /VB.NET. Option Strict.
- /Delphi. Variant.
- /Erlang. . . type test BIFs. . [2]
- /Perl. . Prototypes man perlsub.
- /Python. Python 3.0.
- /Smalltalk. Strongtalk.
- var, dynamic etc.
- /Ada. . 4.6 Type Conversions.
- /Perl. :
$a = '5aa'; print $a + 0;: 5 - /Perl. , Perl :
1 + "2" # 31 . "2" # "12" - DEFTYPE
- 1 2 /C++. C++0x [code]auto[/code] [code]decltype[/code].
- 1 2 3 4 /Common Lisp. Common Lisp, SBCL, .
- /C#. C# 4.0 .
- runtime/Ada. (Ada.Tags), . , , , , .
- runtime/++. , (typeid), .
- . ref isa
- Open-source ()/Smalltalk. Smalltalk , , ( , , , .) . GNU Smalltalk, Squeak Strongtalk.
- Open-source ()/Delphi. FreePascal Lazarus.
- /Erlang. HiPE High Performance Erlang. *nix-.
- PHP-, PHP-. , Roadsend PHP Compiler.
- /Smalltalk. Smalltalk - ( ) , JIT-. . , Smalltalk MT Smalltalk/X.
- Bootstrapping-/Java. Java Compiler API 6.0.
- Narcissus.
- , SBCL
- Bootstrapping-/Python. PyPy.
- Bootstrapping-/Smalltalk. - Smalltalk . Smalltalk, Smalltalk , , Squeak, Smalltalk, C . Squeak Squeak.
- /Ada. Business Shell (BUSH).
- 1 2 /C++. C++ CINT.
- 5.0 .
- Rhino Shell.
- GNU Smalltalk .
- /Ada. , , , . : Conditional Compilation , . gnatprep.
- /Java. ( assert) - ( , ) -ea/-enableassertion.
- [3].
- , , , . , #ifdef .[4][5]
- , «» , , .
- /Haskell. GHC Unboxed Types / Unboxed Arrays.
- DYNAMIC-EXTENT, .
- /Delphi. Delphi 2 ( Turbo Pascal) . .
- 1 2 3 4 5 6 7 FFI (foreign function interface)
- ctypes.
- /Smalltalk. Smalltalk , , .
- unsafe + System.Runtime.InteropServices
- /Smalltalk. , , , . .
- /Ada. (.NET JVM) (AdaCL:GC). , Ada , . , .
- /C. . C C++ . , BoehmGC ( ).
- C++0x
- /Delphi. Delphi.NET.
- goto/Java. .
- GO. CL, , - .
- , . , , [6].
- goto/Ruby. goto , .
- goto/Smalltalk. goto , , goto . , proof of concept (.).
- RETURN. , RETURN-FROM.
- , Camlp4 http://code.google.com/p/ocaml-break-continue/
- RETURN-FROM
- , [7].
- ,
- ,
- Java-style try-catch handler-case. , Common Lisp . . (restarts), «»
- eval
- 1 2 3 PBOSL
- finally/Ada. finally , , finally. , proof of concept (.).
- MDN MDC
- UNWIND-PROTECT
- camlp4 http://bluestorm.info/camlp4/dev/try/pa_tryfinally.ml.html
- catch
- Java-style try-catch handler-case. , Common Lisp . . (restarts), «»
- eval or {}
- Runops::Resume
- retry [8]
- yield return, LINQ, FCL 4.0 Lazy.
- Seq-, Lazy F#.
- ,
- /Ruby. , .
- Linq.
- Lazy Ocaml.
- setcontext et al. (UNIX System V and GNU libc)
- , cl-cont
- - http://okmij.org/ftp/Computation/Continuations.html#caml-shift
- /Java. Java 1.1.
- .
- [9]
- /Python. Stackless Python.
- , Lwt
- /C++. ( TR1 ( ), boost). , C++0x
- 1 2 /.NET. System.Tuple<T,...> FCL 4.0.
- 1 2 /Ada Delphi. .
- 1 2 3 4 5 6 7 8 .
- 1 2 /Haskell. Data.Array.
- /C. « » , , realloc.
- /Java. java.util.Vector ( ).
- map unordered_map
- /Java. java.util.HashMap ( ).
- /Haskell. Data.Map
- /++. , STL, std::vector, std::array at .
- 1 2 3 /Perl, PHP JavaScript. , .
- /Ocaml. -unsafe
- foreach/Ada. Iterate Reverse_Iterate , Ada.Containers.
- foreach/C++. C++11
for(auto x : some_array){},for(auto& x : some_array){}. - foreach/Erlang.
foreach/3lists. - foreach/JavaScript. 1.6[10].
- foreach/Lisp. LOOP . « » .
- List comprehensions/C#. «Query Comprehension» List Comprehension .
- LOOP et al.
- 1 2 3 /.NET.
System.Numerics.BigInteger, FCL 4.0. - /Java.
BigIntegerBigDecimal. - PHP , , [11] .
- /Scala.
BigIntegerBigDecimal. - /OCaml.
NumBig_int. - : (INTEGER 0 9) 0 9
- /Perl.
Tie::Scalar. - CLOS.
- -. . [12]
- Visitor()
- dynamic
- 1 2 3 4
- (?) Perl 6
- _()#.D0.AD.D0.BC.D1.83.D0.BB.D1.8F.D1.86.D0.B8.D1.8F
- /
- implements. . 10-7 10-8 Object Pascal Guide.
- c++, , , using,
- ( ), (, )
- CLHS: Section 4.3.5
- Functions D Programming Language 2.0 Digital Mars
- std::function c++0x
- 1 2 Delphi2009, . .
- C++0x. - C++0x
- 2.0. C# 3.0 .
- LAMBDA
- lambda- c++0x ,
- 5.3
- Delphi2009, .
- boost::bind, std::bind1st, std::bind2nd
- , Sub::Curry Sub::Curried
- functools.partial Python 2.5
- lambda- c++0x
- Proc#curry, Ruby 1.9
- 1 2 /C. C.
- /Haskell. Template Haskell , GHC.
- [13], , C/C++ Filter::cpp
- Visual Studio ( Express Edition)
- camlp4
- 1 2 3 4 5 6 7 8 .
- Generics/Haskell. , .
- Generics/Delphi. Delphi 2009.
- Unicode /C. gcc 4.2
- Unicode /C++. MS, MSVS++ 2005 gcc 4.2
- Unicode /Python. Python 3.0.
- Unicode /Ruby. Ruby 1.9.
- /JavaScript. , .
- [14].
- 1 2 /Python. PEAK-rules.
- implicit-parameters
- DEFVAR DEFPARAMETER, SPECIAL, .
- 1 2 /C#. C# 4.0.
- /JavaScript. , :
f ({param1: "value1", param2: "value2"}). - «&key» .
- /Smalltalk.
:::, ,: 1 : 2 : 3. , , . - /Delphi: OLE:
Word.Openfile(filename='1.doc') - /Erlang. .
- «&key» «&optional»
- /Perl. , . [15].
- /. gcc , . [16].
- /++. lambda- c++0x
- /Java. () , , .
- C LABELS
- DESTRUCTURING-BIND EQL .
- 1 2 3 Code Contracts FCL 4.0.
- /Java. Java 5, OVal AspectJ, iContract [17] .
- /Haskell. QuickCheck.
- OpenGL php phpOpenGL project ( Github)
[]
[]
[]
. (, «» ), («» ). , «» , , , .
[] -
[]
, eval. .
[]
. . , .
[]
, .
[]
. , , . , .
[]
.
[]
. , («» ), , .
[]
, .
[]
[]
[]
[]
.
[]
. , .
[]
- , , () .
[]
, , , .
[]
, , , .
[]
, , . : 1 «2» 3, «12». , (boolean).
[]
( ) , . , typedef . using C# - .
[]
, . , , +. ..
[]
, . , , +. .
[] -
- generic-, .
[]
. . -, .
[]
(aka generic types). constraints type classes -.
[]
- type parameters. (, ). , +/-.
[]
type constructors ( Scala). . Towards Equal Rights for Higher-kinded Types
[] runtime
runtime.
[] - runtime
runtime , generic-. generic-, -. runtime ( erasure), -.
[] /
[] Open-source ()
open-source ( ). open-source , , +/- -/+.
[]
byte- JIT-. (, C), , +.
[] Bootstrapping
bootstrapping- ( , , , ). bootstrapping-, , +/- -/+.
[]
. , x ().
[]
. .
[]
/ (, #if #endif C++)
[]
[]
, .
[]
, , .
[]
(, new delete C++).
[]
[]
[] goto
goto ( ).
[] break
break ( ), continue. break, switch , .
[] break
break ( , ), continue. break, switch , .
[] try/catch
try/catch .
[] finally
finally .
[] else ()
else (, try ).
[]
, . .
[]
. ( )
[]
[]
. , +/-
[]
( ). ( ) , +/-
[]
-.
[] foreach
foreach. ( list comprehensions), +.
[] List comprehensions
List comprehensions ( ).
[]
/ (tuple) , .
[]
. .
[]
, , [-5..27], , , .
[] -
[]
[]
( ).
[]
(run time) .
«message passing» «Visitor».
[]
/ .
[]
(B A, C A, D B C). , / .
[]
[] First class functions
[]
- ( ) - ( ) -
[]
[]
[]
-, / . , , ++.
[] /Generics
, templates C++ generics C#.
[] Unicode
Unicode- (, ) .
[]
[]
[]
/ .
[]
/ , , .
[]
/. .
[]
[]
[]
- D (+ RSDN)
- (.)
- # (.)
- Microbenchmarking C++, C#, and Java (.)


,
,
.