Voodoo Compiler

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

Rating: nan/5 (Total Votes: 0)

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

nwcc
nwcc

11 May 15

CmdOption
CmdOption

28 Sep 15

Flex
Flex

12 Jul 17

Komentarze do Voodoo Compiler

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