Jak vytvořit programovací jazyk: 15 kroků (s obrázky)

Obsah:

Jak vytvořit programovací jazyk: 15 kroků (s obrázky)
Jak vytvořit programovací jazyk: 15 kroků (s obrázky)

Video: Jak vytvořit programovací jazyk: 15 kroků (s obrázky)

Video: Jak vytvořit programovací jazyk: 15 kroků (s obrázky)
Video: Jak zrychlit a vyčistit Stolní pc, notebook CZ #tutorial 2024, Smět
Anonim

Mnoho lidí má potíže nebo frustraci z programovacích jazyků, které používají každý den. Někteří chtějí, aby se věci řešily abstraktněji, zatímco jiným se nelíbí implementační funkce, které si přejí, aby byly „standardní“. Ať už jste IT profesionál nebo jen fanda, mnohokrát vás může přepadnout chuť vytvořit nový programovací jazyk.

Kroky

Vytvořte programovací jazyk Krok 1
Vytvořte programovací jazyk Krok 1

Krok 1. Seznamte se s technologií

Pokud nevíte, jak používat počítač, nemůžete vytvořit programovací jazyk.

Vytvořte programovací jazyk Krok 2
Vytvořte programovací jazyk Krok 2

Krok 2. Seznamte se s terminologií

Spisovatelé kompilátorů často používají neznámou terminologii. Než budete pokračovat, přečtěte si překladače. Ujistěte se, že víte vše, co potřebujete vědět.

Vytvořte programovací jazyk Krok 3
Vytvořte programovací jazyk Krok 3

Krok 3. Rozhodněte, jaký problém váš jazyk řeší

Řeší problém specifický pro doménu, nebo jde o jazyk pro obecné účely?

Vytvořte programovací jazyk Krok 4
Vytvořte programovací jazyk Krok 4

Krok 4. Zamyslete se nad sémantikou vašeho jazyka a jeho pojmy

  • Chystáte se povolit přímý přístup k ukazateli nebo ne?
  • Jaké jsou datové typy ve vašem jazyce?
  • Je to statický nebo dynamický jazyk?
  • Jaký je váš model paměti? Budete používat popelář nebo ruční správu paměti? (Pokud používáte sběrač odpadků, připravte se na jeho napsání nebo přizpůsobte stávající svému jazyku.)
  • Jak budou zvládat souběžnost? Budete používat jednoduchý model pro navlékání/zamykání nebo něco složitějšího, jako je Linda nebo herecký model? (Protože dnes mají počítače více jader.)
  • Jsou v jazyce integrovány primitivní funkce nebo bude vše pocházet z knihovny?
  • Jaké je paradigma nebo paradigmata vašeho jazyka? Funkční? Objektově orientovaný? Prototyp (jako JavaScript)? Aspektově orientovaný? Orientované na šablony? Nebo něco úplně nového?
  • Jak bude váš jazyk komunikovat s existujícími knihovnami a jazyky (hlavně C)? Tento bod je důležitý, pokud budujete jazyk specifický pro doménu.
  • Nakonec na některé odpovědi na tyto otázky odpoví druhý krok a pomůže vám odpovědět na další krok.
Vytvořte programovací jazyk Krok 5
Vytvořte programovací jazyk Krok 5

Krok 5. Zamyslete se nad některými konkrétními úkoly, které by někdo chtěl umět s vaším jazykem

Například „mohou chtít nasměrovat robota, aby sledoval řádek“nebo „mohou v něm chtít vytvořit relativně přenosné desktopové programy“nebo „mohou s ním chtít vytvářet webové aplikace“.

Vytvořte programovací jazyk Krok 6
Vytvořte programovací jazyk Krok 6

Krok 6. Experimentujte s nápady na syntaxi (text jazyka) pro výše uvedené příklady

Dávejte pozor, aby váš jazyk zůstal v kategorii jazyků bez kontextu nebo v ní. Váš generátor analyzátoru a později to oceníte

Vytvořte programovací jazyk Krok 7
Vytvořte programovací jazyk Krok 7

Krok 7. Napište formální gramatiku syntaxe

Vytvořte programovací jazyk Krok 8
Vytvořte programovací jazyk Krok 8

Krok 8. Rozhodněte, zda bude jazyk interpretován nebo kompilován

To znamená, že v interpretovaném světě bude váš uživatel obvykle upravovat váš program v editoru a spouštět jej přímo na tlumočníku; zatímco v kompilovaném světě váš uživatel váš program upraví, zkompiluje, výsledný spustitelný soubor někam uloží a spustí.

Vytvořte programovací jazyk Krok 9
Vytvořte programovací jazyk Krok 9

Krok 9. Napište skener a analyzátor front -endu nebo najděte nástroj, který vám s tím pomůže

Zamyslete se také nad tím, jak váš překladač/tlumočník upozorní vašeho uživatele na chybné programy a chyby syntaxe

Vytvořte programovací jazyk Krok 10
Vytvořte programovací jazyk Krok 10

Krok 10. Pomocí informací analyzátoru napište kód objektu nebo přechodnou reprezentaci

Nechejte analyzátor vytvořit AST, poté vytvořte svůj objektový kód z AST pomocí kódu tří adres nebo jeho velkého bratra SSA, poté vytvořte tabulku symbolů, která definuje vaše funkce, globální proměnné atd.

V závislosti na vašem jazyce můžete také chtít vytvořit tabulky virtuálních ukazatelů nebo informační tabulky pro své třídy (za účelem podpory reflexe nebo RTTI)

Vytvořte programovací jazyk Krok 11
Vytvořte programovací jazyk Krok 11

Krok 11. Napište exekutor nebo generátor kódu, který vše spojí dohromady

Vytvořte programovací jazyk Krok 12
Vytvořte programovací jazyk Krok 12

Krok 12. Napište mnoho testovacích programů k otestování jazyka

Chcete vytvořit programy, které zdůrazňují zátěž vaší formální gramatiky, abyste viděli, že váš kompilátor přijímá vše, co je uvnitř vaší definice, a odmítá vše, co je mimo ni

Vytvořte programovací jazyk Krok 13
Vytvořte programovací jazyk Krok 13

Krok 13. Zvažte, jak bude uživatel ladit své vlastní programy

Vytvořte programovací jazyk Krok 14
Vytvořte programovací jazyk Krok 14

Krok 14. Pokud váš jazyk používá standardní knihovnu, budete ji chtít napsat

Spolu s popelářem nebo jinými běhovými funkcemi, pokud to potřebujete.

Konkrétně pokud píšete kompilátor, budete potřebovat kód, který operační systém spustí, aby bylo možné začít spouštět uživatelský kód (například přidělování všech globálních proměnných)

Vytvořte programovací jazyk Krok 15
Vytvořte programovací jazyk Krok 15

Krok 15. Zveřejněte svůj jazyk spolu se specifikací a několika příklady toho, co v něm můžete dělat

Nezapomeňte zdokumentovat, jak se můžete integrovat se stávajícími knihovnami, jazyky a jak používat funkce runtime a/nebo standardní knihovnu

Video - Používáním této služby mohou být některé informace sdíleny s YouTube

Tipy

  • Začněte tím, že navrhnete svůj jazyk a nepište žádný kód, dokud nebudete spokojeni a neodpovíte na všechny (nebo většinu) otázek nebo problémů souvisejících s vaším designem, protože je snazší změnit design dříve než později.
  • Znáte svou cílovou platformu (operační systém a knihovny) pro váš překladač/překladač, koneckonců ji budete používat a manipulovat s ní.

Varování

  • Zamyslete se nad tím, zda opravdu potřebujete nový jazyk a co váš jazyk přináší novému, co jiné jazyky nemají (může jít o kombinaci funkcí nebo jednu funkci).
  • Psaní jazyků je obtížné, pokud nevíte, co děláte. Chce to také hodně cviku.
  • Připravte se, že strávíte nějaký čas jazykovým designem, protože po napsání kompilátoru a překročení bodu návrhu nebudete mít šanci svůj jazyk změnit.
  • Nesnažte se zakládat své funkce na spojení několika jazyků, jako například říkat, že váš jazyk bude sjednocením jazyka X, jazyka Y a jazyka Z. Historie nám ukázala, že takto vytvořené jazyky nikdy nenajdou úspěch, nebo by každý programoval PL/1 místo něčeho na základě C.

Doporučuje: