Kako ustvariti programski jezik: 15 korakov (s slikami)

Kazalo:

Kako ustvariti programski jezik: 15 korakov (s slikami)
Kako ustvariti programski jezik: 15 korakov (s slikami)

Video: Kako ustvariti programski jezik: 15 korakov (s slikami)

Video: Kako ustvariti programski jezik: 15 korakov (s slikami)
Video: НОЧЬЮ САМО ЗЛО ПРИХОДИТ В ЭТОТ ДОМ / AT NIGHT, EVIL ITSELF COMES TO THIS HOUSE 2024, Maj
Anonim

Mnogi ljudje imajo težave ali frustracije s programskimi jeziki, ki jih uporabljajo vsak dan. Nekateri želijo, da se stvari obravnavajo bolj abstraktno, drugi pa ne marajo izvedbenih funkcij, za katere želijo, da so "standardne". Ne glede na to, ali ste IT -strokovnjak ali samo ljubitelji, se vam bo morda velikokrat zgodilo, da želite ustvariti nov programski jezik.

Koraki

Ustvarjanje jezika za programiranje 1. korak
Ustvarjanje jezika za programiranje 1. korak

Korak 1. Spoznajte tehnologijo

Programskega jezika ne morete ustvariti, če ne znate uporabljati računalnika.

Ustvarite programski jezik 2. korak
Ustvarite programski jezik 2. korak

Korak 2. Spoznajte terminologijo

Pisci prevajalcev pogosto uporabljajo neznano terminologijo. Preden nadaljujete, preberite prevajalnike. Ne pozabite vedeti vsega, kar morate vedeti.

Ustvarite jezik za programiranje 3. korak
Ustvarite jezik za programiranje 3. korak

Korak 3. Odločite se, kateri problem rešuje vaš jezik

Ali obravnava problem, povezan s domeno, ali je jezik splošnega namena?

Ustvarite jezik za programiranje 4. korak
Ustvarite jezik za programiranje 4. korak

Korak 4. Pomislite na semantiko svojega jezika in njegove pojme

  • Ali boste dovolili neposreden dostop s kazalcem ali ne?
  • Kakšne so podatkovne vrste vašega jezika?
  • Je to statičen ali dinamičen jezik?
  • Kakšen je vaš model pomnilnika? Ali boste uporabili zbiralnik smeti ali ročno upravljanje pomnilnika? (Če uporabljate zbiralnik smeti, se pripravite, da ga napišete ali obstoječega prilagodite svojemu jeziku.)
  • Kako boste ravnali s sočasnostjo? Ali boste uporabili preprost model navojev/zaklepanja ali kaj bolj zapletenega, kot sta Linda ali model igralca? (Od danes imajo računalniki več jeder.)
  • Ali so v jeziku vgrajene primitivne funkcije ali bo vse prišlo iz knjižnice?
  • Kaj je paradigma ali paradigme vašega jezika? Delujoč? Objektno usmerjen? Prototip (na primer JavaScript)? Aspekt? Predloga usmerjena? Ali pa kaj povsem novega?
  • Kako se bo vaš jezik povezal z obstoječimi knjižnicami in jeziki (predvsem C)? Ta točka je pomembna, če gradite jezik, specifičen za domeno.
  • Nazadnje bo na nekatere odgovore na ta vprašanja odgovoril drugi korak in vam bo pomagal odgovoriti na naslednji korak.
Ustvarite programski jezik Korak 5
Ustvarite programski jezik Korak 5

5. korak. Pomislite na nekaj posebnih nalog, ki bi jih nekdo želel opravljati z vašim jezikom

Na primer, "morda bodo želeli usmeriti robota, da sledi liniji" ali "bodo morda želeli v njem ustvariti sorazmerno prenosljive namizne programe" ali "bodo morda želeli z njim ustvariti spletne aplikacije".

Ustvarite programski jezik Korak 6
Ustvarite programski jezik Korak 6

Korak 6. Eksperimentirajte s sintaksnimi zamislimi (besedilom jezika) za zgornje primere

Bodite previdni, da vaš jezik ostane v kontekstu prosti kategoriji jezikov ali v njej. Vaš generator razčlenjevalnika in pozneje ga boste cenili

Ustvarjanje programskega jezika Korak 7
Ustvarjanje programskega jezika Korak 7

Korak 7. Napišite uradno slovnico za skladnjo

Ustvarite programski jezik 8. korak
Ustvarite programski jezik 8. korak

Korak 8. Odločite se, ali bo jezik interpretiran ali sestavljen

To pomeni, da bo vaš uporabnik v interpretiranem svetu običajno uredil vaš program v urejevalniku in ga zagnal neposredno na tolmaču; medtem ko bo v prevedenem svetu vaš uporabnik uredil vaš program, ga prevedel, nastalo izvedljivo datoteko shranil nekam in jo zagnal.

Ustvarjanje programskega jezika Korak 9
Ustvarjanje programskega jezika Korak 9

Korak 9. Napišite sprednji bralnik in razčlenjevalnik ali poiščite orodje, ki vam bo pri tem pomagalo

Pomislite tudi, kako bo vaš prevajalnik/tolmač uporabnika opozoril na napačne programe in sintaktične napake

Ustvarite programski jezik Korak 10
Ustvarite programski jezik Korak 10

Korak 10. Uporabite podatke razčlenjevalnika, da napišete kodo objekta ali vmesni prikaz

Naj razčlenjevalnik ustvari AST, nato pa ustvari kodo objekta iz AST z uporabo tri naslovne kode ali njenega velikega brata SSA, nato pa ustvari tabelo simbolov, da opredeli svoje funkcije, globalne spremenljivke itd.

Odvisno od jezika lahko ustvarite tudi tabele navideznih kazalcev ali tabele informacij za svoje razrede (za podporo refleksiji ali RTTI)

Ustvarjanje programskega jezika Korak 11
Ustvarjanje programskega jezika Korak 11

Korak 11. Napišite izvajalca ali generator kode, ki bo vse povezal skupaj

Ustvarite programski jezik Korak 12
Ustvarite programski jezik Korak 12

Korak 12. Napišite veliko testnih programov za preizkus jezika

Ustvariti želite programe, ki poudarjajo breme vaše formalne slovnice, da vidite, da vaš prevajalnik sprejema vse, kar je v vaši definiciji, in zavrača vse, kar je zunaj nje

Ustvarite programski jezik 13. korak
Ustvarite programski jezik 13. korak

Korak 13. Razmislite, kako bo uporabnik odpravljal napake v svojih programih

Ustvarite programski jezik Korak 14
Ustvarite programski jezik Korak 14

Korak 14. Če vaš jezik uporablja standardno knjižnico, jo boste želeli napisati

Skupaj z zbiralnikom smeti ali drugimi funkcijami izvajanja, če jih potrebujete.

Natančneje, če pišete prevajalnik, boste za začetek izvajanja uporabniške kode potrebovali kodo, ki jo bo operacijski sistem izvedel (na primer dodelitev vseh globalnih spremenljivk)

Ustvarjanje programskega jezika Korak 15
Ustvarjanje programskega jezika Korak 15

Korak 15. Objavite svoj jezik skupaj s specifikacijami zanj in nekaj primerov, kaj lahko v njem počnete

Ne pozabite dokumentirati, kako se lahko integrirate z obstoječimi knjižnicami, jeziki in kako uporabljate funkcije za izvajanje in/ali standardno knjižnico

Video - z uporabo te storitve se lahko nekateri podatki delijo z YouTubom

Nasveti

  • Začnite z oblikovanjem svojega jezika in ne pišite kode, dokler niste zadovoljni in ne odgovorite na vsa (ali večino) vprašanj ali težav, povezanih z vašim dizajnom, saj je oblikovanje lažje spremeniti prej kot kasneje.
  • Spoznajte svojo ciljno platformo (operacijski sistem in knjižnice) za prevajalnika/interpreterja, navsezadnje jo boste uporabljali in z njo manipulirali.

Opozorila

  • Pomislite, ali resnično potrebujete nov jezik in kaj novega ima vaš jezik, česar drugi jeziki nimajo (lahko je kombinacija funkcij ali ena sama funkcija).
  • Pisanje jezikov je težko, če ne veste, kaj počnete. Potrebno je tudi veliko vaje.
  • Pripravite se na nekaj časa pri oblikovanju jezikov, saj ne boste imeli možnosti spremeniti jezika, ko boste napisali prevajalnik in mimo točke oblikovanja.
  • Ne poskušajte zasnovati svojih lastnosti v zvezi več jezikov, na primer reči, da bo vaš jezik združitev jezika X, jezika Y in jezika Z. Zgodovina nam je pokazala, da tako ustvarjeni jeziki ne bodo nikoli uspeli, ali pa bi vsi programirali PL/1 namesto nečesa, kar temelji na C.

Priporočena: