Tərcüməçi Necə Yazılır

Mündəricat:

Tərcüməçi Necə Yazılır
Tərcüməçi Necə Yazılır

Video: Tərcüməçi Necə Yazılır

Video: Tərcüməçi Necə Yazılır
Video: Klaviaturada yaza-yaza nece istenilen dile tercüme etmek olar? ( iTranslate Keyboard) 2024, Noyabr
Anonim

Özünəməxsus xüsusiyyətləri olan bir çox proqramlaşdırma dili var. Ancaq hər hansı birində yazılmış bir proqramın işləməsi üçün onu yayımlamalısınız. Bəzən proqramlaşdırma dilləri öz ehtiyacları üçün inkişaf etdirilir (məsələn, böyük tətbiqlərdə avtomatlaşdırma dəstəyi) və sonra tərcüməçi yazmaq lazım gəlir.

Tərcüməçi necə yazılır
Tərcüməçi necə yazılır

Zəruri

  • - mənbə dilinin təbii qrammatikası və ya BNF;
  • - inkişaf vasitələri.

Təlimat

Addım 1

Mənbə dildə mətnin leksik təhlili üçün məlumatları hazırlayın. Dildəki bütün ayələri sadalayın. Onları kateqoriyalara ayırın (açar sözlər, ədədi və simli ədəbiyyat, identifikatorlar, boşluq, durğu işarələri və s.).

Addım 2

Bir modul və ya lexer tətbiq edin. Girişdə "xam" bir məlumat axını almalı və çıxışda mənbə mətnində meydana çıxdıqları ardıcıllıqla əlamətləri və onların növü identifikatorlarını ehtiva edən elementlərin siyahısını təşkil etməlidir. Ayrıştırma proqramı olduqca sadə ola bilər " bir səviyyəli "skaner. Xəta bərpa tətbiqetməsinin mənası yoxdur. Yanlış simvollar səhv kimi qiymətləndirilməlidir.

Addım 3

Məlumatları təhlil üçün hazırlayın. Mənbə dilinin təbii qrammatikasına və ya BNF-yə əsaslanaraq LL1 qrammatikasını tərtib edin. Bu tip qrammatikaya əsaslanaraq dilin etibarlı işarələri və semantik konstruksiyaları kateqoriyası baxımından təhlil sxemini tərtib edin.

Addım 4

Bir modul və ya təhlilçi tətbiq edin. Girişdə, leksik təhlil mərhələsində hazırlanmış jetonların siyahısını almalıdır. Üçüncü addımda yaratdığınız sxemdən istifadə edərək rekursiv sintaksis yoxlama alqoritmlərini inkişaf etdirin. Lazım gələrsə, səhv bərpa mexanizmlərini tətbiq edin. Funksiyaları, sinif metodlarını hesablamaq üçün bir ağac qurmaq üçün təhlil alqoritmlərinə funksionallıq əlavə edin. Təhlil alqoritmlərinin düzgün quruluşu ilə bu funksiya heç bir problem olmadan həyata keçirilə bilər. Bu, onu ayrı bir modul kimi tətbiq etmək ehtiyacını aradan qaldırır. Yaratılmış məlumat strukturlarında "düz" ardıcıllıqlar şəklində təlimat siyahıları (yığma maşında hesablama üçün uyğun postfiks şəklində genişlənmiş arifmetik ifadələr, hesablama təlimatlarının ardıcıllığı və şərti və ya şərtsiz atlamalar kombinasiyasına çevrilmiş döngələr və s.) Olmalıdır..

Addım 5

Lazım gələrsə bir optimallaşdırma modulu yaradın. Əvvəlki addımda hazırlanmış məlumat strukturlarını işləməli və dəyişdirməlidir. Optimizasiya alqoritmləri və metodları çox müxtəlifdir.

Addım 6

Kod generatoru hazırlayın. Dördüncü və ya beşinci addımlarda hazırlanmış strukturları işləyərkən, sadəcə mücərrəd təlimatların ardıcıllığını müəyyən bir platformada icra təlimatına çevirməlidir.

Addım 7

Lazım gələrsə bir bağlayıcı proqram (bağlayıcı) yaradın. Kod seqmentlərinin yerini seçərək, etiketlərin ünvanlarını hesablayaraq və s. İlə nəticələnən yürütülə bilən modulu əmələ gətirməlidir.

Tövsiyə: