Comparison of programming languages (basic instructions): Difference between revisions
Appearance
Content deleted Content added
Line 570: | Line 570: | ||
| <ref name="nosup" /> |
| <ref name="nosup" /> |
||
|} |
|} |
||
=== Calling functions named after strings === |
|||
*[[Python]]: getattr(object, "name")(''parameters'') |
|||
*[[PHP]]: $object -> $name ( ''parameters'' ); // This calls $object -> value_of_name ( ), not to confuse with $object -> name |
|||
== [[Type conversion]]s == |
== [[Type conversion]]s == |
Revision as of 13:43, 1 April 2008
Variable declaration
How to declare variable x as the following types:
Real numbers
Integer | Floating point | ||||
---|---|---|---|---|---|
Signed integer | Unsigned integer | Long integer | Single precision | Double precision | |
C (C99) | int x; | unsigned int x; | long x: | float x; | double x; |
C++ (STL) | unsigned int x; or uint x; | ||||
C# | uint x; | ||||
Java | [1] | ||||
Pascal | var x: integer; | var x: word; | var x: longint; | var x: real; | var x: extended; |
Visual Basic | Dim x As Integer | [1] | Dim x As Long | Dim x As Single | Dim x As Double |
Visual Basic .NET | Dim x As UInteger | ||||
Python | x = value [2] | [1] | x = value [2] | ||
JavaScript | var x = value; or var x = new Number (value); [2] | ||||
S-Lang | x = value; [2] | x = valuef; | x = value; [2] | ||
FORTRAN 77 | INTEGER X | [1] | [1] | REAL X | DOUBLE PRECISION X |
PHP | $x = value; [2] | ||||
Windows PowerShell | $x = value; or New-Variable -Name x -Value value -Description description |
Integer | Floating point | |
---|---|---|
C (C99) | [1] | [1] |
C++ (STL) | [std::]complex<int> x; | [std::]complex<float> x; or [std::]complex<double> x; |
C# | [1] | [1] |
Java | ||
JavaScript | [1] | |
Pascal | ||
Visual Basic | [1] | [1] |
Visual Basic .NET | ||
Python | x = re + imj or x = complex(re, im) | |
S-Lang | [1] | x = re + imi; or x = re + imj; |
FORTRAN 77 | COMPLEX X | |
Windows PowerShell | [1] | [1] |
Other variable types
Text | Boolean | ||
---|---|---|---|
Character | String | ||
C (C99) | char x; | char x[length]; or char *x; |
bool x; |
C++ (STL) | [std::]string x; | ||
C# | string x; | ||
Java | String x; | boolean x; | |
Pascal | var x: char; | var x: string; | var x: boolean; |
Visual Basic | Dim x As Char | Dim x As String | Dim x As Boolean |
Visual Basic .NET | |||
Python | x = value [2] | x = "string" [2] | x = value [2] |
JavaScript | var x = value [2] | var x = "string"; or var x = new String("value"); [2] |
var x = value; or var x = new Boolean (value); [2] |
S-Lang | x = value; [2] | x = "string"; [2] | x = value; [3] |
FORTRAN 77 | CHARACTER*1 X | CHARACTER*length X | LOGICAL X |
PHP | $x = value; [2] | $x = "string"; or $x = 'string'; [2] | $x = value; [2] |
Windows PowerShell | $x = value; | $x = "string"; or $x = 'string'; | $x = value; |
Array declaration
How to declare x as an array whose components do not have any particular defined values:
one-dimensional array | multi-dimensional array | |
---|---|---|
C (C99) | type x[n]; | type x[n1][n2]...;[4] |
C++ (STL) | type x[n]; or [std::]vector<type> x(n); | |
C# | type[] x = new type[n];[5] | type[,,...] x = new type[n1,n2,...]; |
Java | type[][]... x = new type[n1][n2]...;[5][4] | |
JavaScript | var x = new Array (); or var x = new Array (n); or var x = new Array (elements); or var x = []; or var x = [elements]; |
var x = new Array (new Array (), new Array (), ...); or var x = new Array (new Array (n1), new Array (n2), ...); or var x = new Array (new Array (elements1), new Array (elements2), ...); or var x = [[], [], [], ...]; or var x = [[elements1], [elements2], [elements3], ...]; |
Pascal | var x: array[0...n] of type; | var x: array[0...n1, 0...n2] of type; |
Visual Basic | Dim x(n) As type | Dim x(n1,n2,...) As type |
Visual Basic .NET | ||
Python | x = [] | [1] |
S-Lang | x = type[n]; | x = type[n1,n2,...]; |
FORTRAN 77 | type X(N) | type X(N1,N2,...) |
PHP | $x = array(elements); | |
Windows PowerShell | $x = @() | $x = New-Object 'object[,,...]' n1,n2,...; or $x = @(@(), @(), @(), ...); |
Statements in square brackets are optional
Conditional statements
if | else if | select case | |
---|---|---|---|
C (C99) | if (condition) { instructions } [else { instructions }] | if (condition) { instructions } else if (condition) { instructions } ... [else { instructions }] | switch (variable) { case case1: instructions break; ... [default: instructions;]}[6] |
C++ (STL) | |||
C# | |||
Java | |||
JavaScript | |||
PHP | |||
Windows PowerShell | if (condition) { instructions } elseif (condition) { instructions } ... [else { instructions }] | switch (variable) { case1 { instructions } ... [default { instructions }] } | |
Pascal | if condition then begin instructions end [ else begin instructions end]; |
if condition then begin instructions end else if condition then begin instructions end ... [ else begin instructions end]; |
case variable of case1: instructions; ... [else: instructions ] end; |
Visual Basic | If condition Then instructions [Else instructions ] End If |
If condition Then instructions ElseIf condition Then instructions ... [Else instructions ] End If |
Select Case variable Case case1 instructions ... [Case Else instructions ] End Select |
Visual Basic .NET | |||
Python | if condition : \t instructions [else: \t instructions ] |
if condition : \t instructions elif: \t instructions ... [else: \t instructions ] |
[1] |
S-Lang | if (condition) { instructions } [else { instructions }] | if (condition) { instructions } else if (condition) { instructions } ... [else { instructions }] | switch (variable) { case case1: instructions } { case case2: instructions } ... |
FORTRAN 77 | IF (condition) THEN instructions [ELSE instructions ] ENDIF |
IF (condition) THEN instructions ELSEIF (condition) THEN instructions ... [ELSE instructions ] ENDIF |
[1] |
while | do while | for i = 1 to N | foreach | |
---|---|---|---|---|
C (C99) | while (condition) { instructions } | do { instructions } while (condition) | for ([type] i = 0; i < N; i++) { instructions } | [1] |
C++ (STL) | ||||
C# | foreach (type item in set) { instructions } | |||
Java | for (type item : set) { instructions } | |||
JavaScript | for (i = 0; i < N; i++) { instructions } | for (property in object) { object [property] } | ||
PHP | for ($i = 0; $i < N; $i++) { instructions } | foreach (set as item) { instructions } or foreach (set as key => item) { instructions } | ||
Windows PowerShell | for ($i = 0; $i -lt N; $i++) { instructions } | foreach (item in set) { instructions } | ||
Pascal | while condition do begin instructions end |
repeat instructions until condition;[7] |
for i := 1 [step 1] to N do begin instructions end;[8] |
|
Visual Basic | Do While condition instructions Loop[9] |
Do instructions Loop While condition[9] |
For i = 1 To N [Step 1] instructions Next i[8] |
[1] |
Visual Basic .NET | For i[ As type] = 1 To N [Step 1] instructions Next i[8] |
For Each item As type In set instructions Next item | ||
Python | while condition : \t instructions [else: \t instructions ] |
[1] | for i in range(0, N): \t instructions [else: \t instructions ] |
for item in set: \t instructions [else: \t instructions ] |
S-Lang | while (condition) { instructions } [then optional-block] | do { instructions } while (condition) [then optional-block] | for (i = 0; i < N; i++) { instructions } [then optional-block] | foreach item (set) [using (what)] { instructions } [then optional-block] |
FORTRAN 77 | [1] | [1] | DO nnnn I = 1,N instructions nnnn CONTINUE |
[1] |
throw | handler | |
---|---|---|
C (C99) | [1] | [1] |
C++ (STL) | throw exception; | try { instructions } catch [(exception)] { instructions } ... |
C# | try { instructions } catch [(exception)] { instructions } ... [finally { instructions }] | |
Java | ||
JavaScript | try { instructions } catch (exception) { instructions } [finally { instructions }] | |
S-Lang | try { instructions } catch [exception] ... [finally { instructions }] | |
Windows PowerShell | trap { instructions } | |
Pascal | [1] | [1] |
Visual Basic | [1] | [1] |
Visual Basic .NET | Throw exception | Try instructions Catch [exception] [When condition] instructions ... [Finally instructions ] End Try |
Python | raise exception | try: \t instructions except[ exception]: \t instructions ... [else \t instructions ] [finally: \t instructions ] |
FORTRAN 77 | [1] | [1] |
Other control flow statements
exit block(break) | continue | branch (goto) | |
---|---|---|---|
C (C99) | break[ label]; | continue; | goto label; |
C++ (STL) | |||
C# | |||
Java | [1] | ||
JavaScript | break; | ||
PHP | |||
Pascal | |||
Visual Basic | Exit block | Continue block | GoTo label |
Visual Basic .NET | |||
Python | break | continue | [1] |
S-Lang | break[ label]; | continue; | |
FORTRAN 77 | EXIT | CYCLE | GOTO label |
Windows PowerShell |
Function declaration
Statements in square brackets are optional
basic | value-returning function | main function | |
---|---|---|---|
C (C99) | void foo([parameters]) { instructions } | type foo([parameters]) { instructions } | int main([void]) { instructions } or int main(int argc, char *argv[]) { instructions } |
C++ (STL) | |||
C# | static void Main([string[] args]) { instructions } or static int Main([string[] args]) { instructions } | ||
Java | public static void main(String[] args) { instructions } or public static void main(String... args) { instructions } | ||
JavaScript | function foo([parameters]) {instructions }; or var foo = function ([parameters]) {instructions }; or var foo = new Function (["parameters1", "parameters2", ...,] "instructions"); |
[1] | |
Pascal | procedure foo([parameters]) begin instructions end; |
function foo([parameters]):type begin instructions end; |
[1] |
Visual Basic | Sub Foo([parameters]) instructions End Sub |
Function Foo([parameters]) As type instructions End Function |
[1] |
Visual Basic .NET | Sub Main([ByVal CmdArgs() As String]) instructions End Sub or Function Main([ByVal CmdArgs() As String]) As Integer instructions End Function | ||
Python | def foo([parameters]): \t instructions |
def foo([parameters]): \t instructions return value |
if __name__ == '__main__': \t instructions |
S-Lang | define foo ([parameters] [;qualifiers]) { instructions } | define foo ([parameters] [;qualifiers]) { instructions ... return value; } | public define slsh_main () { instructions } |
FORTRAN 77 | SUBROUTINE FOO[(parameters)] instructions END |
type FUNCTION FOO[(parameters)] instructions FOO = value END |
PROGRAM main |
PHP | function foo([parameters]) { instructions } | [1] | |
Windows PowerShell | function foo([parameters]) { instructions } | [1] |
Calling functions named after strings
- Python: getattr(object, "name")(parameters)
- PHP: $object -> $name ( parameters ); // This calls $object -> value_of_name ( ), not to confuse with $object -> name
string to integer | string to long integer | string to floating point | integer to string | floating point to string | |
---|---|---|---|---|---|
C (C99) | integer = atoi(string); | long = atol(string) | float = atof(string); | sprintf(string, "%i", integer); | sprintf(string, "%f", float); |
C++ (STL) | [std::]stringstream(string) >> integer; | [std::]stringstream(string) >> long; | [std::]stringstream(string) >> float; | [std::]stringstream(string) << integer; | [std::]stringstream(string) << float; |
C# | integer = int.Parse(string); | long = long.Parse(string); | float = float.Parse(string); or double = double.Parse(string); |
string = integer.ToString(); | string = float.ToString(); |
Java | integer = Integer.parseInt(string); | long = Long.parseLong(string); | float = Float.parseFloat(string); or double = Double.parseDouble(string); |
string = integer; | string = float; |
JavaScript | integer = parseInt (string); or integer = new Number (string) or integer = string*1; |
float = parseFloat(string); or float = new Number (string) or float = string*1; |
string = integer.toString (); or string = new String (integer); or string = integer+""; |
string = float.toString (); or string = new String (float); or string = float+""; | |
Pascal | integer := StrToInt(string); | float := StrToFloat(string); | string := IntToStr(integer); | string := FloatToStr(float); | |
Visual Basic | integer = CInt(string) | long = CLng(string) | float = CSng(string) or double = CDbl(string) |
string = CStr(integer) | string = CStr(float) |
Visual Basic .NET | |||||
Python | integer = int(string) | long = long(string) | float = float(string) | string = str(integer) | string = str(float) |
S-Lang | integer = atoi(string); | long = atol(string); | float = atof(string); | string = string(integer); | string = string(float); |
FORTRAN 77 | READ(string,format) integer | [1] | READ(string,format) float | WRITE(string,format) integer | WRITE(string,format) float |
PHP | string = sprintf("%i", integer); | string = sprintf("%f", float); | |||
Windows PowerShell | integer = [int]string | long = [long]string | float = [float]string | string = [string]integer | string = [string]float |
Standard Input and Standard Output
read from | write to | ||
---|---|---|---|
stdin | stdout | stderr | |
C (C99) | scanf( format, &x ); or fscanf(stdin, format, &x ); [10] |
printf( format, x ); or fprintf(stdout, format, x ); [11] |
fprintf(stderr, format, x );[12] |
C++ | [std::]cin >> x; | [std::]cout << x; | [std::]cerr << x; [std::]clog << x; |
C# | x = Console[.In].Read(); or x = Console[.In].ReadLine(); |
Console[.Out].Write([format, ]x); or Console[.Out].WriteLine([format, ]x); |
Console.Error.Write([format, ]x); or Console.Error.WriteLine([format, ]x); |
Java | x = System.in.read(); | System.out.print(x); or System.out.printf(format, x); or System.out.println(x); |
System.err.print(x); or System.err.printf(format, x); or System.err.println(x); |
JavaScript | [1] | ||
JavaScript Web Browser implementation |
x = promt ([QuestionText], [DefaultValue]) | alert (x) or document.write(x) |
|
JavaScript Active Server Pages |
Response.Write (x) | ||
JavaScript Windows Script Host |
WScript.echo (x) | ||
Pascal | read(x); or readln(x); |
write(x); or writeln(x); |
[1] |
Visual Basic | Input x | Print x or ? x |
[1] |
Visual Basic .NET | x = Console[.In].Read() or x = Console[.In].ReadLine() |
Console[.Out].Write([format, ]x) or Console[.Out].WriteLine([format, ]x) |
Console.Error.Write([format, ]x) or Console.Error.WriteLine([format, ]x) |
Python | For numbers: x = input() For strings: x = raw_input() |
print x or sys.stdout.write(x) |
sys.stderr.write(x) |
S-Lang | fgets (&x, stdin) | fputs (x, stdout) | fputs (x, stderr) |
FORTRAN 77 | READ(5,format) variable names | WRITE(6,format) expressions | [1] |
PHP | print x; or echo x; or printf(format, x); |
||
Windows PowerShell | $x = Read-Host; or $x = [Console]::Read(); or $x = [Console]::ReadLine(); |
x; or Write-Output x; or echo x |
Write-Error x |
Reading command-line arguments
Argument values | Argument counts | |
---|---|---|
C (C99) | argv[n] | argc |
C++ | ||
C# | args[n] | args.Length |
Java | args.length | |
JavaScript (Windows Script Host implementation) | WScript.Arguments (n) | WScript.Arguments.length |
Pascal | ParamStr(n) | ParamCount |
Visual Basic | Command | [1] |
Visual Basic .NET | CmdArgs(n) | CmdArgs.Length |
Python | sys.argv | len(sys.argv) |
S-Lang | __argv | __argc |
FORTRAN 77 | [1] | [1] |
PHP | $argv[n] | $argc |
Windows PowerShell | $args[n] | $args.Length |
Execution of commands
Shell command | Execute program | |
---|---|---|
C | system(command); | exec |
C# | System.Diagnostics.Process.Start(command); | |
Visual Basic .NET | System.Diagnostics.Process.Start(command) | |
JavaScript Windows Script Host implementation |
WScript.CreateObject ("WScript.Shell").Run (command [, WindowStyle] [, isWaitOnReturn]) | |
Windows PowerShell | [Diagnostics.Process]::Start(command) | program |
Thread management
Fork thread | |
---|---|
C | fork(); |
Notes
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au This language does not support this feature.
- ^ a b c d e f g h i j k l m n o p q This language uses implicit typing to discriminate
- ^ This language represents boolean true as a non-zero valued integer, and boolean false as an integer whose value is zero.
- ^ a b Multidimensional arrays in C and similar languages are actually arrays of arrays
- ^ a b The C-like "type x[]" works in Java, however "type[] x" is the preferred form of array declaration.
- ^ C#'s switch statement requires the use of goto case n to achieve fall-through
- ^ The instrutions are repeated while the condition is false
- ^ a b c "Step n" is used to change the loop interval. If "Step" is omitted, then the loop interval is 1.
- ^ a b "Until" can be used instead of "While" to make the loop run while the condition is false
- ^
gets(x)
andfgets( x, length, stdin )
read unformatted text from stdin. Use ofgets
is not recommended - ^
puts(x)
andfputs( x, stdout )
write unformatted text to stdout - ^
fputs( x, stderr )
writes unformatted text to stderr