Voodoo Derleyici Voodoo programlama dilinin bir uygulamasıdır. & Nbsp; Voodoo programlama dili ayarlamak platformun talimatı üzerine soyutlama ve kuralları çağırarak, ancak aksi takdirde hiç bir şey yapmak için ücretsiz programcı bırakarak, düşük seviyeli bir programlama dilidir.
Voodoo Derleyici Ruby ile yazılmış ve-i386 uyumlu, AMD64 ve MIPS işlemcileri için kod üretir. Ek hedef işlemciler için destek gelecek için planlanmaktadır.
Kullanım
Voodooc programını çalıştırarak, ya da Ruby API kullanarak: Voodoo derleyici kullanmak için iki ana yöntem vardır.
voodooc programı bir Voodoo kaynak dosyaları derler. Kullanımı dağılımında, voodooc.1 man tarif yer almaktadır. Aşağıdaki voodooc bir kaynak dosya hello.voo bir yürütülebilir Merhaba oluşturmak için nasıl kullanılabileceği bir örnek:
$ Voodooc hello.voo
$ Cc hello.o -o merhaba
$ ./hello
Merhaba Dünya!
Hello.voo bir uygulama dağılımı rehberi test bulunabilir.
Voodoo derleyici kullanmak için ikinci bir yol Ruby programdan kullanmaktır. Bu .voo dosyası oluşturmak zorunda kalmadan hedef platform kodu oluşturmak için, örneğin, de kullanılabilir. Aşağıdaki faktöriyel'dir hesaplayan bir fonksiyon aslında bir tanımını içeren, fact.o denilen bir nesne dosyası oluşturur bir örnek:
'voodoo' gerektirir
jeneratör = Voodoo :: CodeGenerator.get_generator: mimari =>: i386,
& Nbsp;: biçimi =>: elf
generator.export: Aslında
generator.add_function_label: Aslında
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # sonra
& Nbsp; [[: dönüş, 1]],
& Nbsp; # else
& Nbsp; [[: let, x,: alt: n, 1],
& Nbsp; [: set, x,: çağrı: Aslında, x],
& Nbsp; [: dönüş: mul: n, x]]]
File.Open ('fact.o', 'w') {| ÇıkışDosyası | generator.write ÇıkışDosyası}
Ruby programlarına bir kullanılabilir Voodoo derleyici API API belgelerinde açıklanan
Bu sürümdeki yeni nedir:.
- < li> Ruby 1.9 ile uyumluluk, Ruby 1.8 ek olarak; Test artık geçti ve başarısız testler sayısını bildirir olun.
- Bir çok-vars testi birçok-args bölünmüş oldu, çok-args-kuyruk, ve birçok halk-.
nedir sürüm 1.0.1 Yeni:
- Bu sürüm ayrıştırıcı bir dizi iyileştirme ekler Şimdi tüm hatalar için kaynak kodu yerleri raporları ve bloklar, fonksiyonları, ve koşullu içinde birden hataları rapor hangi. Çözümleyici için çeşitli testler eklenmiştir.
- Bu sürüm yorumlar tarafından takip tablolar üzerinde bir ayrıştırma hatası ve ayrıştırıcı boş giriş başarısız neden bir sorunu giderir.
nedir sürüm 1.0.0 Yeni:
- ARM kod üreteci: derleyici şimdi üretebilir montaj ve ARM mimarisi için ELF nesne kodu.
- Geliştirilmiş hata raporlama:. Daha fazla hata tespit edilir, ve hatalar hata mesajları anlamak daha kolay bildirilmiştir
- Validator modülü: Bu modül yeni oluşturulan Voodoo kodu doğrulamak için kullanılabilir. Bu çözümlü kodu doğrulamak için çözümleyici tarafından kullanılır.
- Özellik arayüzü: uygulama özellikleri programlı ve komut satırından hem sorgulanabilir .
nedir sürüm 0.7.0 Yeni:
- Bloklar: Bu kapsamları sağlayan yerel değişkenler olabilir let ile tanımlanabilir. Bu tür değişkenler bloğun sonuna kadar let deyimi sonundan var. Bloklar bir eylem meydana gelebilen herhangi bir yerde oluşabilir. Onlar blok ile başladı ve son bloğu ile bitirilir.
- Zincirleme koşul: o & quot yazmak artık mümkün; else if & quot ;, yerine başka maddesinde ise iç içe gerektiren .
- Shift ve döndürmek: eylemler (asr, bsr, SHL, shr) ve döndürmek eylemler (rol, ror) eklenmiştir vardiya .
- değeri olmayan Dönüş: dönüş artık değerlendirmek için bir ifade belirtmeden kullanılabilir. Bu tanımsız bir değer işlevinden döndürülen neden olur.
nedir sürüm 0.6.3 Yeni:
- Bu sürüm de-ifadeleri tanıttı: Bir önek olarak Bir @ etiket, yerel değişken veya tamsayı değeri bir adres olarak kabul edilir ve bu adreste saklanan kelime döndürülür.
- Ayrıca, bazı hatalar yolu dizeleri ortaya çıkarılmıştır oluşturulan derleme kodu kodlanmış bulundu.
- Bu hata düzeltildi, ve sürüm 0.6.3 şimdi doğru 256 olası bayt değerleri içeren dizeleri işler.
nedir sürüm 0.6.2 Yeni:
- Bu sürüm giderir düşümünden uygulamalarında hata i386 ve AMD64 ve kelime daha önce düzgün çalışmadı durumlar için testler ekler.
Yorum Bulunamadı