Verse ist ein Interpreter für die Programmiersprache Verse. Ziel ist es, dieses Projekt in Zukunft zu einem All-in-One-Bundle aus einem Interpreter, einem Compiler und einem Debugger weiterzuentwickeln. Verse ist so konzipiert, dass es direkt in Maschinencode kompiliert werden kann, und bietet alle Funktionen einer Low-Level-Sprache, kann aber dennoch wie Sprachen wie Python oder Ruby interpretiert werden (was die Portabilität verbessert und die Zeitverschwendung reduziert, da die Durchführung einer Programmiersprache entfällt). vollständige Kompilierung Ihrer Codebasis, nur um Unit-Tests auszuführen).
Um Vers zu installieren, müssen Sie es aus dem Quellcode erstellen. Standardmäßig versucht der Build-Prozess, clang++
zu verwenden. Sie können dies jedoch ändern, sodass stattdessen g++
verwendet wird, wenn Sie dies wünschen. In jedem Fall ist c++20
oder höher erforderlich.
$$ git clone https://www.github.com/fDero/Verse$$ cd Verse$$ make build
Um Ihr erstes Hello-World-Programm in Versen zu erstellen, müssen Sie lediglich eine Datei mit der Erweiterung .verse
erstellen (in diesem Fall heißt sie hello.verse
), die den folgenden Code enthält:
func main(){println("Hallo Welt!"); }
Sobald Sie die Datei eingerichtet haben, können Sie sie mit dem Befehl verse -r hello.verse
in der Konsole ausführen.
$$ verse -r hello.verse$$ Hallo Welt!
Verse ist eine streng typisierte Sprache und verfügt über ein Typsystem im C-Stil mit Int
, Float
, Bool
, Char
und String
als primitiven Typen.
func main(){var x : Int = 6;var y : Float = 9.4;var f : Bool = false;var c : Char = 'z';var s : String = "hello world"; }
Verse unterstützt die Rekursion wie jede andere Sprache. Eine gute Möglichkeit, dies zu zeigen, ist das klassische Fibonacci-Beispiel. Betrachten Sie den folgenden Code:
func fibo(n : Int){if (n < 2) {return 1; }else {return fibo(n-1) + fibo(n-2); } }func main(){println(fibo(6)); }
Angenommen, die Datei heißt fibo.verse
, dann kann sie genau wie zuvor mit dem Hallo-Welt-Beispiel mit dem Befehl verse -r
ausgeführt werden.
$$ verse -r fibo.verse$$ 21