Ինչպես ստեղծել ծրագրավորման լեզու. 15 քայլ (նկարներով)

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

Ինչպես ստեղծել ծրագրավորման լեզու. 15 քայլ (նկարներով)
Ինչպես ստեղծել ծրագրավորման լեզու. 15 քայլ (նկարներով)

Video: Ինչպես ստեղծել ծրագրավորման լեզու. 15 քայլ (նկարներով)

Video: Ինչպես ստեղծել ծրագրավորման լեզու. 15 քայլ (նկարներով)
Video: Ինչ հիմնական մասերից է բաղկացած համակարգիչը 2024, Մայիս
Anonim

Շատ մարդիկ դժվարություններ կամ հիասթափություններ ունեն այն ծրագրավորման լեզուների հետ, որոնք նրանք օգտագործում են ամեն օր: Ոմանք ցանկանում են, որ բաներն ավելի վերացականորեն վերաբերվեն, իսկ ոմանք չեն սիրում այն գործառույթների իրականացումը, որոնք նրանք կցանկանային «ստանդարտ» լինել: Անկախ նրանից, թե ՏՏ մասնագետ եք, թե պարզապես հոբբիիստ, շատ անգամներ կարող է հայտնվել, որ ցանկանում եք ստեղծել նոր ծրագրավորման լեզու:

Քայլեր

Ստեղծեք ծրագրավորման լեզու Քայլ 1
Ստեղծեք ծրագրավորման լեզու Քայլ 1

Քայլ 1. familiarանոթացեք տեխնոլոգիային:

Դուք չեք կարող ստեղծել ծրագրավորման լեզու, եթե չգիտեք, թե ինչպես օգտագործել համակարգիչը:

Ստեղծեք ծրագրավորման լեզու Քայլ 2
Ստեղծեք ծրագրավորման լեզու Քայլ 2

Քայլ 2. familiarանոթացեք տերմինաբանությանը:

Կազմող գրողները հաճախ օգտագործում են անծանոթ տերմինաբանություն: Շարունակելուց առաջ կարդացեք կազմողների մասին: Համոզվեք, որ գիտեք այն ամենը, ինչ ձեզ հարկավոր է իմանալ:

Ստեղծեք ծրագրավորման լեզու Քայլ 3
Ստեղծեք ծրագրավորման լեզու Քայլ 3

Քայլ 3. Որոշեք, թե ինչ խնդիր է լուծում ձեր լեզուն:

Արդյո՞ք դա անդրադառնում է տիրույթի հատուկ խնդրին, թե՞ ընդհանուր նշանակության լեզու է:

Ստեղծեք ծրագրավորման լեզու Քայլ 4
Ստեղծեք ծրագրավորման լեզու Քայլ 4

Քայլ 4. Մտածեք ձեր լեզվի իմաստաբանության և դրա հասկացությունների մասին:

  • Թույլ կտա՞ք ուղղակի ցուցիչի մուտք գործել, թե ոչ:
  • Որո՞նք են ձեր լեզվի տվյալների տեսակները:
  • Արդյո՞ք դա ստատիկ կամ դինամիկ լեզու է:
  • Ո՞րն է ձեր հիշողության մոդելը: Օգտագործու՞մ եք աղբահան կամ ձեռքով հիշողության կառավարում: (Եթե դուք օգտագործում եք աղբահավաք, պատրաստվեք գրել մեկը կամ գոյություն ունեցողը հարմարեցնել ձեր լեզվին):
  • Ինչպե՞ս են վարվելու զուգահեռությունը: Պատրաստվու՞մ եք օգտագործել պարզ թելերով/կողպեքներով մոդել կամ ավելի բարդ մի բան, ինչպիսին է Լինդան կամ դերասանի մոդելը: (Այսօրվանից համակարգիչներն ունեն բազմաթիվ միջուկներ):
  • Կա՞ն պարզունակ գործառույթներ, որոնք ներդրված են լեզվի մեջ, թե՞ ամեն ինչ բխելու է գրադարանից:
  • Ո՞րն է ձեր լեզվի պարադիգմը կամ պարադիգմերը: Ֆունկցիոնալ? Օբյեկտի՞ն կողմնորոշված: Նախատիպ (JavaScript- ի նման)? Ասպեկտ կողմնորոշվա՞ծ: Կաղապարի՞ն կողմնորոշված Թե՞ բոլորովին նոր բան:
  • Ինչպե՞ս է ձեր լեզուն կապվելու գոյություն ունեցող գրադարանների և լեզուների հետ (հիմնականում C): Այս կետը կարևոր է, եթե դուք ստեղծում եք տիրույթի հատուկ լեզու:
  • Ի վերջո, այս հարցերի որոշ պատասխաններ կպատասխանվեն երկրորդ քայլին և կօգնեն ձեզ պատասխանել հաջորդ քայլին:
Ստեղծեք ծրագրավորման լեզու Քայլ 5
Ստեղծեք ծրագրավորման լեզու Քայլ 5

Քայլ 5. Մտածեք մի քանի հատուկ առաջադրանքների մասին, որոնք ինչ -որ մեկը կցանկանար, որ կարողանար կատարել ձեր լեզվով:

Օրինակ ՝ «նրանք կարող են ռոբոտին ուղղորդել դեպի տող» կամ «նրանք կարող են համեմատաբար շարժական աշխատասեղանի ծրագրեր ստեղծել դրանում» կամ «նրանք կարող են դրանով ստեղծել վեբ ծրագրեր»:

Ստեղծեք ծրագրավորման լեզու Քայլ 6
Ստեղծեք ծրագրավորման լեզու Քայլ 6

Քայլ 6. Փորձարկեք շարահյուսական գաղափարները (լեզվի տեքստը) վերը նշված օրինակների համար:

Carefulգույշ եղեք, որ ձեր լեզուն պահեք համատեքստից զերծ լեզվի կատեգորիայում կամ դրա ներսում ինչ-որ բան: Ձեր վերլուծիչ գեներատորը, և դուք հետագայում դա կգնահատեք:

Ստեղծեք ծրագրավորման լեզու Քայլ 7
Ստեղծեք ծրագրավորման լեզու Քայլ 7

Քայլ 7. Գրեք շարահյուսության պաշտոնական քերականություն:

Ստեղծեք ծրագրավորման լեզու Քայլ 8
Ստեղծեք ծրագրավորման լեզու Քայլ 8

Քայլ 8. Որոշեք, թե արդյոք լեզուն մեկնաբանվելու կամ կազմվելու է:

Նշանակում է, որ մեկնաբանված աշխարհում ձեր օգտվողը, որպես կանոն, խմբագրում է ձեր ծրագիրը խմբագրիչում և այն գործարկելու է անմիջապես թարգմանչի վրա. մինչդեռ կազմված աշխարհում ձեր օգտվողը խմբագրելու է ձեր ծրագիրը, կազմելու այն, ստացված գործարկվողը պահելու է ինչ -որ տեղ և գործարկելու է այն:

Ստեղծեք ծրագրավորման լեզու Քայլ 9
Ստեղծեք ծրագրավորման լեզու Քայլ 9

Քայլ 9. Գրեք դիմային սկաները և վերլուծիչը կամ գտեք գործիք, որն օգնում է ձեզ այս հարցում:

Նաև մտածեք, թե ինչպես է ձեր կազմողը/թարգմանիչը զգուշացնելու ձեր օգտագործողին սխալ ծրագրերի և շարահյուսական սխալների մասին:

Ստեղծեք ծրագրավորման լեզու Քայլ 10
Ստեղծեք ծրագրավորման լեզու Քայլ 10

Քայլ 10. Օգտագործեք վերլուծիչի տվյալները `օբյեկտի ծածկագիրը կամ միջանկյալ ներկայացումը գրելու համար:

Թույլ տվեք, որ վերլուծիչը ստեղծի AST, այնուհետև ստեղծեք ձեր օբյեկտի կոդը AST- ից ՝ օգտագործելով երեք հասցեի ծածկագիրը կամ նրա մեծ եղբորը ՝ SSA- ն, այնուհետև ստեղծեք խորհրդանիշի աղյուսակ ՝ ձեր գործառույթները, գլոբալ փոփոխականները և այլն սահմանելու համար:

Բացի այդ, կախված ձեր լեզվից, կարող եք նաև ստեղծել ձեր դասերի վիրտուալ ցուցիչների աղյուսակներ կամ տեղեկատվական սեղաններ (արտացոլման կամ RTTI- ի աջակցման համար):

Ստեղծեք ծրագրավորման լեզու Քայլ 11
Ստեղծեք ծրագրավորման լեզու Քայլ 11

Քայլ 11. Գրեք կատարող կամ կոդ գեներատոր, որը կկապի ամեն ինչ միասին:

Ստեղծեք ծրագրավորման լեզու Քայլ 12
Ստեղծեք ծրագրավորման լեզու Քայլ 12

Քայլ 12. Գրեք բազմաթիվ թեստային ծրագրեր `լեզուն ստուգելու համար:

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

Ստեղծեք ծրագրավորման լեզու Քայլ 13
Ստեղծեք ծրագրավորման լեզու Քայլ 13

Քայլ 13. Մտածեք, թե ինչպես է օգտվողը կարգաբերելու սեփական ծրագրերը:

Ստեղծեք ծրագրավորման լեզու Քայլ 14
Ստեղծեք ծրագրավորման լեզու Քայլ 14

Քայլ 14. Եթե ձեր լեզուն օգտագործում է ստանդարտ գրադարան, ապա կցանկանաք գրել այն:

Անհրաժեշտության դեպքում աղբահավաքի կամ գործարկման այլ հնարավորությունների հետ միասին:

Մասնավորապես, եթե կոմպիլյատոր եք գրում, ձեզ հարկավոր կլինի այն ծածկագիրը, որը գործարկելու է օպերացիոն համակարգը `օգտվողի ծածկագիրը գործարկելու համար (օրինակ ՝ բոլոր գլոբալ փոփոխականների բաշխումը):

Ստեղծեք ծրագրավորման լեզու Քայլ 15
Ստեղծեք ծրագրավորման լեզու Քայլ 15

Քայլ 15. Հրապարակեք ձեր լեզուն, ինչպես նաև դրա բնութագիրը և որոշ օրինակներ, թե ինչ կարող եք անել դրանում:

Մի մոռացեք փաստաթղթավորել, թե ինչպես կարող եք ինտեգրվել գոյություն ունեցող գրադարաններին, լեզուներին և ինչպես օգտագործել գործարկման գործառույթները և/կամ ստանդարտ գրադարանը:

Տեսանյութ - Այս ծառայությունից օգտվելով ՝ որոշ տեղեկություններ կարող են կիսվել YouTube- ի հետ:

Խորհուրդներ

  • Սկսեք նախագծել ձեր լեզուն և մի գրեք որևէ ծածկագիր, մինչև չբավարարվեք և չպատասխանեք ձեր դիզայնի հետ կապված բոլոր հարցերին կամ խնդիրներին, քանի որ ավելի հեշտ է փոխել դիզայնը ավելի վաղ, քան ավելի ուշ:
  • Իմացեք ձեր թիրախային հարթակը (օպերացիոն համակարգ և գրադարաններ) ձեր կազմողի/թարգմանչի համար, ի վերջո, դուք պատրաստվում եք օգտագործել այն և շահարկել այն:

Գուշացումներ

  • Մտածեք, արդյոք ձեզ իսկապես նոր լեզու է պետք, և այն, ինչ ձեր լեզուն ունի նորերից, որ չունեն այլ լեզուները (Դա կարող է լինել հատկությունների համադրություն կամ մեկ առանձնահատկություն):
  • Լեզուներ գրելը դժվար է, եթե չգիտես, թե ինչով ես զբաղված: Դա նույնպես շատ պրակտիկա է պահանջում:
  • Պատրաստվեք որոշ ժամանակ անցկացնել լեզվի ձևավորման վրա, քանի որ կազմողին գրելուց և նախագծման կետից անցնելուց հետո հնարավորություն չեք ունենա փոխելու ձեր լեզուն:
  • Մի փորձեք ձեր հատկանիշները հիմնավորել մի քանի լեզուների միության վրա, ինչպես ասել, որ ձեր լեզուն կլինի X լեզվի, Y լեզվի և Z լեզվի միություն: Պատմությունը մեզ ցույց տվեց, որ նման ձևով ստեղծված լեզուները երբեք հաջողություն չեն գտնի, կամ բոլորը ծրագրավորելու էին PL/1 -ը C- ի վրա հիմնված բանի փոխարեն:

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