Vergleich von vJass mit anderen Programmiersprachen
Dieser Artikel vergleicht die wichtigsten Konstrukte von vJass mit einigen anderen Programmiersprachen. Dies kann helfen, wenn man schon eine andere Programmiersprache kennt und vJass lernen will, aber auch wenn man vJass kann und eine normale Sprache lernen will.
Inhaltsverzeichnis |
Hello World
Hello World ist das Standard-Beispiel für Programmiersprachen. Dabei handelt es sich um einen möglichst einfachen Programmcode, der den Text "Hello World" ausgibt.
in vJass:
library HelloWorld initializer init private function init takes nothing returns nothing call BJDebugMsg("Hello World!") endfunction endlibrary
in C++:
#include <iostream>
int main()
{
std::cout << "Hallo World" << std::endl;
std::cin.get();
return 0;
}
in Java:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
in PHP:
<? echo 'Hello World!'; ?>
in Ruby:
puts 'Hello world'
in Haskell:
main = putStrLn "Hello, World!"
in Python:
print "Hello, World!"
Basic:
PRINT "Hello World"
Fortran:
PROGRAM HelloWorld PRINT *, "Hello World" END PROGRAM HelloWorld
Lisp:
(print "Hello World")
Lua:
print("Hello World\n")
Modula:
MODULE HelloWorld EXPORTS Main;
IMPORT SIO;
BEGIN
SIO.PutText("Hello World\n");
END HelloWorld.
Pascal:
PROGRAM HelloWorld (OUTPUT);
BEGIN
WRITELN('Hello World');
END.
in Assembler (MIPS R2000):
.data # Datensegment
str: .asciiz "Hello World!\n" # String ablegen
.text # Codesegment
main: li $v0, 4 # 4 = Print_string
la $a0, str # Adresse des Strings übergeben
syscall # Systemfunktion aufrufen
li $v0, 10 # 10 = Quit
syscall # Programm beenden
Variablen
Datentypen
Die folgende Tabelle zeigt die Jass-Datentypen und ihre Entsprechungen in anderen Sprachen:
| Sprache | Gleitkommazahl | Natürliche Zahl | Wahrheitswert | Zeichenkette |
|---|---|---|---|---|
| Jass | real | integer | boolean | string |
| Java | float | int | bool | String |
| Basic | Single | Integer | Boolean | String |
| Delphi | Real | Integer | Boolean | ShortString |
| C++ | double | int | bool | string |
| C# | double | int (Int32) | bool | string |
globale Variablen
Globale Variablen sind im gesamten Programm verfügbar.
in Jass:
globals integer x = 14 real y = 4.5 endglobals
in Delphi:
var x: Integer = 14; y: Single = 4.5;
in C++:
int x = 14; double y = 4.5;
Hierbei gilt es zu beachten, dass globale Variablen in C++ im Gegensatz zu Jass normalerweise nur dateiweit verfügbar sind und in anderen Dateien (z. B. mittels einer Header-Datei) erneut deklariert werden müssen.
lokale Variablen
Lokale Variablen sind in den Funktionen verfügbar, in denen sie deklariert wurden.
in Jass werden lokale Variablen am Anfang von Funktionen deklariert:
function Beispiel takes nothing returns nothing local integer x = 14 local real y = 4.5 endfunction
in Delphi:
procedure IchMacheIrgendwas;
var x: Integer = 14;
y: Real = 4.5;
begin
end;
in C++:
void Beispiel()
{
int x = 14;
double y = 4.5;
}
Arrays
Kontrollstrukturen
Bedingungen
Schleifen
Schleifen werden benutzt um Handlungen wiederholt auszuführen.
In Jass verlässt man die Schleife mit "exitwhen 'Bedingung'"
function etwas takes nothing returns nothing local integer i = 0 loop //Beginn der Schleife call BJDebugMsg(I2S(i)) //Irgendeine Handlung set i = i + 1 exitwhen i == 10 //Verlässt die Schleife, sobald die Bedingung erfüllt ist endloop //Beendet die Schleife endfunction
In C++:
void etwas()
{
for (int i = 0; i < 10; ++i) //Beginn der Schleife, Initialisierung von i, Festlegung der Bedingung, welche wahr sein muss, damit die Schleife fortgesetzt wird, Aktion, die am Ende jeder Iteration durchgeführt wird.
; //Irgendeine Handlung
}

russische Team, stehen wir nun im Halbfinale vor einem weiteren Giganten der e-Sports-Szene:
Finnland! Die Skandinavier hatten es im Gegensatz zu unserem