Broncode

Van Wikipedia, de gratis encyclopedie
Spring naar navigatie Spring naar zoeken
Broncodevoorbeeld voor de procedurele programmeertaal C. [1] Voor voorbeelden van andere talen, zie afzonderlijke artikelen .

Brontekst , ook wel broncode ( Engelse broncode ) of fuzzy program code genoemd , is in de informatica de tekst van een voor mensen leesbaar computerprogramma en geschreven in een programmeertaal . Abstract gezien kan de brontekst van een programma ook wel een softwaredocument worden genoemd , dat het programma zo nauwkeurig en volledig beschrijft dat het daaruit volledig automatisch door een computer in machinetaal kan worden vertaald.

Brontekst kan ook (gedeeltelijk of geheel) niet-tekstuele vorm hebben, bijvoorbeeld als grafische koppeling tussen logische functieblokken (bijvoorbeeld in Simulink of als UML- diagram). De brontekst van een programma kan uit meerdere delen bestaan, het kan bijvoorbeeld worden opgedeeld in meerdere bestanden (eventueel verschillende formaten ) of deels grafisch, deels tekstueel (bijvoorbeeld UML, verrijkt met methode-implementaties in de gebruikte programmeertaal).

gebruik maken van

creatie

Brontekst wordt meestal handmatig gemaakt met behulp van een geïntegreerde ontwikkelomgeving of een teksteditor . Maar er zijn ook codegeneratoren die de code genereren uit gestructureerde ontwerpdocumenten, b.v. B. automatisch structuurdiagrammen of UML- concepten genereren. Een andere creatieoptie zijn ontwikkelingstools die code kunnen genereren uit concepten en vice versa uit code. Handmatige wijzigingen aan de code worden vervolgens in het concept verwerkt. Op deze manier is " round-trip engineering " mogelijk, waarbij op elk moment in het gehele ontwikkelproces handmatige wijzigingen kunnen worden aangebracht.

Een eenvoudige teksteditor is meestal voldoende om de brontekst te maken. Met behulp van taalspecifieke editors kunnen bepaalde werkstappen worden vereenvoudigd: Door syntaxisaccentuering kunnen delen van de brontekst in kleur worden gemarkeerd op basis van hun functionaliteit, wat de leesbaarheid verbetert. Om de leesbaarheid te verbeteren, houden programmeurs zich meestal aan bepaalde opmaak van de brontekst (bijv. inspringen van subsecties, hoofdletters / kleine letters ...). In sommige talen is bepaalde brontekstopmaak gespecificeerd (bijv. Fortran -77, Python ), sommige geïntegreerde ontwikkelomgevingen kunnen de brontekst automatisch opmaken (de zogenaamde beautifier ).

Bij grotere programma's die uit veel afzonderlijke bronbestanden bestaan, wordt soms informatie beheerd die de onderlinge afhankelijkheden van de brontekstbestanden beschrijft. Hierdoor kunnen bij het compileren alle werkstappen om het voltooide programma te maken door middel van een enkele oproep worden uitgevoerd en kunnen alleen die delen opnieuw worden gecompileerd die in de tussentijd zijn gewijzigd of die afhankelijk zijn van gewijzigde componenten. Makefiles zijn hier een voorbeeld van.

Voor een betere documentatie van de veranderingen of de beoogde synchronisatie van meerdere programmeurs werken op hetzelfde moment, wordt de brontekst vaak opgeslagen met een software versie beheer systeem, zodat veranderingen later kunnen worden bekeken en, indien nodig, omgekeerd.

Vertaling en uitvoering

Voordat het programma dat de programmeur schrijft door een computer kan worden uitgevoerd, moet het worden omgezet in machinetaal , dat wil zeggen in een reeks bits die de computer kan begrijpen. Dit kan vooraf worden gedaan door een compiler of - tijdens runtime - door een interpreter of JIT-compiler . In sommige programmeertalen wordt gekozen voor een combinatie van beide varianten, waarbij eerst de brontekst van de betreffende taal - meestal geïnitieerd door de programmeur - wordt vertaald in een abstracte tussencode, die vervolgens vanuit een runtime-omgeving naar de machinecode wordt overgebracht door een interpreter of JIT-compiler tijdens runtime zal. Dit principe heeft als voordeel dat één en dezelfde tussencode op een groot aantal verschillende platformen kan worden uitgevoerd en er dus niet voor elk op de markt gangbaar systeem een ​​aparte versie van de software hoeft te verschijnen. Typische voorbeelden van zo'n tussencode zijn de Java bytecode en de Common Intermediate Language . Met behulp van een debugger kan de functionaliteit van het programma tijdens runtime worden gevolgd.

Aankomen op de programmering precompiler gebruikt, is de door de blik programmeurs originele code gegenereerd onder andere uitdrukkingen / instructies bevatten die niet de werkelijke programmering' niet begrijpen. Een voorbeeld hiervan zijn SQL- statements. Dergelijke instructies worden door de precompiler vertaald in programmeertaalcommando's; In de vaak slechts tijdelijk gegenereerde brontekstgegevens worden de originele instructies meestal als commentaar ingevoegd om zichtbaar te blijven. De procedure is vergelijkbaar bij het gebruik van macroprocessors : deze genereren commando's in de respectieve programmeertaal uit de instructies die zijn geformuleerd als macro's .

De machineopdrachten die tijdens het compileren worden gegenereerd (in programmeertalen op een hoger niveau, meestal meerdere per broncode-instructie) vertegenwoordigen over het algemeen de geprogrammeerde functie zelf (voor eenvoudige opdrachten zoals het toevoegen van variabele inhoud); dit omvat ook oproepen naar functies van het besturingssysteem . Als alternatief kan de compiler een routine uitvoeren die overeenkomt met de geprogrammeerde instructie, b.v. Bijvoorbeeld vanuit een programmabibliotheek , direct invoegen in de doelcode - of gewoon een oproepcommando voor een dergelijke routine (bijvoorbeeld voor een database-aanroep of voor complexe algoritmen). Op deze manier aangeroepen routines voeren instructies uit die in de brontekst zijn gecodeerd als subroutines en dus 'ingekapseld' zijn.

Licenties

Op software en de bijbehorende brontekst rust copyright . Ze kunnen worden onderverdeeld in twee categorieën: propriëtaire software en open source software.

Open source- programma's, dwz programma's die onder een "open source"-licentie vallen, worden meestal rechtstreeks geleverd met hun broncode, waarvan de wijziging en distributie door de licentie is toegestaan. Hierdoor kunnen ze worden bestudeerd, getest en aangepast aan specifieke behoeften. Voorstanders van het open source-principe zijn van mening dat dit ook de kwaliteit ten goede komt, aangezien experts de fouten beter kunnen lokaliseren en ofwel direct kunnen herstellen of de oorspronkelijke programmeurs kunnen voorzien van foutmeldingen van betere kwaliteit. De mogelijkheid om open source software te controleren aan de hand van de broncode vergroot het vertrouwen van de gebruiker in de juistheid en functionaliteit ervan in het belang van de gebruiker. In die zin is vrije software identiek aan open source software.

Proprietary software wordt meestal geleverd zonder broncode ( closed source ) of alleen onder bijzonder restrictieve licenties. Ter bescherming van de klant/gebruiker dienen dan soms overeenkomsten tot broncode deponering (Broncode Escrow-overeenkomsten) te worden gesloten. In het geval van individuele creatie van maatwerksoftware door derden in opdracht, wordt meestal ook de overdracht van de brontekst overeengekomen. Voor software die een gebruiker , bijvoorbeeld een bedrijf, voor eigen doeleinden maakt, zijn licentieovereenkomsten overbodig.

andere betekenissen

In bredere zin betekent brontekst ook de voor mensen leesbare beschrijving van een weergegeven medium.

  • De broncode van webpagina's is meestal in HTML geschreven.
  • De brontekst van Wikipedia-artikelen is de tekst die de auteurs van het artikel invoeren. Hier, zoals bij veel dynamische websites, is de HTML-code het resultaat van het transformeren van de wiki-code in HTML en CSS . Zo wordt bij dynamische websites met brontekst vaak niet de gegenereerde HTML bedoeld, maar de informatiebron waaruit de website wordt gegenereerd.
  • PostScript en andere vectorformaten zijn ook niet-gerenderde "brontekst".
  • VHDL beschrijft elektronische schakelingen die gegevensverwerking in een simulator kunnen uitvoeren.

Zie ook

web links

WikiWoordenboek: Brontekst - uitleg van betekenissen, woordoorsprong, synoniemen, vertalingen
Commons : Broncode - verzameling afbeeldingen, video's en audiobestanden

Individueel bewijs

  1. ^ Brian Kernighan : Programmeren in C - A Tutorial. (PDF; 71 kB) Bell Laboratories , 1974, gearchiveerd van het origineel op 10 december 2005 ; geraadpleegd op 15 september 2018 .