Difference between revisions of "Syntax Comparison"
From mi-linux
Jump to navigationJump to searchm |
|||
Line 1: | Line 1: | ||
__TOC__ | __TOC__ | ||
+ | |||
== Students == | == 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. | 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 == | == Useful language references == | ||
Line 55: | Line 57: | ||
| <pre>&&, ||, !</pre> | | <pre>&&, ||, !</pre> | ||
| <pre>&&, ||, !</pre> | | <pre>&&, ||, !</pre> | ||
− | | <pre> | + | | <pre>&&, ||, !</pre> |
| <pre>and, or, not</pre> | | <pre>and, or, not</pre> | ||
|- | |- | ||
Line 64: | Line 66: | ||
| <pre><, >, <=, >=, ==, !=</pre> | | <pre><, >, <=, >=, ==, !=</pre> | ||
|} | |} | ||
+ | |||
== Input / output == | == Input / output == | ||
Line 77: | Line 80: | ||
| <pre>echo("hello");</pre> | | <pre>echo("hello");</pre> | ||
| <pre>System.out.println("Hello");</pre> | | <pre>System.out.println("Hello");</pre> | ||
− | | <pre> | + | | <pre>println("Hello")</pre> |
| <pre>print "Hello"</pre> | | <pre>print "Hello"</pre> | ||
|- | |- | ||
Line 114: | Line 117: | ||
} | } | ||
</pre> | </pre> | ||
− | | <pre> | + | | <pre>if (a==b) println("same") |
+ | else println("different") | ||
+ | </pre> | ||
| <pre>if a==b: | | <pre>if a==b: | ||
print 'same' | print 'same' | ||
Line 130: | Line 135: | ||
} | } | ||
</pre> | </pre> | ||
− | | | + | | No equivalent. |
− | | | + | | No equivalent. |
| <pre>if a<0: | | <pre>if a<0: | ||
print 'negative' | print 'negative' | ||
Line 165: | Line 170: | ||
} | } | ||
</pre> | </pre> | ||
− | | <pre> | + | | <pre>i match { |
+ | case 0 => println("i equals 0") | ||
+ | case 1 => println("i equals 1") | ||
+ | case 2 => println("i equals 2") | ||
+ | case _ => println("i is not 0, 1, or 2") | ||
+ | } | ||
+ | </pre> | ||
| No equivalent. Use "if" instead. | | No equivalent. Use "if" instead. | ||
|} | |} | ||
+ | |||
== Iteration == | == Iteration == | ||
Line 182: | Line 194: | ||
echo($i); | echo($i); | ||
}</pre> | }</pre> | ||
− | | <pre> | + | | <pre>for (i <- i to 10) |
+ | println(i) | ||
+ | </pre> | ||
| <pre>for(int i=0; i<10; i++) { | | <pre>for(int i=0; i<10; i++) { | ||
System.out.println(i); | System.out.println(i); | ||
Line 195: | Line 209: | ||
</pre> | </pre> | ||
| No equivalent. | | No equivalent. | ||
− | | <pre> | + | | <pre> |
+ | mylist.foreach((msg:String) => println(msg)) | ||
+ | </pre> | ||
| <pre>for i in range(10): | | <pre>for i in range(10): | ||
print i | print i | ||
Line 210: | Line 226: | ||
while(i<10) { | while(i<10) { | ||
System.out.println(i); | System.out.println(i); | ||
− | i++ | + | i++; |
+ | } | ||
+ | </pre> | ||
+ | | <pre> | ||
+ | var i=0; | ||
+ | while(i<10) { | ||
+ | println(i) | ||
+ | i+=1 | ||
} | } | ||
</pre> | </pre> | ||
− | |||
| <pre>i=0 | | <pre>i=0 | ||
while i<10: | while i<10: | ||
Line 220: | Line 242: | ||
</pre> | </pre> | ||
|} | |} | ||
+ | |||
== Functions == | == Functions == | ||
Line 236: | Line 259: | ||
</pre> | </pre> | ||
| No equivalent. Use methods. | | No equivalent. Use methods. | ||
− | | <pre> | + | | <pre>def print_msg(msg: String) = { |
+ | println(msg) | ||
+ | } | ||
+ | </pre> | ||
| <pre>def print_msg(msg): | | <pre>def print_msg(msg): | ||
print msg | print msg | ||
Line 270: | Line 296: | ||
| <pre>TODO</pre> | | <pre>TODO</pre> | ||
|} | |} | ||
− | |||
Line 310: | Line 335: | ||
| <pre>TODO</pre> | | <pre>TODO</pre> | ||
|} | |} | ||
+ | |||
== Classes, objects, methods, etc == | == Classes, objects, methods, etc == |
Revision as of 20:16, 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 | &&, ||, ! |
&&, ||, ! |
&&, ||, ! |
and, or, not |
Relational operators | <, >, <=, >=, ==, != |
<, >, <=, >=, ==, != |
<, >, <=, >=, ==, != |
<, >, <=, >=, ==, != |
Input / output
PHP | Java | Scala | Python | |
---|---|---|---|---|
Print to console | echo("hello"); |
System.out.println("Hello"); |
println("Hello") |
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"); } |
if (a==b) println("same") else println("different") |
if a==b: print 'same' else: print 'different' |
else-if | if ($a<0) { echo("negative"); } elseif ($a==0) { echo("zero"); } else { echo("positive"); } |
No equivalent. | No equivalent. | 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; } |
i match { case 0 => println("i equals 0") case 1 => println("i equals 1") case 2 => println("i equals 2") case _ => println("i is not 0, 1, or 2") } |
No equivalent. Use "if" instead. |
Iteration
PHP | Java | Scala | Python | |
---|---|---|---|---|
for | for ($i=0; $i<10; $i++) { echo($i); } |
for (i <- i to 10) println(i) |
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. | mylist.foreach((msg:String) => println(msg)) |
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++; } |
var i=0; while(i<10) { println(i) i+=1 } |
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. | def print_msg(msg: String) = { println(msg) } |
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 | |
---|---|---|---|---|
Root object | TODO |
java.lang.Object |
TODO |
object |
Create an object | TODO |
TODO |
TODO |
TODO |
Call methods | TODO |
TODO |
TODO |
TODO |
Create and update instance attribute | TODO |
TODO |
TODO |
TODO |
Create and update class attribute | TODO |
TODO |
TODO |
TODO |
Create subclass | TODO |
TODO |
TODO |
TODO |