Paano Lumikha ng Wika sa Programming: 15 Hakbang (na may Mga Larawan)

Talaan ng mga Nilalaman:

Paano Lumikha ng Wika sa Programming: 15 Hakbang (na may Mga Larawan)
Paano Lumikha ng Wika sa Programming: 15 Hakbang (na may Mga Larawan)

Video: Paano Lumikha ng Wika sa Programming: 15 Hakbang (na may Mga Larawan)

Video: Paano Lumikha ng Wika sa Programming: 15 Hakbang (na may Mga Larawan)
Video: How to Speed Up Windows 10 Performance (Tagalog) Paano Pabilisin ang mabagal na PC Settings Solution 2024, Abril
Anonim

Maraming tao ang nahihirapan o nabigo sa mga wikang nag-i-program na ginagamit nila araw-araw. Ang ilan ay nais na mapangasiwaan ang mga bagay nang higit pa sa abstractly, habang ang iba ay ayaw sa pagpapatupad ng mga tampok na nais nilang "pamantayan". Kung ikaw ay isang propesyonal sa IT o isang libangan lamang, maraming beses na maaari mong makita ang iyong sarili na nais na lumikha ng isang bagong wika sa programa.

Mga hakbang

Lumikha ng isang Wika sa Programming Hakbang 1
Lumikha ng isang Wika sa Programming Hakbang 1

Hakbang 1. Maging pamilyar sa teknolohiya

Hindi ka makakalikha ng isang wika ng programa kung hindi mo alam kung paano gamitin ang isang computer.

Lumikha ng isang Wika sa Programming Hakbang 2
Lumikha ng isang Wika sa Programming Hakbang 2

Hakbang 2. Maging pamilyar sa terminolohiya

Ang mga manunulat ng compiler ay madalas na gumagamit ng hindi pamilyar na terminolohiya. Basahin ang tungkol sa mga tagatala bago magpatuloy. Siguraduhing malaman ang lahat ng kailangan mong malaman.

Lumikha ng isang Wika sa Programming Hakbang 3
Lumikha ng isang Wika sa Programming Hakbang 3

Hakbang 3. Magpasya kung anong problema ang nalulutas ng iyong wika

Tinutugunan ba nito ang isang problema na tukoy sa domain, o isang wikang pangkalahatang layunin?

Lumikha ng isang Wika sa Programming Hakbang 4
Lumikha ng isang Wika sa Programming Hakbang 4

Hakbang 4. Isipin ang tungkol sa mga semantika ng iyong wika at ang mga konsepto nito

  • Papayagan mo ba ang direktang pag-access ng pointer o hindi?
  • Ano ang mga uri ng data ng iyong wika?
  • Ito ba ay isang static o pabago-bagong wika?
  • Ano ang iyong modelo ng memorya? Gumagamit ka ba ng isang basurero o manwal ng pamamahala ng memorya? (Kung gumagamit ka ng isang basurero, maghanda na magsulat ng isa o iakma ang isang mayroon na sa iyong wika.)
  • Paano hahawakin ang pagsabay? Gumagamit ka ba ng isang simpleng modelo ng pag-thread / locking o isang bagay na mas kumplikado tulad ni Linda o ng modelo ng aktor? (Dahil sa ngayon ang mga computer ay may maraming mga core.)
  • Mayroon bang mga paunang pag-andar na naka-embed sa wika o lahat ay magmumula sa isang silid-aklatan?
  • Ano ang tularan o tularan ng iyong wika? Magagamit? Nakatuon sa object? Prototype (tulad ng JavaScript)? Nakatuon sa aspeto? Oriented ang template? O isang bagay na ganap na bago?
  • Paano makikipag-interface ang iyong wika sa mayroon nang mga aklatan at wika (higit sa lahat C)? Mahalaga ang puntong ito kung bumubuo ka ng isang wikang tukoy sa domain.
  • Sa wakas, ang ilan sa mga sagot sa mga katanungang ito ay sasagutin ng pangalawang hakbang at tutulong sa iyo na sagutin ang susunod na hakbang.
Lumikha ng isang Wika sa Programming Hakbang 5
Lumikha ng isang Wika sa Programming Hakbang 5

Hakbang 5. Mag-isip ng ilang mga tiyak na gawain na nais ng isang tao na maisagawa sa iyong wika

Halimbawa, 'baka gusto nilang idirekta ang isang robot upang sundin ang isang linya' o 'baka gusto nilang lumikha ng mga portable na programa ng desktop dito' o 'baka gusto nilang lumikha ng mga web application na kasama nito'.

Lumikha ng isang Wika sa Programming Hakbang 6
Lumikha ng isang Wika sa Programming Hakbang 6

Hakbang 6. Eksperimento sa mga ideya ng syntax (ang teksto ng wika) para sa mga halimbawa sa itaas

Mag-ingat na panatilihin ang iyong wika sa kategorya ng wika na walang konteksto o isang bagay sa loob nito. Ang iyong generator ng parser at pahalagahan mo ito sa paglaon

Lumikha ng isang Wika sa Programming Hakbang 7
Lumikha ng isang Wika sa Programming Hakbang 7

Hakbang 7. Sumulat ng isang pormal na balarila para sa syntax

Lumikha ng isang Wika sa Programming Hakbang 8
Lumikha ng isang Wika sa Programming Hakbang 8

Hakbang 8. Magpasya kung ang wika ay mabibigyang kahulugan o maiipon

Nangangahulugan na sa naisalin na mundo ang iyong gumagamit ay karaniwang mai-e-edit ang iyong programa sa isang editor, at direktang tatakbo ito sa interpreter; habang nasa pinagsamang mundo, i-e-edit ng iyong gumagamit ang iyong programa, ipo-compile ito, i-save ang nagresultang maipapatupad sa isang lugar at patakbuhin ito.

Lumikha ng isang Wika sa Programming Hakbang 9
Lumikha ng isang Wika sa Programming Hakbang 9

Hakbang 9. Isulat ang front end scanner at parser o maghanap ng isang tool na makakatulong sa iyo dito

Gayundin, isipin kung paano babalaan ng iyong tagatala / tagasalin ang iyong gumagamit tungkol sa mga maling programa at mga error sa syntax

Lumikha ng isang Wika sa Programming Hakbang 10
Lumikha ng isang Wika sa Programming Hakbang 10

Hakbang 10. Gamitin ang impormasyong parser upang isulat ang object code o isang intermediate na representasyon

Gawin ang parser na lumikha ng isang AST, pagkatapos ay likhain ang iyong object code mula sa AST gamit ang tatlong address code o ang malaking kapatid na SSA, pagkatapos ay lumikha ng isang talahanayan ng simbolo upang tukuyin ang iyong mga pag-andar, global variable, atbp.

Gayundin, depende sa iyong wika, baka gusto mo ring lumikha ng mga virtual na talahanayan ng pointer o mga talahanayan ng impormasyon para sa iyong mga klase (upang suportahan ang pagsasalamin o RTTI)

Lumikha ng isang Wika sa Programming Hakbang 11
Lumikha ng isang Wika sa Programming Hakbang 11

Hakbang 11. Isulat ang tagapagpatupad o code generator na magbubuklod sa lahat ng bagay

Lumikha ng isang Wika sa Programming Hakbang 12
Lumikha ng isang Wika sa Programming Hakbang 12

Hakbang 12. Sumulat ng maraming mga programa sa pagsubok upang masubukan ang wika

Nais mong lumikha ng mga programa na binibigyang diin ang mga pasanin ng iyong pormal na balarila upang makita na tinatanggap ng iyong tagabuo ang lahat na nasa loob ng iyong kahulugan at tinatanggihan ang lahat na nasa labas nito

Lumikha ng isang Wika sa Programming Hakbang 13
Lumikha ng isang Wika sa Programming Hakbang 13

Hakbang 13. Isaalang-alang kung paano i-debug ng gumagamit ang kanilang sariling mga programa

Lumikha ng isang Wika sa Programming Hakbang 14
Lumikha ng isang Wika sa Programming Hakbang 14

Hakbang 14. Kung ang iyong wika ay gumagamit ng isang pamantayang aklatan, gugustuhin mong isulat ito

Kasama ang isang basurero o iba pang mga tampok sa runtime kung kailangan mo ito.

Partikular, kung sumulat ka ng isang tagatala, kakailanganin mo ang code na isasagawa ng operating system upang masimulan ang pagpapatakbo ng code ng gumagamit (halimbawa, paglalaan ng lahat ng mga variable sa mundo)

Lumikha ng isang Wika sa Programming Hakbang 15
Lumikha ng isang Wika sa Programming Hakbang 15

Hakbang 15. I-publish ang iyong wika, kasama ang detalye para dito at ilang mga halimbawa ng kung ano ang maaari mong gawin dito

Huwag kalimutang idokumento kung paano ka makakasama sa mga umiiral na mga aklatan, wika at kung paano gamitin ang mga tampok na runtime at / o karaniwang pamantayan

Video - Sa pamamagitan ng paggamit ng serbisyong ito, maaaring ibahagi ang ilang impormasyon sa YouTube

Mga Tip

  • Magsimula sa pamamagitan ng pagdidisenyo ng iyong wika at huwag magsulat ng anumang code, hanggang sa nasiyahan ka at nasagot mo ang lahat (o karamihan) ng mga katanungan o problema na nauugnay sa iyong disenyo dahil mas madaling baguhin ang disenyo nang mas maaga kaysa sa paglaon.
  • Alamin ang iyong target na platform (operating system at aklatan) para sa iyong tagatala / interpreter, kung tutuusin, gagamitin mo ito at gagamitin ito.

Mga babala

  • Mag-isip kung talagang kailangan mo ng isang bagong wika, at kung ano ang bago sa iyong wika na wala sa ibang mga wika (Maaaring ito ay isang kombinasyon ng mga tampok o isang solong tampok).
  • Ang pagsusulat ng mga wika ay mahirap kung hindi mo alam kung ano ang iyong ginagawa. Kailangan ng maraming pagsasanay, masyadong.
  • Maghanda na gumugol ng ilang oras sa disenyo ng wika, dahil hindi ka magkakaroon ng pagkakataong baguhin ang iyong wika sa sandaling naisulat mo ang tagatala at lumampas sa punto ng disenyo.
  • Huwag subukang ibase ang iyong mga tampok sa isang unyon ng maraming mga wika, tulad ng pagsasabi na ang iyong wika ay magiging isang unyon ng wika X, wika Y at wika Z. Ipinakita sa atin ng kasaysayan na ang mga wikang nilikha sa paraang hindi makakahanap ng tagumpay, o lahat ay magiging programa ng PL / 1 sa halip na isang bagay batay sa C.

Inirerekumendang: