Çevirmen Nasıl Yazılır

İçindekiler:

Çevirmen Nasıl Yazılır
Çevirmen Nasıl Yazılır

Video: Çevirmen Nasıl Yazılır

Video: Çevirmen Nasıl Yazılır
Video: İyi Bir Çeviri ve Çevirmen Nasıl Olmalıdır? 2024, Nisan
Anonim

Kendine has özellikleri olan birçok programlama dili vardır. Ancak bunlardan herhangi birinde yazılan bir programın çalışması için onu yayınlamanız gerekir. Bazen programlama dilleri kendi ihtiyaçları için geliştirilir (örneğin, büyük uygulamalarda otomasyon desteği) ve ardından bir tercüman yazmak gerekli hale gelir.

çevirmen nasıl yazılır
çevirmen nasıl yazılır

Gerekli

  • - kaynak dilin doğal dilbilgisi veya BNF'si;
  • - Geliştirme araçları.

Talimatlar

Aşama 1

Kaynak dilde metnin sözcüksel analizi için verileri hazırlayın. Dildeki tüm belirteçleri listeleyin. Bunları kategorilere ayırın (anahtar kelimeler, sayısal ve dize değişmezleri, tanımlayıcılar, boşluk, noktalama işaretleri vb.).

Adım 2

Bir modül veya lexer uygulayın. Girişte, "ham" bir veri akışı almalı ve çıkışta, kaynak metinde meydana geldikleri sırada belirteçleri ve bunların tür tanımlayıcılarını içeren bir öğe listesi oluşturmalıdır. Ayrıştırma programı oldukça basit olabilir " tek seviyeli" tarayıcı. Hata kurtarmayı uygulamak mantıklı değil. Geçersiz karakterler hata olarak kabul edilmelidir.

Aşama 3

Verileri ayrıştırma için hazırlayın. Kaynak dilin doğal dilbilgisine veya BNF'sine dayanarak, LL1 dilbilgisini oluşturun. Bu tür bir dilbilgisine dayanarak, geçerli belirteçlerin kategorileri ve dilin anlamsal yapıları açısından bir ayrıştırma şeması oluşturun.

4. Adım

Bir modül veya ayrıştırıcı uygulayın. Girişte, sözlüksel ayrıştırma aşamasında hazırlanan belirteçlerin bir listesini almalıdır. Üçüncü adımda oluşturduğunuz şemayı kullanarak özyinelemeli sözdizimi kontrol algoritmaları geliştirin. Gerekirse, hata kurtarma mekanizmalarını uygulayın. İşlevleri, sınıf yöntemlerini hesaplamak için bir ağaç oluşturmak için ayrıştırma algoritmalarına işlevsellik ekleyin. Parsing algoritmalarının doğru yapısı ile bu işlevsellik sorunsuz bir şekilde uygulanabilir. Bu, onu ayrı bir modül olarak uygulama ihtiyacını ortadan kaldırır. Oluşturulan veri yapıları, "düz" diziler biçiminde komut listelerini içermelidir (bir yığın makinesinde hesaplamaya uygun postfix formuna genişletilmiş aritmetik ifadeler, hesaplama talimatları dizilerinin kombinasyonlarına dönüştürülen döngüler ve koşullu veya koşulsuz atlamalar, vb.).

Adım 5

Gerekirse bir optimizasyon modülü oluşturun. Bir önceki adımda hazırlanan veri yapılarını işlemeli ve dönüştürmelidir. Optimizasyon algoritmaları ve yöntemleri çok çeşitlidir.

6. Adım

Bir kod üreteci geliştirin. Dördüncü veya beşinci adımlarda hazırlanan yapılar işlenirken, soyut talimat dizilerini belirli bir platformda yürütme talimatlarına basitçe dönüştürmelidir.

7. Adım

Gerekirse bir bağlayıcı programı (bağlayıcı) oluşturun. Kod bölümlerinin konumunu seçerek, etiketlerin adreslerini hesaplayarak, vb. ortaya çıkan yürütülebilir modülü oluşturmalıdır.

Önerilen: