Voodoo Compiler

Софтуер снимки:
Voodoo Compiler
Софтуер детайли:
Версия: 1.1.1
Дата на качване: 20 Feb 15
Розробник: Robbert Haarman
Разрешително: Безплатно
Популярност: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler е реализация на езика Voodoo програмиране & Nbsp;. Езикът Voodoo програмиране е език за програмиране на ниско ниво, абстрахиране над инструкция на платформата зададете и призова конвенции, но иначе напускане на програмиста свободен да прави каквото и да било.
Voodoo Compiler е написан на Ruby и генерира код за i386-съвместима, AMD64, и MIPS процесор. Подкрепа за допълнителна целева процесори се планира за в бъдеще.
<Силен> Usage
Има два основни начина за използване на Voodoo съставител: като пуснете програмата voodooc, или чрез използване на API Ruby.
Програмата voodooc компилира вуду изходни файлове. Използването му е описано в voodooc.1 Спиране, включени в дистрибуцията. Следното е пример за това как voodooc може да се използва за създаване на изпълним здравей от източник файл hello.voo:
$ Voodooc hello.voo
$ Вв hello.o -o здравей
$ ./hello
Здравей Свят!
Едно изпълнение на hello.voo може да се намери в теста директория на дистрибуцията.
Вторият начин за използване на Voodoo съставител е като тя се използва от програма Ruby. Това може да се използва, например, за генериране на код за целевата платформа без да се налага да се създаде файл .voo. Следното е пример, който създава обект файл, наречен fact.o, съдържащ дефиниция на функция факт, който изчислява factorials:
изисква "вуду"
Генератор = Voodoo :: CodeGenerator.get_generator: архитектура =>: i386,
& Nbsp;: формат =>: елф
generator.export: факт
generator.add_function_label: факт
generator.add_function [: п],
& Nbsp; [: ifle, [: п 1],
& Nbsp; # тогава
& Nbsp; [[: връщане, 1]],
& Nbsp; # останало
& Nbsp; [[: нека,: X, Под,: N, 1],
& Nbsp; [: набор,: X,: обадя,: Всъщност: X],
& Nbsp; [: замяна: MUL,: N,: X]]]
File.open ("fact.o", "w") {| outfile | generator.write outfile}
API The Voodoo компилатор, който е на разположение на Ruby програми е описано в документацията на API

Какво ново в тази версия:.

    < Li> Съвместимост с Ruby 1.9, в допълнение към Ruby 1.8; направи тест предприятието отчита броя на преминали и успешно тестовете.
  • Тестът за много-Vars е разделен на много-аргументи, много-опцията опашка, и много-местни жители.

Какво ново във версия 1.0.1:

  • Тази версия добавя редица подобрения на парсера , които сега съобщава места изходния код за всички грешки и да докладва множество грешки вътре блокове, функции и условностите. Добавени са няколко тестове за парсера.
  • Тази версия поправя синтактична грешка на заявки, следвани от коментари и проблем, от който произтичат парсера да се провали на празен вход.

Какво ново във версия 1.0.0:

  • ARM код генератор: Компилаторът сега може да генерира сглобяване и ELF обектен код за ARM архитектура.
  • Подобряване на съобщаване на грешки:. Са открити повече грешки и грешки се съобщава в-лесно да се разбере, съобщения за грешки
  • Validator модул: този нов модул може да се използва, за да валидира генерирана Voodoo код. Той се използва от парсера да валидира Анализирани синтактичнo код.
  • Feature интерфейс: характеристики на изпълнението може да бъде заявен както програмно и от командния ред
  • .

Какво ново във версия 0.7.0:

  • Blocks: те осигуряват сфери, в които местните променливи могат да се дефинира с позволиш. Такива променливи от края на отчета за наем, до края на блока. Блоковете могат да се появят на всяко място, където може да се случи дадено действие. Те са започнали с блок и завърши с краен блок.
  • окован условностите: сега е възможно да се напише & quot; иначе, ако & quot ;, вместо да изискват вложени ако в клаузата за друго
  • .
  • Shift и се върти: SHIFT действия (ASR, БДЖ SHL, SHR) и се въртят действия (ROL, ROR) са добавени
  • .
  • Върни без стойност: Върнете се сега може да се използва, без да уточнява израз да се оцени. Това причинява неопределено стойност да бъде върната от функцията.

Какво ново във версия 0.6.3:

  • Тази версия въвежда най-изрази: Чрез поставяне на префикс етикет, локална променлива, или число с @, стойността се третира като адрес, а думата съхранява на този адрес се върна.
  • Освен това, някои бъгове са разкрити в начина, по струните са кодирани в генерирани сглобяване код.
  • Тези грешки са фиксирани, както и версия 0.6.3 сега дръжки низове, съдържащи всички 256 възможни стойности байт правилно.

Какво ново във версия 0.6.2:

  • Тази версия поправя грешки в внедряванията на заданието Думата за i386 и AMD64 и добавя тестове за случаите, които по-рано не работят правилно.

Подобен софтуер

GCC
GCC

16 Aug 18

refactor
refactor

2 Jun 15

Коментари към Voodoo Compiler

Коментари не е намерена
добавите коментар
Включете на изображения!
Търсене по категория