Verse — интерпретатор языка программирования Verse. В будущем цель состоит в том, чтобы превратить этот проект в комплексный пакет, состоящий из интерпретатора, компилятора и отладчика. Verse предназначен для компиляции непосредственно в машинный код и предлагает все функции языка низкого уровня, но при этом его можно интерпретировать как такие языки, как Python или Ruby (повышается переносимость и сокращаются потери времени за счет устранения необходимости выполнять полная компиляция вашей кодовой базы только для запуска модульных тестов).
Чтобы установить стих, вам необходимо собрать его из исходного кода. По умолчанию процесс сборки пытается использовать clang++
, но вы можете изменить это, чтобы вместо этого использовать g++
если хотите. В любом случае требуется c++20
или выше.
$$ git clone https://www.github.com/fDero/Verse$$ cd Verse$$ make build
Чтобы создать свою первую программу hello-world в стихах, достаточно создать файл с расширением .verse
(в данном случае он будет называться hello.verse
), содержащий следующий код:
func main(){println("Привет, мир!"); }
После того, как вы настроили файл, для его запуска просто используйте командуverse verse -r hello.verse
в консоли.
$$ verse -r hello.verse$$ Привет, мир!
Verse — строго типизированный язык, он имеет систему типов в стиле C с Int
, Float
, Bool
, Char
, String
в качестве примитивных типов.
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 поддерживает рекурсию, как и любой другой язык, и хороший способ продемонстрировать это на классическом примере Фибоначчи, рассмотрим следующий код:
func fibo(n : Int){if (n <2) {return 1; }else {return fibo(n-1) + fibo(n-2); } }func main(){println(fibo(6)); }
если предположить, что файл называется fibo.verse
, то его можно выполнить так же, как мы делали ранее в примере с hello-world, используя команду verse -r
.
$$ стих -r fibo.verse$$ 21