Kaip sukurti programavimo kalbą: 15 žingsnių (su paveikslėliais)

Turinys:

Kaip sukurti programavimo kalbą: 15 žingsnių (su paveikslėliais)
Kaip sukurti programavimo kalbą: 15 žingsnių (su paveikslėliais)

Video: Kaip sukurti programavimo kalbą: 15 žingsnių (su paveikslėliais)

Video: Kaip sukurti programavimo kalbą: 15 žingsnių (su paveikslėliais)
Video: Clean your CPU heatsink and fans or fry your PC! #technology #tech #computer #gaming #shorts 2024, Gegužė
Anonim

Daugelis žmonių susiduria su sunkumais ar nusivylimais kasdien naudojamomis programavimo kalbomis. Vieni nori, kad dalykai būtų sprendžiami abstrakčiau, o kiti nemėgsta įgyvendinti funkcijų, kurių jie norėtų būti „standartiniai“. Nesvarbu, ar esate IT specialistas, ar tiesiog mėgėjas, daug kartų galite pajusti norą sukurti naują programavimo kalbą.

Žingsniai

Sukurkite programavimo kalbą 1 žingsnis
Sukurkite programavimo kalbą 1 žingsnis

Žingsnis 1. Susipažinkite su technologija

Negalite sukurti programavimo kalbos, jei nemokate naudotis kompiuteriu.

Sukurkite programavimo kalbą 2 veiksmas
Sukurkite programavimo kalbą 2 veiksmas

Žingsnis 2. Susipažinkite su terminologija

Kompiliatoriai dažnai naudoja nepažįstamą terminiją. Prieš tęsdami, perskaitykite kompiliatorius. Būtinai žinokite viską, ką reikia žinoti.

Sukurkite programavimo kalbą 3 žingsnis
Sukurkite programavimo kalbą 3 žingsnis

3 žingsnis. Nuspręskite, kokią problemą sprendžia jūsų kalba

Ar tai skirta konkrečiai sričiai būdingai problemai spręsti, ar tai bendros paskirties kalba?

Sukurkite programavimo kalbą 4 žingsnis
Sukurkite programavimo kalbą 4 žingsnis

4 žingsnis. Pagalvokite apie savo kalbos semantiką ir jos sąvokas

  • Ar leisite tiesioginę prieigą prie rodyklės, ar ne?
  • Kokie yra jūsų kalbos duomenų tipai?
  • Ar tai statiška, ar dinamiška kalba?
  • Koks jūsų atminties modelis? Ar ketinate naudoti šiukšlių surinkėją ar rankinį atminties valdymą? (Jei naudojate šiukšlių surinkėją, pasiruoškite jį parašyti arba pritaikykite esamą savo kalbai.)
  • Kaip ketinate elgtis lygiagrečiai? Ar ketinate naudoti paprastą sriegimo/užrakinimo modelį ar kažką sudėtingesnio, pavyzdžiui, Linda ar aktoriaus modelį? (Kadangi šiais laikais kompiuteriai turi kelis branduolius.)
  • Ar yra primityvių funkcijų, įterptų į kalbą, ar viskas ateis iš bibliotekos?
  • Kokia jūsų kalbos paradigma ar paradigmos? Funkcionalus? Orientuotas į objektą? Prototipas (kaip „JavaScript“)? Į aspektus orientuotas? Į šabloną orientuota? Arba kažkas visiškai naujo?
  • Kaip jūsų kalba siejasi su esamomis bibliotekomis ir kalbomis (daugiausia C)? Šis punktas yra svarbus, jei kuriate konkrečiai sričiai skirtą kalbą.
  • Galiausiai į kai kuriuos atsakymus į šiuos klausimus bus atsakyta per antrąjį žingsnį ir jie padės atsakyti į kitą žingsnį.
Sukurkite programavimo kalbą 5 žingsnis
Sukurkite programavimo kalbą 5 žingsnis

5 žingsnis. Pagalvokite apie konkrečias užduotis, kurias kažkas norėtų atlikti jūsų kalba

Pvz., „Jie gali norėti nukreipti robotą sekti liniją“arba „jie gali norėti sukurti gana nešiojamas darbalaukio programas“arba „jie gali norėti kurti žiniatinklio programas“.

Sukurkite programavimo kalbą 6 žingsnis
Sukurkite programavimo kalbą 6 žingsnis

Žingsnis 6. Eksperimentuokite su minėtų pavyzdžių sintaksės idėjomis (kalbos tekstu)

Būkite atsargūs ir laikykite savo kalbą be konteksto kalbos kategorijoje ar kitoje jos vietoje. Jūsų analizatorius ir vėliau tai įvertinsite

Sukurkite programavimo kalbą 7 žingsnis
Sukurkite programavimo kalbą 7 žingsnis

Žingsnis 7. Parašykite oficialią sintaksės gramatiką

Sukurkite programavimo kalbą 8 žingsnis
Sukurkite programavimo kalbą 8 žingsnis

Žingsnis 8. Nuspręskite, ar kalba bus interpretuojama, ar sudaroma

Tai reiškia, kad interpretuojamame pasaulyje jūsų vartotojas paprastai redaguoja jūsų programą redaktoriuje ir paleidžia ją tiesiogiai vertėjo žodžiu; būdamas sudarytame pasaulyje, jūsų vartotojas redaguos jūsų programą, ją sukompiliuos, išsaugos gautą vykdomąjį failą kažkur ir paleis.

Sukurkite programavimo kalbą 9 veiksmas
Sukurkite programavimo kalbą 9 veiksmas

Žingsnis 9. Parašykite priekinį skaitytuvą ir analizatorių arba raskite įrankį, kuris jums tai padėtų

Taip pat pagalvokite, kaip jūsų kompiliatorius/vertėjas įspės jūsų vartotoją apie klaidingas programas ir sintaksės klaidas

Sukurkite programavimo kalbą 10 žingsnis
Sukurkite programavimo kalbą 10 žingsnis

Žingsnis 10. Naudokite analizatoriaus informaciją, kad parašytumėte objekto kodą arba tarpinį vaizdą

Paprašykite analizatoriaus sukurti AST, tada sukurkite savo objekto kodą iš AST naudodami tris adreso kodus arba jo didįjį brolį SSA, tada sukurkite simbolių lentelę, kad apibrėžtumėte savo funkcijas, visuotinius kintamuosius ir kt.

Be to, priklausomai nuo jūsų kalbos, galbūt norėsite sukurti virtualias rodyklių lenteles arba informacines lenteles savo klasėms (kad būtų lengviau atspindėti ar RTTI)

Sukurkite programavimo kalbą 11 veiksmas
Sukurkite programavimo kalbą 11 veiksmas

Žingsnis 11. Parašykite vykdytoją arba kodų generatorių, kuris suriš viską

Sukurkite programavimo kalbą 12 žingsnis
Sukurkite programavimo kalbą 12 žingsnis

Žingsnis 12. Parašykite daug testų programų, kad patikrintumėte kalbą

Norite sukurti programas, pabrėžiančias jūsų formalios gramatikos naštą, kad pamatytumėte, jog kompiliatorius priima viską, kas yra jūsų apibrėžime, ir atmeta viską, kas yra už jos ribų

Sukurkite programavimo kalbą 13 žingsnis
Sukurkite programavimo kalbą 13 žingsnis

Žingsnis 13. Apsvarstykite, kaip vartotojas derins savo programas

Sukurkite programavimo kalbą 14 žingsnis
Sukurkite programavimo kalbą 14 žingsnis

Žingsnis 14. Jei jūsų kalba naudoja standartinę biblioteką, norėsite ją parašyti

Kartu su šiukšlių surinkėju ar kitomis veikimo laiko funkcijomis, jei to reikia.

Tiksliau, jei rašote kompiliatorių, jums reikės kodo, kurį vykdys operacinė sistema, kad pradėtumėte vykdyti vartotojo kodą (pavyzdžiui, paskirstyti visus pasaulinius kintamuosius)

Sukurkite programavimo kalbą 15 žingsnis
Sukurkite programavimo kalbą 15 žingsnis

Žingsnis 15. Paskelbkite savo kalbą kartu su jos specifikacija ir keliais pavyzdžiais, ką galite nuveikti

Nepamirškite dokumentuoti, kaip galite integruotis su esamomis bibliotekomis, kalbomis ir kaip naudotis vykdymo laiko funkcijomis ir (arba) standartine biblioteka

Vaizdo įrašas - naudojant šią paslaugą kai kuri informacija gali būti bendrinama su „YouTube“

Patarimai

  • Pradėkite kurdami savo kalbą ir nerašykite jokio kodo, kol nebūsite patenkinti ir neatsakysite į visus (ar daugumą) klausimų ar problemų, susijusių su jūsų dizainu, nes lengviau pakeisti dizainą anksčiau nei vėliau.
  • Žinokite savo kompiliatoriaus/vertėjo tikslinę platformą (operacinę sistemą ir bibliotekas), juk ketinate ja naudotis ir ja manipuliuoti.

Įspėjimai

  • Pagalvokite, ar jums tikrai reikia naujos kalbos ir ką naujo jūsų kalba turi, ko neturi kitos kalbos (tai gali būti funkcijų derinys arba viena ypatybė).
  • Rašyti kalbas yra sunku, jei nežinai, ką darai. Tai taip pat reikalauja daug praktikos.
  • Pasiruoškite praleisti šiek tiek laiko kurdami kalbas, nes parašę kompiliatorių ir perėję projektavimo tašką, neturėsite galimybės pakeisti savo kalbos.
  • Nebandykite savo bruožų pagrįsti kelių kalbų sąjunga, pvz., Sakyti, kad jūsų kalba bus X, Y ir Z kalbų sąjunga. Istorija parodė, kad taip sukurtos kalbos niekada nebus sėkmingos, arba visi programuotų PL/1, o ne kažką pagal C.

Rekomenduojamas: