Voodoo Compiler

Screenshot Software:
Voodoo Compiler
Szczegóły programowe:
Wersja: 1.1.1
Filmu: 20 Feb 15
Wywoływacz: Robbert Haarman
Licencja: Wolny
Popularność: 43

Rating: 5.0/5 (Total Votes: 1)

Voodoo Compiler jest implementacja języka programowania Voodoo. & Nbsp; język programowania Voodoo to język programowania niskiego poziomu, abstrahując nad instrukcją platformy ustawionej i konwencji wywołań, ale poza opuszczeniem programista bezpłatny zrobić cokolwiek.
Voodoo Compiler jest napisany w Ruby i generuje kod zgodny z i386, AMD64 i MIPS CPU. Wsparcie dla dodatkowych procesorów docelowej jest planowane na przyszłość.
Zastosowanie
Istnieją dwa główne sposoby korzystania z kompilatora Voodoo: uruchamiając program voodooc lub przy użyciu funkcji API Ruby.
Program voodooc kompiluje pliki źródłowe Voodoo. Jego użycie jest opisane w manpage voodooc.1, zawarte w dystrybucji. Oto przykład, jak voodooc może być używany do tworzenia plików wykonywalnych Witam w hello.voo pliku źródłowego:
$ Voodooc hello.voo
$ Cc hello.o -o witaj
$ ./hello
Witaj świecie!
Realizacja hello.voo można znaleźć w teście katalogów rozkładu.
Drugi sposób wykorzystania kompilator Voodoo jest używanie go z programu Ruby. Może to być wykorzystane na przykład do generowania kodu dla platformy docelowej, bez konieczności tworzenia pliku .voo. Oto przykład, który tworzy plik o nazwie fact.o obiektu, zawierający definicję funkcji, które oblicza na fakt silnię:
"voodoo" wymaga
Generator = Voodoo :: CodeGenerator.get_generator: Architektura =>: i386,
& Nbsp;: format =>: Elf
generator.export: fakt,
generator.add_function_label: fakt,
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # następnie
& Nbsp; [[: powrót, 1]],
& Nbsp; # indziej
& Nbsp; [[: pozwól,: x,: sub: n, 1],
& Nbsp; [: zestaw,: x, zadzwoń,: Fakt: x]
& Nbsp; [: powrót,: mul,: n: x]]]
File.Open ("fact.o ',' w ') {| plik_wy | generator.write plik_wy}
Voodoo kompilator API, które jest dostępne dla programów Ruby jest opisany w dokumentacji API

Co nowego w tym wydaniu:.

    < li> Zgodność z Ruby 1.9, oprócz Ruby 1.8; Test zgłasza się teraz liczbę nieudanych prób i przekazane.
  • Test wielu-Vars został podzielony na wiele-args, wiele-args-ogon, i wiele-mieszkańcy.

Co nowego w wersji 1.0.1:

  • W tej wersji dodano szereg usprawnień do parsera , które teraz donosi lokalizacje kodu źródłowego dla wszystkich błędów i może zgłosić wiele błędów wewnątrz bloków, funkcji i instrukcji warunkowych. Liczne testy dla parsera zostały dodane.
  • To wydanie naprawia błąd składniowy na sprawozdanie następnie komentarze i problem, który spowodował awarię parser na pusty wejścia.

Co nowego w wersji 1.0.0:

  • generator kodu ARM: Kompilator może teraz generować zespół i ELF kod obiektu dla architektury ARM.
  • Ulepszone raportowanie błędów. Więcej błędów są wykrywane, a błędy są zgłaszane w łatwiejszy do zrozumienia komunikaty o błędach,

  • Moduł
  • Validator: ten nowy moduł może być używany do sprawdzania poprawności kodu wygenerowanego Voodoo. Jest on używany przez parser do sprawdzania poprawności kodu przeanalizowanych.
  • Interfejs funkcji: funkcje realizacji może być sprawdzony zarówno programowo, a z linii poleceń
  • .

Co nowego w wersji 0.7.0:

  • Bloki: zapewniają one zakresów, w których zmienne lokalne mogą być określona let. Takie zmienne występują od końca zestawienia let, aż do końca bloku. Bloki mogą występować w dowolnym miejscu, gdzie może wystąpić działanie. Są one rozpoczął i zakończył bloku bloku końcowego.
  • Chained warunkowy: można teraz napisać & quot; else if & quot ;, a nie wymagające zagnieżdżone, jeśli w klauzuli else
  • .
  • Shift i obróć: przesunięcie działania (asr, BSR, SHL, SHR) i obracać działania (ROL, ROR) zostały dodane,
  • .
  • Powrót bez wartości: powrót może być teraz używane bez podania wyrażenie do oceny. Powoduje to, że wartość niezdefiniowana być zwracane z funkcji.

Co nowego w wersji 0.6.3:

  • W tej wersji wprowadzono w-wyrażeń: poprzedzając etykieta, zmienna lokalna, lub całkowite z @, wartość jest traktowana jako adres, a słowo zapisane pod tym adresem jest zwracana.
  • Dodatkowo, niektóre błędy zostały odkryte w sposób ciągi zostały zakodowane w wygenerowanego kodu montażu.
  • Te błędy zostały poprawione, a teraz w wersji 0.6.3 obsługuje ciągi zawierające wszystkie 256 możliwych wartości bajtów poprawnie.

Co nowego w wersji 0.6.2:

  • To wydanie naprawia błędy w implementacji usta- Słowo dla i386 i AMD64 i dodaje testów dla spraw, które wcześniej nie działały prawidłowo.

Podobne oprogramowanie

X11-Basic
X11-Basic

20 Feb 15

Chicken
Chicken

17 Jul 15

HGL Suite
HGL Suite

17 Feb 15

Komentarze do Voodoo Compiler

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!