Stein von Rosetta für Programmiersprachen

Der „Stein_von_Rosetta für oft benutzte Programmiersprachen“ soll einen kurzen Vergleich bieten, damit man beim umsteigen immer mal schnell nachgucken kann.

http://openwiki.com/ow.asp?VisualBasicCeePlusPlusRosettaStone#h5

FIXME (Objekte)

[in eckigen Klammern sind optionale Zusätze]

Struktur Bash C/C++ PHP VB(A)
Variablenverwendung (a ist der Variablenname) $a a $a a
Deklarieren nicht nötig (aber möglich mit „declare a“), Datentyp wird bei der ersten Benutzung deklariert. int a; nicht nötig, Datentyp wird bei der ersten Benutzung deklariert Dim a as integer
Initialisieren a = 10 init a = 10; $a = 10; a = 10
globale
statische
Arrays $var[0]=„erster Wert“ $var[0]=„erster Wert“;
Entscheidung (Alternative)
if Bedingung
then
  Code
else
  Code2
fi

1)

FIXME (C)
if (Bedingung)
{
  Code
}
elseif (Bed.2)
{
  Code2
else
{
  Code3
}
if [Not] Bedingung [And Bedingung] Then
  Anweisung
Else
  Anweisung
Endif
Fallauswahl (Selektion)
case $var in
  ausdruck1)
     Codeblock wenn var = ausdruck1
  ;;
 
  *)
    Codeblock allgemeiner Fall
  ;;
esac
Select Case Variable
Case 1
  Anweisung
Case 2
  Anweisung
Case Else
  Anweisung 
Wiederholung (Repetition, Schleife)
zählergesteuert
For i = 1 To 1000 [step +1]
  Anweisung
[Exit For]
  FIXME
Next i
für alle Elemente einer Liste (Array)
for i in a b c
do
  echo i
done
nicht in Sprache enthalten, C braucht Makros2) mit C++ gehts nit std::vector 3)
foreach ($array as $value) {
    echo "Der aktuelle Wert ist: " . $value . "<br>";
}
Bedingungsprüfung
voran- (Kopf)
until Befehl

4)

do
  Befehlsblock
done

Alternativ:

while Befehl

5)

do
  Befehlsblock
done
nachfolgend (Fußgesteuert)
Kommentare
einzeilige # Kommentar // // '
mehrzeilige (gibts nicht) /* Kommentar */ /* Kommentar */ (gibts nicht)

Wohin?

for each Element in A
Next
Abkürzungen Bedeutung
Bed. Bedingung(en)
Anw. Anweisung(en)
Datentypen / Wertebereich C/C++ PHP VB(A)
int
long int
float
double
string
boolean

FIXME

Funktionsname zur Überprüfung des Datentyps C/C++ PHP VB(A)

FIXME

1)
beliebige Verschachtelung mit if-then-elif-then-else-fi möglich.
4)
solange Exitstatus des Befehls ungleich 0
5)
solange Exitstatus des Befehls gleich 0 ist.