Ինչպես գրել թարգմանիչ

Բովանդակություն:

Ինչպես գրել թարգմանիչ
Ինչպես գրել թարգմանիչ

Video: Ինչպես գրել թարգմանիչ

Video: Ինչպես գրել թարգմանիչ
Video: Ինչպես թարգմանել ցանկացած տեքստ գրված ցանկացած լեզվով 2024, Մայիս
Anonim

Կան բազմաթիվ ծրագրավորման լեզուներ, որոնք ունեն իրենց ուրույն առանձնահատկությունները: Բայց որպեսզի դրանցից որևէ մեկում գրված ծրագիր աշխատի, պետք է այն հեռարձակել: Երբեմն ծրագրավորման լեզուները մշակվում են իրենց սեփական կարիքների համար (օրինակ, խոշոր ծրագրերում ավտոմատացման աջակցություն), ապա անհրաժեշտ է դառնում թարգմանիչ գրել:

Ինչպես գրել թարգմանիչ
Ինչպես գրել թարգմանիչ

Անհրաժեշտ է

  • - սկզբնաղբյուրի բնական քերականություն կամ BNF;
  • - զարգացման գործիքներ.

Հրահանգներ

Քայլ 1

Տվյալները պատրաստել սկզբնաղբյուրով տեքստի բառարանային վերլուծության համար: Նշեք լեզվի բոլոր նշանները: Դրանք բաժանեք կատեգորիաների (հիմնաբառեր, թվային և լարային բառեր, նույնացուցիչներ, սպիտակ տարածություն, կետադրական նշաններ և այլն):

Քայլ 2

Իրականացնել մոդուլ կամ ընթերցող: Մուտքային մասում այն պետք է ստանա տվյալների «չմշակված» հոսք, իսկ ելքի դեպքում կազմի ցուցիչներ պարունակող տարրերի ցուցակ և դրանց տիպի նույնացուցիչներ այն հաջորդականությամբ, որով դրանք հանդիպում են աղբյուրի տեքստում: Վերծանման ծրագիրը կարող է լինել բավականին պարզ »: մեկ մակարդակի »սկաներ: Սխալի վերականգնման իրականացումը իմաստ չունի: Անվավեր նիշերը պետք է դիտարկվեն որպես սխալներ:

Քայլ 3

Պատրաստեք վերլուծությունը վերլուծելու համար: Հիմք ընդունելով սկզբնաղբյուրի բնական քերականությունը կամ BNF ՝ կազմեք նրա LL1 քերականությունը: Այս տեսակի քերականության հիման վրա կազմեք վերլուծման սխեմա `լեզվի վավեր նշանների և իմաստային կառուցվածքների կատեգորիաների առումով:

Քայլ 4

Իրականացնել մոդուլ կամ վերլուծիչ: Մուտքագրման ժամանակ այն պետք է ստանա նշանների ցուցակ, որոնք պատրաստվել են բառարանային վերլուծության փուլում: Մշակեք ռեկուրսիվ շարահյուսության ստուգման ալգորիթմներ `օգտագործելով ձեր կողմից ստեղծված սխեման երրորդ քայլում: Անհրաժեշտության դեպքում կիրառեք սխալի վերականգնման մեխանիզմներ: Գործառույթների, դասի մեթոդների հաշվարկման համար ծառ կառուցելու համար վերլուծության ալգորիթմներին ավելացրեք ֆունկցիոնալություն: Վերլուծելու ալգորիթմների ճիշտ կառուցվածքով այս ֆունկցիոնալությունը կարող է իրականացվել առանց խնդիրների: Սա խուսափում է այն որպես առանձին մոդուլ իրականացնելու անհրաժեշտությունից: Ստեղծված տվյալների կառուցվածքը պետք է պարունակի ցուցումների ցուցակներ `« տափակ »հաջորդականությունների տեսքով (թվաբանական արտահայտություններն ընդլայնված են հետֆիքսային ձևի մեջ, որը հարմար է բուրգերի մեքենայի վրա,

Քայլ 5

Անհրաժեշտության դեպքում ստեղծեք օպտիմալացման մոդուլ: Այն պետք է մշակի և փոխակերպի նախորդ փուլում պատրաստված տվյալների կառուցվածքները: Օպտիմալացման ալգորիթմներն ու մեթոդները շատ բազմազան են:

Քայլ 6

Մշակել կոդերի գեներատոր: Չորրորդ կամ հինգերորդ քայլերով պատրաստված կառույցները մշակելիս այն պետք է պարզապես վերափոխի վերացական ցուցումների հաջորդականությունները որոշակի հարթակում կատարման հրահանգների:

Քայլ 7

Անհրաժեշտության դեպքում ստեղծեք կապող ծրագիր (կապող): Այն պետք է կազմի ստացված գործարկվող մոդուլը ՝ ընտրելով ծածկագրի հատվածների տեղը, հաշվելով պիտակների հասցեները և այլն:

Խորհուրդ ենք տալիս: