Wat is de abstracte syntaxis?
Abstracte syntaxis is een manier voor computerprogrammeurs om de structuur van het programma dat ze willen maken in kaart te brengen zonder zich zorgen te maken over de daadwerkelijke code die nodig is om het te implementeren. Hiermee kan de programmeur zich concentreren op wat het programma moet doen voordat hij zich richt op hoe de computer de gewenste functies daadwerkelijk kan uitvoeren. De abstracte syntaxis schetst de specifieke taken van het programma, zoals het optellen van twee nummers, en laat zien welke soorten gegevens binnen dat programma kunnen worden gebruikt. Zodra de abstracte toewijzing is voltooid, wordt een abstracte syntaxisboom getekend, die de abstracte concepten combineert met concrete syntaxis - de eigenlijke symbolen die een programmeur moet typen om het programma te kunnen uitvoeren dat ze maakt.
Het idee voor abstracte syntaxis is om te focussen op gegevenstypen en hun relaties zonder verstrikt te raken in de details over hoe ze te coderen. Computercode is veel anders dan de menselijke taal, en proberen te denken in deze termen is moeilijk. In plaats daarvan maken programmeurs een lijst van de stappen die het programma moet voltooien en gebruiken vervolgens een concrete syntaxis om de abstracte termen te matchen met de computercodevoorwaarden die die stappen uitvoeren. Vaak neemt de programmeur gegevenstypen op in haar abstracte opmaak om aan te geven met welke soorten gegevens - of het nu cijfers, letters of decimalen zijn - waarmee het programma kan werken. Specifieke gegevenstypen zijn in dit stadium van het programmeren echter niet vereist en de programmeur kan ervoor kiezen om abstracte gegevenstypen te gebruiken, die puur theoretisch zijn en worden vervangen door specifieke gegevenstypen wanneer het programma wordt geschreven.
Dit soort abstracte idee van programmeren wordt vaak gebruikt in de compilertheorie. Computers kunnen slechts twee waarden begrijpen: enen en nullen. Dit staat bekend als binaire code. Opdat de computer een programma begrijpt dat in een programmeertaal is geschreven, moet het de woorden en letters compileren of vertalen in een stroom van enen en nullen. Compilers zijn complex om een vaag of abstract idee te maken en in kaart te brengen van wat ze moeten doen om een programmeur te helpen bij het plannen van foutloze code.
Wanneer de programmeur de abstracte syntaxis wil toewijzen aan concrete syntaxis en het programma of de compiler wil coderen, maakt ze een abstracte syntaxisboom. Dit is gewoon een lijst van alle abstracte instructies die ze heeft geschreven, zoals 'voeg 2 variabelen toe', met een lijn die uit elke abstracte term wordt getrokken naar de specifieke coderegel die nodig is om die instructie uit te voeren. De programmeur kan alle abstracte termen gebruiken die ze wil, maar het is gebruikelijker om bekende codetermen zoals "var" voor variabele en "int" voor geheel getal te gebruiken.