Ohjelmointikielen luominen: 15 vaihetta (kuvilla)

Sisällysluettelo:

Ohjelmointikielen luominen: 15 vaihetta (kuvilla)
Ohjelmointikielen luominen: 15 vaihetta (kuvilla)

Video: Ohjelmointikielen luominen: 15 vaihetta (kuvilla)

Video: Ohjelmointikielen luominen: 15 vaihetta (kuvilla)
Video: Windows 10/11 and Windows Servers: Architecture: Unlock troubleshooting secrets 2024, Saattaa
Anonim

Monilla ihmisillä on vaikeuksia tai turhautumista ohjelmointikieliin, joita he käyttävät päivittäin. Jotkut haluavat asioiden hoidettavan abstraktimmin, kun taas toiset eivät pidä sellaisten ominaisuuksien toteuttamisesta, jotka toivoisivat olevan "vakio". Olitpa IT -ammattilainen tai vain harrastaja, monesti saatat löytää itsesi haluavan luoda uuden ohjelmointikielen.

Askeleet

Ohjelmointikielen luominen Vaihe 1
Ohjelmointikielen luominen Vaihe 1

Vaihe 1. Tutustu tekniikkaan

Et voi luoda ohjelmointikieltä, jos et osaa käyttää tietokonetta.

Luo ohjelmointikieli Vaihe 2
Luo ohjelmointikieli Vaihe 2

Vaihe 2. Tutustu terminologiaan

Kääntäjät käyttävät usein tuntematonta terminologiaa. Lue kääntäjät ennen kuin jatkat. Muista tietää kaikki mitä sinun tarvitsee tietää.

Luo ohjelmointikieli Vaihe 3
Luo ohjelmointikieli Vaihe 3

Vaihe 3. Päätä, mitä ongelmaa kielesi ratkaisee

Korjataanko se verkkotunnuskohtaiseen ongelmaan vai onko se yleiskielinen?

Luo ohjelmointikieli Vaihe 4
Luo ohjelmointikieli Vaihe 4

Vaihe 4. Mieti kielesi semantiikkaa ja sen käsitteitä

  • Aiotko sallia suoran osoittimen käytön vai et?
  • Mitkä ovat kielesi tietotyypit?
  • Onko se staattinen vai dynaaminen kieli?
  • Mikä on muistimallisi? Aiotko käyttää roskakoria vai manuaalista muistinhallintaa? (Jos käytät roskakoria, valmistaudu kirjoittamaan tai mukauta olemassa oleva kieliisi.)
  • Miten aiot käsitellä samanaikaisuutta? Aiotko käyttää yksinkertaista kierteitys-/lukitusmallia tai jotain monimutkaisempaa, kuten Linda tai näyttelijämalli? (Koska nykyään tietokoneissa on useita ytimiä.)
  • Onko kieleen upotettu alkeellisia toimintoja vai tulevatko kaikki kirjastosta?
  • Mikä on kielesi paradigma tai paradigmat? Toiminnallinen? Objektiivinen? Prototyyppi (kuten JavaScript)? Näkökulma-suuntautunut? Mallipohjainen? Vai jotain aivan uutta?
  • Miten kielesi liitetään olemassa oleviin kirjastoihin ja kieliin (lähinnä C)? Tämä kohta on tärkeä, jos rakennat verkkotunnuskohtaista kieltä.
  • Lopuksi joihinkin vastauksiin näihin kysymyksiin vastataan toisessa vaiheessa ja ne auttavat sinua vastaamaan seuraavaan vaiheeseen.
Luo ohjelmointikieli Vaihe 5
Luo ohjelmointikieli Vaihe 5

Vaihe 5. Mieti tiettyjä tehtäviä, jotka joku haluaisi pystyä suorittamaan kielelläsi

Esimerkiksi "he saattavat haluta ohjata robotin seuraamaan linjaa" tai "he voivat haluta luoda siihen suhteellisen kannettavia työpöytäohjelmia" tai "he saattavat haluta luoda verkkosovelluksia sen avulla".

Luo ohjelmointikieli Vaihe 6
Luo ohjelmointikieli Vaihe 6

Vaihe 6. Kokeile syntaksi -ideoita (kielen teksti) yllä olevissa esimerkeissä

Ole varovainen, että pidät kielesi kontekstittomassa kielikategoriassa tai jotain sen sisällä. Analysaattorisi ja arvostat sitä myöhemmin

Luo ohjelmointikieli Vaihe 7
Luo ohjelmointikieli Vaihe 7

Vaihe 7. Kirjoita syntaksille muodollinen kielioppi

Luo ohjelmointikieli Vaihe 8
Luo ohjelmointikieli Vaihe 8

Vaihe 8. Päätä, tulkitaanko vai käännetäänkö kieli

Tämä tarkoittaa sitä, että tulkitussa maailmassa käyttäjä yleensä muokkaa ohjelmaa editorissa ja suorittaa sen suoraan tulkilla; käännetyssä maailmassa käyttäjä muokkaa ohjelmaa, kääntää sen, tallentaa tuloksena olevan suoritustiedoston jonnekin ja suorittaa sen.

Luo ohjelmointikieli Vaihe 9
Luo ohjelmointikieli Vaihe 9

Vaihe 9. Kirjoita käyttöliittymän skanneri ja jäsennin tai etsi työkalu, joka auttaa sinua tässä

Mieti myös, miten kääntäjä/tulkki varoittaa käyttäjää virheellisistä ohjelmista ja syntaksivirheistä

Luo ohjelmointikieli Vaihe 10
Luo ohjelmointikieli Vaihe 10

Vaihe 10. Kirjoita jäsennystiedoilla objektikoodi tai välikuva

Pyydä jäsennintä luomaan AST, luo sitten objektikoodisi AST: stä käyttämällä kolmea osoitekoodia tai sen isoveli SSA: ta ja luo sitten symbolitaulukko määritelläksesi toiminnot, globaalimuuttujat jne.

Kielestäsi riippuen voit myös haluta luoda virtuaalisia osoitintaulukoita tai tietotaulukoita luokillesi (pohdinnan tai RTTI: n tukemiseksi)

Luo ohjelmointikieli Vaihe 11
Luo ohjelmointikieli Vaihe 11

Vaihe 11. Kirjoita suorittaja tai koodigeneraattori, joka sitoo kaiken yhteen

Luo ohjelmointikieli Vaihe 12
Luo ohjelmointikieli Vaihe 12

Vaihe 12. Kirjoita monia testiohjelmia kielen testaamiseksi

Haluat luoda ohjelmia, jotka korostavat muodollisen kieliopin taakkaa nähdäksesi, että kääntäjä hyväksyy kaiken määritelmäsi sisällä ja hylkää kaiken sen ulkopuolella

Luo ohjelmointikieli Vaihe 13
Luo ohjelmointikieli Vaihe 13

Vaihe 13. Mieti, miten käyttäjä korjaa omia ohjelmiaan

Luo ohjelmointikieli Vaihe 14
Luo ohjelmointikieli Vaihe 14

Vaihe 14. Jos kielesi käyttää vakiokirjastoa, haluat kirjoittaa sen

Yhdessä roskienkeräimen tai muiden käyttöaikaominaisuuksien kanssa, jos tarvitset sitä.

Erityisesti, jos kirjoitat kääntäjää, tarvitset koodin, jonka käyttöjärjestelmä suorittaa, jotta voit aloittaa käyttäjäkoodin suorittamisen (esimerkiksi allokoimalla kaikki globaalimuuttujat)

Luo ohjelmointikieli Vaihe 15
Luo ohjelmointikieli Vaihe 15

Vaihe 15. Julkaise kielesi, sen spesifikaatio ja muutamia esimerkkejä siitä, mitä voit tehdä sillä

Älä unohda dokumentoida, miten voit integroida olemassa oleviin kirjastoihin, kieliin ja miten voit käyttää ajonaikaisia ominaisuuksia ja/tai vakiokirjastoa

Video - Käyttämällä tätä palvelua joitakin tietoja voidaan jakaa YouTuben kanssa

Vinkkejä

  • Aloita suunnittelemalla kielesi äläkä kirjoita mitään koodia, ennen kuin olet tyytyväinen ja olet vastannut kaikkiin (tai useimpiin) suunnitteluun liittyviin kysymyksiin tai ongelmiin, koska mallin muuttaminen on helpompaa aikaisemmin kuin myöhemmin.
  • Tunne kääntäjäsi/tulkkisi kohdealusta (käyttöjärjestelmä ja kirjastot), loppujen lopuksi aiot käyttää sitä ja manipuloida sitä.

Varoitukset

  • Mieti, tarvitsetko todella uutta kieltä ja mitä uutta kielelläsi on, mitä muilla kielillä ei ole (se voi olla ominaisuuksien yhdistelmä tai yksi ominaisuus).
  • Kielien kirjoittaminen on vaikeaa, jos et tiedä mitä olet tekemässä. Se vaatii myös paljon harjoittelua.
  • Valmistaudu viettämään aikaa kielisuunnittelussa, koska sinulla ei ole mahdollisuutta vaihtaa kieltäsi, kun olet kirjoittanut kääntäjän ja ohittanut suunnittelupisteen.
  • Älä yritä perustaa ominaisuuksiasi useiden kielten yhteenliittymään, kuten sanomaan, että kielesi on kielen X, kielen Y ja kielen Z liitto. Historia on osoittanut meille, että tällä tavalla luodut kielet eivät koskaan menesty, tai kaikki ohjelmoisivat PL/1 C: n perusteella.

Suositeltava: