Կան բազմաթիվ ծրագրավորման լեզուներ, որոնք ունեն իրենց ուրույն առանձնահատկությունները: Բայց որպեսզի դրանցից որևէ մեկում գրված ծրագիր աշխատի, պետք է այն հեռարձակել: Երբեմն ծրագրավորման լեզուները մշակվում են իրենց սեփական կարիքների համար (օրինակ, խոշոր ծրագրերում ավտոմատացման աջակցություն), ապա անհրաժեշտ է դառնում թարգմանիչ գրել:
Անհրաժեշտ է
- - սկզբնաղբյուրի բնական քերականություն կամ BNF;
- - զարգացման գործիքներ.
Հրահանգներ
Քայլ 1
Տվյալները պատրաստել սկզբնաղբյուրով տեքստի բառարանային վերլուծության համար: Նշեք լեզվի բոլոր նշանները: Դրանք բաժանեք կատեգորիաների (հիմնաբառեր, թվային և լարային բառեր, նույնացուցիչներ, սպիտակ տարածություն, կետադրական նշաններ և այլն):
Քայլ 2
Իրականացնել մոդուլ կամ ընթերցող: Մուտքային մասում այն պետք է ստանա տվյալների «չմշակված» հոսք, իսկ ելքի դեպքում կազմի ցուցիչներ պարունակող տարրերի ցուցակ և դրանց տիպի նույնացուցիչներ այն հաջորդականությամբ, որով դրանք հանդիպում են աղբյուրի տեքստում: Վերծանման ծրագիրը կարող է լինել բավականին պարզ »: մեկ մակարդակի »սկաներ: Սխալի վերականգնման իրականացումը իմաստ չունի: Անվավեր նիշերը պետք է դիտարկվեն որպես սխալներ:
Քայլ 3
Պատրաստեք վերլուծությունը վերլուծելու համար: Հիմք ընդունելով սկզբնաղբյուրի բնական քերականությունը կամ BNF ՝ կազմեք նրա LL1 քերականությունը: Այս տեսակի քերականության հիման վրա կազմեք վերլուծման սխեմա `լեզվի վավեր նշանների և իմաստային կառուցվածքների կատեգորիաների առումով:
Քայլ 4
Իրականացնել մոդուլ կամ վերլուծիչ: Մուտքագրման ժամանակ այն պետք է ստանա նշանների ցուցակ, որոնք պատրաստվել են բառարանային վերլուծության փուլում: Մշակեք ռեկուրսիվ շարահյուսության ստուգման ալգորիթմներ `օգտագործելով ձեր կողմից ստեղծված սխեման երրորդ քայլում: Անհրաժեշտության դեպքում կիրառեք սխալի վերականգնման մեխանիզմներ: Գործառույթների, դասի մեթոդների հաշվարկման համար ծառ կառուցելու համար վերլուծության ալգորիթմներին ավելացրեք ֆունկցիոնալություն: Վերլուծելու ալգորիթմների ճիշտ կառուցվածքով այս ֆունկցիոնալությունը կարող է իրականացվել առանց խնդիրների: Սա խուսափում է այն որպես առանձին մոդուլ իրականացնելու անհրաժեշտությունից: Ստեղծված տվյալների կառուցվածքը պետք է պարունակի ցուցումների ցուցակներ `« տափակ »հաջորդականությունների տեսքով (թվաբանական արտահայտություններն ընդլայնված են հետֆիքսային ձևի մեջ, որը հարմար է բուրգերի մեքենայի վրա,
Քայլ 5
Անհրաժեշտության դեպքում ստեղծեք օպտիմալացման մոդուլ: Այն պետք է մշակի և փոխակերպի նախորդ փուլում պատրաստված տվյալների կառուցվածքները: Օպտիմալացման ալգորիթմներն ու մեթոդները շատ բազմազան են:
Քայլ 6
Մշակել կոդերի գեներատոր: Չորրորդ կամ հինգերորդ քայլերով պատրաստված կառույցները մշակելիս այն պետք է պարզապես վերափոխի վերացական ցուցումների հաջորդականությունները որոշակի հարթակում կատարման հրահանգների:
Քայլ 7
Անհրաժեշտության դեպքում ստեղծեք կապող ծրագիր (կապող): Այն պետք է կազմի ստացված գործարկվող մոդուլը ՝ ընտրելով ծածկագրի հատվածների տեղը, հաշվելով պիտակների հասցեները և այլն: