emkiset.ru

Hoe een programmeertaal te creëren

Veel mensen ervaren moeilijkheden of frustraties met de programmeertalen die ze dagelijks gebruiken. Sommigen willen dingen die abstracter kunnen worden afgehandeld, terwijl anderen karaktereigenschappen niet willen toepassen zoals ze normaal zouden willen zijn. Of u nu een computerprofessional of een amateur bent, u zult vaak geconfronteerd worden met de situatie dat u een nieuwe programmeertaal wilt maken.

stappen

Titel afbeelding Create a Programming Language Step 1
1
Maak uzelf vertrouwd met de terminologie. Compilerschrijvers gebruiken vaak onbekende terminologie. Lees meer over de compilers voordat u doorgaat. Zorg dat je alles weet wat je nodig hebt.
  • Titel afbeelding Create a Programming Language Step 2
    2
    Bepaal welk probleem je gaat oplossen. Is het gericht op een specifiek domeinprobleem of is het een taal voor algemeen gebruik?
  • Titel afbeelding Create a Programming Language Step 3
    3
    Denk na over de semantiek van taal en zijn concepten.
  • Ga je directe toegang toestaan ​​of niet?
  • Wat zijn de soorten gegevens in uw taal?
  • Is het een statische of dynamische taal?
  • Wat is het geheugenmodel? Gaat u een garbage collector of een handmatige geheugenmanager gebruiken? (Als u een garbagecollector gebruikt, moet u er een schrijven of een bestaande aanpassen aan uw taal).
  • Hoe ga je de competitie beheren? Ga je een eenvoudig draad- of blokmodel gebruiken of iets complexer zoals Linda of het acteursmodel? (sinds vandaag hebben computers meerdere kernen).
  • Zullen er primaire functies in de taal worden ingevoegd of zitten ze allemaal in een bibliotheek?
  • Wat is het paradigma of de paradigma`s van jouw taal? Functionele? Gericht op objecten? Prototype (zoals jаvascript)? Gericht op het aspect? Naar sjablonen? Of iets geheel nieuws?
  • Hoe verhoudt uw taal zich tot andere bibliotheken en talen (voornamelijk C)? Dit punt is belangrijk voor het geval u een taal gaat maken voor een specifiek domein.
  • Ten slotte zullen enkele van de antwoorden op deze vragen in de tweede stap worden beantwoord en zullen ze u helpen de volgende stap te beantwoorden.
  • Titel afbeelding Create a Programming Language Step 4
    4
    Denk aan een aantal specifieke taken die iemand misschien met jouw taal wil doen. Ze willen bijvoorbeeld een robot een richting laten volgen, er relatief draagbare desktopprogramma`s op maken of er webtoepassingen mee maken.
  • Titel afbeelding Create a Programming Language Step 5
    5
    Experimenteer met syntaxisideeën (de taaltekst) met de vorige voorbeelden.
  • Zorg ervoor dat uw taal in een categorie zonder context blijft zonder dat er iets in zit. Jij en je syntactische generator zullen je later bedanken.


  • Titel afbeelding Create a Programming Language Step 6
    6
    Schrijf een formele grammatica voor de syntaxis.
  • Titel afbeelding Create a Programming Language Step 7
    7
    Bepaal of u de taal wilt interpreteren of compileren. Dit betekent dat in de interpretatiewereld de gebruiker waarschijnlijk je programma zal bewerken met een editor en direct in de interpreter zal uitvoeren, terwijl in de compilatiewereld de gebruiker je programma zal bewerken, compileren, het resulterende uitvoerbare bestand ergens zal opslaan en zal het uitvoeren.
  • Titel afbeelding Create a Programming Language Step 8
    8



    Schrijf de vertaler en syntactische generator of zoek naar een hulpmiddel om u hierbij te helpen.
  • Denk ook na over hoe de compiler of interpreter de gebruiker waarschuwt voor de verkeerde programma`s en syntaxisstoringen.
  • Titel afbeelding Create a Programming Language Step 9
    9
    Gebruik de syntactische generatorinformatie om de objectcode of een tussenpersoon te schrijven. Laat de generator een AST maken en vervolgens de objectcode van de AST met behulp van drie codeadressen of de code ervan "grote broer" SSA en maak vervolgens een symbooltabel om de functies, globale variabelen, enz. Te definiëren.
  • Afhankelijk van de taal wilt u mogelijk ook virtuele tabellen of informatie voor uw klassen maken (om de nagalm of RTTI te ondersteunen).
  • Titel afbeelding Create a Programming Language Step 10
    10
    Schrijf de uitvoerder of generatorcode die alles zal verenigen.
  • Titel afbeelding Create a Programming Language Step 11
    11
    Schrijf veel testprogramma`s om de taal te controleren.
  • Maak programma`s die "strek het touw uit" van uw formele grammatica om te kunnen verifiëren dat de compiler alles ondersteunt wat binnen uw definitie valt en alles verwerpt dat erbuiten ligt.
  • Titel afbeelding Create a Programming Language Step 12
    12
    Overweeg hoe de gebruiker de fouten van zijn eigen programma`s zal elimineren.
  • Titel afbeelding Create a Programming Language Step 13
    13
    Als uw taal een standaardbibliotheek gebruikt, schrijft u deze. Voeg ook de garbage collector of andere veelgebruikte taaluitvoeringsfuncties toe voor het geval u het nodig heeft.
  • In het bijzonder, in het geval dat u een compiler gebruikt, hebt u de code nodig die het besturingssysteem uitvoert om de gebruikerscode te starten (bijvoorbeeld alle globale variabelen distribueren).
  • Titel afbeelding Create a Programming Language Step 14
    14
    Publiceer uw taal met zijn beschrijving en enkele voorbeelden van wat ermee kan worden gedaan.
  • Vergeet niet te documenteren hoe u het kunt integreren met bestaande bibliotheken, talen en hoe u gemeenschappelijke uitvoeringsfuncties of de standaardbibliotheek kunt gebruiken.
  • tips

    • Begin met het ontwerpen van de taal en schrijf geen code totdat u tevreden bent en alle (of de meeste) vragen of problemen met betrekking tot uw ontwerp hebt beantwoord, omdat het gemakkelijker is om het ontwerp eerder dan later te wijzigen.
    • Ken je doelplatform (besturingssysteem en bibliotheken) voor je compiler en tolk, want je gaat het tenslotte gebruiken en manipuleren.

    waarschuwingen

    • Denk erover na of je echt een nieuwe taal nodig hebt en wat je opnieuw hebt dat anderen niet hebben (het kan een combinatie van kenmerken zijn of slechts één).
    • Het is moeilijk om talen te schrijven voor het geval je niet weet wat je doet. Het vereist ook veel oefening.
    • Maak je klaar om veel tijd te spenderen aan het taalontwerp, omdat je niet de mogelijkheid hebt om de taal te veranderen nadat je de compiler hebt geschreven en het ontwerppunt hebt doorgegeven.
    • Probeer je kenmerken niet te baseren op een mengeling van verschillende talen, zoals zeggen dat de taal een unie is van de X-, Y- en Z-talen. De geschiedenis heeft aangetoond dat talen die op deze manier zijn gemaakt nooit succesvol zijn omdat anders alle wereld zou programmeren in PL / 1 in plaats van iets gebaseerd op C.

    Dingen die je nodig hebt

    • geduld
    • kennis over de kenmerken en het ontwerp van de taal (misschien wilt u lezen "Taalontwerpconcepten programmeren" ("Programmeertalen en paradigma`s" door David A. Watt)
    • kennis over compilatietheorie (aangezien je een compiler en tolk gaat schrijven voor je taal en de implementatie ervan de referentie zal zijn om hieraan te voldoen)
    • gebruikt voor uw taal (onthoud dat enkele van de meest gebruikte talen zoals C of Lisp zijn gemaakt om iets specifieks te doen, zoals het maken van Unix of het uitvoeren van symbolische berekening)
    Delen op sociale netwerken:

    Verwant
    Hoe programmeren te lerenHoe programmeren te leren
    Hoe een programmeertaal te lerenHoe een programmeertaal te leren
    Hoe de taal van Windows 7 te veranderenHoe de taal van Windows 7 te veranderen
    Hoe de taal op Instagram te veranderenHoe de taal op Instagram te veranderen
    Hoe de taal in Skype op een pc of Mac te veranderenHoe de taal in Skype op een pc of Mac te veranderen
    Hoe de taal op Twitter te veranderenHoe de taal op Twitter te veranderen
    Hoe een videospel te coderenHoe een videospel te coderen
    Hoe een programma te kraken door DLL-bestanden te wijzigenHoe een programma te kraken door DLL-bestanden te wijzigen
    Hoe een eenvoudig programma in Python te creërenHoe een eenvoudig programma in Python te creëren
    Hoe te beginnen met leren programmerenHoe te beginnen met leren programmeren
    » » Hoe een programmeertaal te creëren
    © 2021 emkiset.ru