Difference between revisions of "Syntax Comparison"

From mi-linux
Jump to navigationJump to search
Line 165: Line 165:
 
</pre>
 
</pre>
 
| <pre>TODO</pre>
 
| <pre>TODO</pre>
| Python has no switch statement. Use "if" instead.
+
| No equivalent. Use "if" instead.
 
|}
 
|}
  
Line 178: Line 178:
 
|-
 
|-
 
|'''for'''
 
|'''for'''
 +
| <pre>for ($i=0; $i<10; $i++) {
 +
    echo($i);
 +
}</pre>
 
| <pre>TODO</pre>
 
| <pre>TODO</pre>
| <pre>TODO</pre>
+
| <pre>for(int i=0; i<10; i++) {
| <pre>TODO</pre>
+
    System.out.println(i);
| <pre>TODO</pre>
+
}</pre>
 +
| <pre>No equivalent</pre>
 
|-
 
|-
 
|'''foreach'''
 
|'''foreach'''
 +
| <pre>$a = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
 +
foreach ($a as $v) {
 +
    echo $v;
 +
}
 +
</pre>
 +
| <pre>No equivalent.</pre>
 
| <pre>TODO</pre>
 
| <pre>TODO</pre>
| <pre>TODO</pre>
+
| <pre>for i in range(10):
| <pre>TODO</pre>
+
    print i
| <pre>TODO</pre>
+
</pre>
 
|-
 
|-
 
|'''while'''
 
|'''while'''
 +
| <pre>$i=0;
 +
while ($i<10) {
 +
    echo $i;
 +
    $i++;
 +
}
 +
</pre>
 +
| <pre>int i=0;
 +
while(i<10) {
 +
    System.out.println(i);
 +
    i++'
 +
}
 +
</pre>
 
| <pre>TODO</pre>
 
| <pre>TODO</pre>
| <pre>TODO</pre>
+
| <pre>i=0
| <pre>TODO</pre>
+
while i<10:
| <pre>TODO</pre>
+
    print i
 +
    i += 1
 +
</pre>
 
|}
 
|}
  
Line 210: Line 234:
 
}
 
}
 
</pre>
 
</pre>
| No equivalent. Use methods instead.
+
| No equivalent. Use methods.
 
| <pre>TODO</pre>
 
| <pre>TODO</pre>
 
| <pre>def print_msg(msg):
 
| <pre>def print_msg(msg):

Revision as of 19:49, 23 January 2011

Students

This is a comparison of the syntax of some popular programming languages, including Scala which we will be using on 5CS004. Where you see the word "TODO", please collaborate to fill in the blank parts of the tables. We will be adding to this page as the module progresses.

Useful language references


Basics

PHP Java Scala Python
Single line comment
// comment
// comment
// comment
# comment
Multi-line comment
/* comment */
/* comment */
/* comment */
Doesn't have multi-line comments.
Null object
NULL
null
TODO
None
Arithmetic operators
+,-,*,/,%,*
+,-,*,/,%,*
+,-,*,/,%,*
+,-,*,/,%,*
True and false
TRUE, FALSE
true, false
TODO
True, False
Boolean operators
&&, ||, !
&&, ||, !
TODO
and, or, not
Relational operators
<, >, <=, >=, ==, !=
<, >, <=, >=, ==, !=
<, >, <=, >=, ==, !=
<, >, <=, >=, ==, !=

Input / output

PHP Java Scala Python
Print to console
echo("hello");
System.out.println("Hello");
TODO
print "Hello"
Read from keyboard
readline("")
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String kbd = in.readLine();
val kbd = readLine()
kbd = raw_input() # kbd is a string
kbd = input() # kdb may be some other type


Selection

PHP Java Scala Python
if/else
if ($a==$b) {
    echo("same");
} else {
    echo("different");
}
if (a==b) {
    System.out.println("same");
} else {
    System.out.println("different");
}
TODO
if a==b:
    print 'same'
else:
    print 'different'
else-if
if ($a<0) {
    echo("negative");
} elseif ($a==0) {
    echo("zero");
} else {
    echo("positive");
}
TODO
TODO
if a<0:
    print 'negative'
elif a==0:
    print 'zero'
else:
    print 'positive'
switch
switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
}
switch ($i) {
    case 0:
        System.out.println("i equals 0");
        break;
    case 1:
        System.out.println("i equals 1");
        break;
    case 2:
        System.out.println("i equals 2");
        break;
}
TODO
No equivalent. Use "if" instead.

Iteration

PHP Java Scala Python
for
for ($i=0; $i<10; $i++) {
    echo($i);
}
TODO
for(int i=0; i<10; i++) {
    System.out.println(i);
}
No equivalent
foreach
$a = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach ($a as $v) {
    echo $v;
}
No equivalent.
TODO
for i in range(10):
    print i
while
$i=0;
while ($i<10) {
    echo $i;
    $i++;
}
int i=0;
while(i<10) {
    System.out.println(i);
    i++'
}
TODO
i=0
while i<10:
    print i
    i += 1

Functions

PHP Java Scala Python
Defining functions
function print_msg($msg) {
    echo $msg;
}
No equivalent. Use methods.
TODO
def print_msg(msg):
    print msg


Compound types (arrays, lists, etc)

PHP Java Scala Python
Fixed length array
TODO
TODO
TODO
TODO
Mutable array
TODO
TODO
TODO
TODO
Associative arrays / hashes
TODO
TODO
TODO
TODO


Exception handling

PHP Java Scala Python
Raise an exception
throw new Exception("Division by zero");
throw new ClassNotFoundException();
TODO
raise ValueError()
Handle / catch an exception
TODO
TODO
TODO
TODO

Dealing with types

PHP Java Scala Python
Convert object to different type
TODO
TODO
TODO
TODO

Classes, objects, methods, etc

PHP Java Scala Python
TODO
TODO
TODO
TODO
TODO