Ako vytvoriť programovací jazyk?

Ak chcete vytvoriť programovací jazyk
Ak chcete vytvoriť programovací jazyk, potrebujete ďalší programovací jazyk.

Mnoho ľudí má problémy alebo sklamanie z programovacích jazykov, ktoré používajú každý deň. Niektorí chcú, aby sa veci riešili abstraktnejšie, zatiaľ čo iným sa nepáčia implementačné funkcie, o ktorých si myslia, že sú „štandardné“. Či už ste IT profesionál alebo len fanda, mnohokrát sa vám môže stať, že budete chcieť vytvoriť nový programovací jazyk.

Kroky

  1. 1
    Zoznámte sa s technológiou. Programovací jazyk nemôžete vytvoriť, ak neviete, ako používať počítač.
  2. 2
    Zoznámte sa s terminológiou. Autori kompilátorov často používajú neznámu terminológiu. Než budete pokračovať, prečítajte si o kompilátoroch. Uistite sa, že viete všetko, čo potrebujete vedieť.
  3. 3
    Rozhodnite sa, aký problém váš jazyk rieši. Rieši problém konkrétnej domény alebo je to jazyk na všeobecné použitie?
  4. 4
    Zamyslite sa nad sémantikou svojho jazyka a jeho pojmami.
    • Chystáte sa povoliť priamy prístup na ukazovateľ alebo nie?
    • Aké sú dátové typy vo vašom jazyku?
    • Je to statický alebo dynamický jazyk?
    • Aký je váš model pamäte? Budete používať smetiar alebo manuálnu správu pamäte? (Ak používate smetiar, pripravte sa na jeho napísanie alebo si už existujúci prispôsobte svojmu jazyku.)
    • Ako budete zvládať súbežnosť? Budete používať jednoduchý závitový/uzamykací model alebo niečo zložitejšie ako Linda alebo herecký model? (Pretože počítače majú v dnešnej dobe viac jadier.)
    • Sú v jazyku zabudované primitívne funkcie alebo bude všetko pochádzať z knižnice?
    • Aká je paradigma alebo paradigmy vášho jazyka? Funkčné? Objektovo orientovaný? Prototyp (ako JavaScript)? Aspektovo orientovaný? Orientované na šablónu? Alebo niečo úplne nové?
    • Ako bude váš jazyk komunikovať s existujúcimi knižnicami a jazykmi (hlavne C)? Tento bod je dôležitý, ak vytvárate jazyk špecifický pre doménu.
    • Nakoniec na niektoré odpovede na tieto otázky odpovie druhý krok a pomôžu vám odpovedať na ďalší krok.
  5. 5
    Zamyslite sa nad niektorými konkrétnymi úlohami, ktoré by niekto chcel byť schopný vykonávať s vašim jazykom. Napríklad „môžu chcieť nasmerovať robota na riadok“ alebo „môžu v ňom vytvoriť relatívne prenosné desktopové programy“ alebo „môžu s ním chcieť vytvárať webové aplikácie“.
  6. 6
    Experimentujte s myšlienkami syntaxe (text jazyka) pre vyššie uvedené príklady.
    • Dávajte si pozor, aby bol váš jazyk v kategórii bezkontextových jazykov alebo v nej obsiahnuté. Váš generátor analyzátora a neskôr to oceníte.
  7. 7
    Napíšte syntax gramatiky.
  8. 8
    Rozhodnite, či bude jazyk interpretovaný alebo kompilovaný. To znamená, že v interpretovanom svete váš užívateľ spravidla upraví váš program v editore a spustí ho priamo na tlmočníku; zatiaľ čo v kompilačnom svete váš užívateľ váš program upraví, skomplikuje, výsledný spustiteľný súbor niekde uloží a spustí.
  9. 9
    Napíšte skener a analyzátor front -endu alebo nájdite nástroj, ktorý vám s tým pomôže.
    • Zamyslite sa tiež nad tým, ako váš prekladač/tlmočník upozorní vášho používateľa na chybné programy a chyby syntaxe.
  10. 10
    Informácie z analyzátora použite na zapísanie kódu objektu alebo medziproduktu. Nechajte analyzátor vytvoriť AST, potom vytvorte svoj objektový kód z AST pomocou kódu troch adries alebo jeho veľkého brata SSA, potom vytvorte tabuľku symbolov na definovanie vašich funkcií, globálnych premenných atď.
    • V závislosti od vášho jazyka môžete tiež vytvoriť tabuľky virtuálnych ukazovateľov alebo informačné tabuľky pre svoje triedy (na podporu reflexie alebo RTTI).
  11. 11
    Napíšte exekútor alebo generátor kódu, ktorý všetko spojí.
  12. 12
    Napíšte mnoho testovacích programov na testovanie jazyka.
    • Chcete vytvárať programy, ktoré zdôrazňujú záťaž formálnej gramatiky, aby ste videli, že váš kompilátor prijíma všetko, čo je vo vašej definícii, a odmieta všetko, čo je mimo nej.
  13. 13
    Zvážte, ako bude používateľ ladiť svoje vlastné programy.
  14. 14
    Ak váš jazyk používa štandardnú knižnicu, budete ho chcieť napísať. Spolu s odpadkom alebo inými funkciami za behu, ak to potrebujete.
    • Konkrétne, ak píšete kompilátor, budete potrebovať kód, ktorý operačný systém spustí, aby ste mohli spustiť kód používateľa (napríklad alokovať všetky globálne premenné).
  15. 15
    Publikujte svoj jazyk spolu so špecifikáciami a niekoľkými príkladmi toho, čo v ňom môžete robiť.
    • Nezabudnite zdokumentovať, ako sa môžete integrovať s existujúcimi knižnicami, jazykmi a ako používať funkcie runtime a/alebo štandardnú knižnicu.
Programovací jazyk nemôžete vytvoriť
Programovací jazyk nemôžete vytvoriť, ak neviete, ako používať počítač.

Tipy

  • Začnite tým, že navrhnete svoj jazyk a nepíšete žiadny kód, kým nebudete spokojní a neodpoviete na všetky (alebo väčšinu) otázok alebo problémov spojených s vašim návrhom, pretože je jednoduchšie zmeniť dizajn skôr ako neskôr.
  • Nakoniec poznáte svoju cieľovú platformu (operačný systém a knižnice) pre svoj kompilátor/tlmočník, budete ju používať a manipulovať s ňou.
Ostatné programovacie jazyky môžu pomôcť určiť syntax (pravidlá) vo vašom programovacom jazyku
Ostatné programovacie jazyky môžu pomôcť určiť syntax (pravidlá) vo vašom programovacom jazyku.

Varovania

  • Zamyslite sa nad tým, či skutočne potrebujete nový jazyk a čo nové váš jazyk ponúka, čo ostatné jazyky nemajú (môže ísť o kombináciu funkcií alebo jednu funkciu).
  • Buďte pripravení stráviť nejaký čas v jazykovom dizajne, pretože po napísaní kompilátora a prekročení bodu návrhu nebudete mať možnosť zmeniť svoj jazyk.
  • Písanie jazykov je ťažké, ak neviete, čo robíte. Tiež to chce veľa praxe.
  • Nesnažte sa založiť svoje vlastnosti na spojení niekoľkých jazykov, ako napríklad tvrdenia, že váš jazyk bude spojením jazyka X, jazyka Y a jazyka Z. História nám ukázala, že jazyky vytvorené takýmto spôsobom nikdy nenájdu úspech, alebo by každý programoval PL/1 namiesto niečoho na základe C.
Že budete chcieť vytvoriť nový programovací jazyk
Či už ste IT profesionál alebo len fanda, mnohokrát sa vám môže stať, že budete chcieť vytvoriť nový programovací jazyk.

Veci, ktoré budete potrebovať

  • Trpezlivosť
  • Znalosti o jazykových funkciách a jazykovom dizajne (možno si budete chcieť prečítať koncepty programovacieho jazykového dizajnu od Davida A. Watta).
  • Vedomosti o teórii kompilátora (pretože budete písať kompilátor/tlmočník pre váš jazyk a vaša implementácia bude referenčnou implementáciou).
  • Použitie pre váš jazyk (pamätajte, že niektoré z najpoužívanejších jazykov, ako je C alebo Lisp, boli vytvorené s cieľom vykonávať niečo konkrétne, ako napríklad vytváranie Unixu alebo symbolické výpočty).

Otázky a odpovede

  • Kde na PC naprogramujem nový jazyk?
    Na spustenie môžete použiť bezplatný softvér ako Sublime Text a ConTEXT, Notepad ++ alebo dokonca iba Poznámkový blok!
  • Existuje nejaký konkrétny jazyk, v ktorom je ľahké vytvoriť nový jazyk, a ako by som to urobil?
    Java je užitočná kvôli množstvu dostupných nástrojov. K dispozícii je predovšetkým veľmi známy nástroj s názvom „ANTLR“ na generovanie hlavných komponentov prekladačov a tlmočníkov.
  • Aké sú najlepšie knihy o programovacom jazyku Java?
    Pravdepodobne ich nájdete v miestnej knižnici. Ak nie, YouTube má veľa návodov, ako napríklad thenewboston.
  • Čo sa mám naučiť rozumieť navrhovaniu jazykov?
    Môžete sa zúčastniť kurzu na miestnej vysokej škole, univerzite alebo obchodnej škole alebo vyhľadávať informácie online.
  • Môžem na Chromebooku vytvoriť nový programovací jazyk?
    Samozrejme, pokiaľ máte prístup k Javascriptu, Pythonu, C#alebo inému programovaciemu jazyku. Ak chcete vytvoriť programovací jazyk, potrebujete ďalší programovací jazyk.
  • Môžem vytvoriť nový jazyk bez použitia iného programovacieho jazyka?
    Ostatné programovacie jazyky môžu pomôcť určiť syntax (pravidlá) vo vašom programovacom jazyku. Pomôže to naučiť sa jazyky Java, C ++, Python atď. Programovacie jazyky sú určené na riešenie problémov, preto sa na ne zamerajte, keď pracujete na svojom.
  • Na čom môžem testovať programovací jazyk? Aké nástroje môžem použiť?
    Vytvorte niekoľko príkladov, na ktorých môžete otestovať svoj prekladač/tlmočník. Začnite jednoducho a potom sa postupne zvyšujte. Potom použijete nástroj na testovanie, existuje mnoho bezplatných nástrojov na použitie, napríklad JUnit pre Javu, Jest pre Javascript a Unittest pre Python.
  • Ktorých je 5 najlepších programovacích jazykov?
    Neexistuje „najlepší“ programovací jazyk. Každý programovací jazyk má svoje silné a slabé stránky. Je na vývojárovi, aby na základe týchto silných a slabých stránok určil, či programovací jazyk vyhovuje jeho projektu.
  • Ako zverejním programovací jazyk?
    Mali by ste vytvoriť webovú stránku, ktorá, ak ste oboznámení s kódovaním, môže byť vykonaná veľmi lacno, alebo si môžete trochu priplatiť a získať editor webových stránok typu drag and drop. Mali by ste napísať všetko o tom, ako používať kód na webovej stránke. Potom by ste to mali zdieľať na fórach a stránkach sociálnych médií. Ak ste vo svojom jazyku vytvorili skutočný program, môže to pomôcť, pretože ľudia to vidia ako dobrý jazyk.
  • Ako sa môžem začať učiť programovací jazyk?
    sprievodca má na to niekoľko skvelých článkov, ako napríklad Začnite sa učiť počítačové programovanie, Naučte sa programovací jazyk a Začnite sa učiť programovať. Keď si vyberiete jazyk, ktorý je pre vaše potreby vhodný, sprievodca má návody aj na programovacie jazyky.

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail