Generaties programmeertalen - Programming language generations

Programmeertalen zijn ingedeeld in verschillende generaties programmeertalen . Historisch gezien werd deze classificatie gebruikt om de toenemende kracht van programmeerstijlen aan te duiden. Latere schrijvers hebben de betekenissen enigszins geherdefinieerd, aangezien onderscheidingen die voorheen als belangrijk werden beschouwd, minder belangrijk werden voor de huidige praktijk.

Generaties

Eerste generatie (1GL)

Voorbeelden: programmeertalen op machineniveau

Een programmeertaal van de eerste generatie (1GL) is een programmeertaal op machineniveau .

Een programmeertaal van de eerste generatie (1GL) is een groep programmeertalen die talen op machineniveau zijn die worden gebruikt om computers van de eerste generatie te programmeren . Oorspronkelijk werd er geen vertaler gebruikt om de taal van de eerste generatie te compileren of samen te stellen . De programmeerinstructies van de eerste generatie werden ingevoerd via de schakelaars op het voorpaneel van het computersysteem.

De instructies in 1GL zijn gemaakt van binaire getallen , weergegeven door 1s en 0s. Dit maakt de taal geschikt voor het begrijpen van de machine, maar veel moeilijker te interpreteren en te leren door de menselijke programmeur.

Tweede generatie (2GL)

Voorbeelden: assembleertalen

Programmeertaal van de tweede generatie (2GL) is een generatiemethode om assemblertalen te categoriseren .

Derde generatie (3GL)

Voorbeelden: C , C++ , Java , Python , PHP , Perl , C# , BASIC , Pascal , Fortran , ALGOL , COBOL

3GL's zijn veel machine-onafhankelijk (draagbaar) en programmeervriendelijker. Dit omvat functies zoals verbeterde ondersteuning voor geaggregeerde gegevenstypen en het uitdrukken van concepten op een manier die de programmeur bevoordeelt, niet de computer. Een taal van de derde generatie verbetert ten opzichte van een taal van de tweede generatie doordat de computer voor niet-essentiële details zorgt. 3GL's zijn abstracter dan eerdere generaties talen en kunnen dus worden beschouwd als talen van een hoger niveau dan hun tegenhangers van de eerste en tweede generatie. Fortran , ALGOL en COBOL werden voor het eerst geïntroduceerd in de late jaren 1950 en zijn voorbeelden van vroege 3GL's.

De meest populaire talen voor algemene doeleinden van vandaag, zoals C , C++ , C# , Java , BASIC en Pascal , zijn ook talen van de derde generatie, hoewel elk van deze talen verder kan worden onderverdeeld in andere categorieën op basis van andere hedendaagse eigenschappen. De meeste 3GL's ondersteunen gestructureerd programmeren . Veel ondersteunen objectgeoriënteerd programmeren . Eigenschappen zoals deze worden vaker gebruikt om een ​​taal te beschrijven in plaats van alleen een 3GL te zijn.

Vierde generatie (4GL)

Voorbeelden: ABAP , Unix Shell , SQL , PL/SQL , Oracle Reports , R

Talen van de vierde generatie zijn meestal gespecialiseerd in zeer specifieke programmeerdomeinen . 4GL's kunnen ondersteuning bieden voor databasebeheer , het genereren van rapporten , wiskundige optimalisatie , GUI-ontwikkeling of webontwikkeling .

Vijfde generatie (5GL)

Voorbeelden: Prolog , OPS5 , Mercury

Een programmeertaal van de vijfde generatie (5GL) is elke programmeertaal die is gebaseerd op het oplossen van problemen met behulp van beperkingen die aan het programma zijn gegeven, in plaats van een algoritme te gebruiken dat is geschreven door een programmeur. De meeste op beperkingen gebaseerde en logische programmeertalen en enkele andere declaratieve talen zijn talen van de vijfde generatie.

Terwijl programmeertalen van de vierde generatie zijn ontworpen om specifieke programma's te bouwen, zijn talen van de vijfde generatie ontworpen om de computer een bepaald probleem te laten oplossen zonder de programmeur. Op deze manier hoeft de gebruiker zich alleen maar zorgen te maken over welke problemen moeten worden opgelost en aan welke voorwaarden moet worden voldaan, zonder zich zorgen te maken over hoe een routine of algoritme moet worden geïmplementeerd om ze op te lossen. Talen van de vijfde generatie worden voornamelijk gebruikt in onderzoek naar kunstmatige intelligentie . OPS5 en Mercury zijn voorbeelden van talen van de vijfde generatie, net als ICAD , dat op Lisp is gebouwd . KL-ONE is een voorbeeld van een verwant idee, een frametaal .

Geschiedenis

De termen "eerste generatie" en "tweede generatie" programmeertaal werden niet gebruikt voorafgaand aan het bedenken van de term "derde generatie"; geen van deze drie termen wordt genoemd in vroege compendia van programmeertalen. De introductie van een derde generatie computertechnologie viel samen met de creatie van een nieuwe generatie programmeertalen. De marketing voor deze generatieverschuiving in machines correleerde met een aantal belangrijke veranderingen in de zogenaamde programmeertalen op hoog niveau , die hieronder worden besproken, waarbij technische inhoud wordt gegeven aan het onderscheid van de tweede/derde generatie tussen programmeertalen op hoog niveau, terwijl de naam van de machine met terugwerkende kracht wordt gewijzigd. codetalen als eerste generatie en assembler als tweede generatie .

Aanvankelijk werden alle programmeertalen op een hoger niveau dan assemblage " derde generatie " genoemd, maar later werd de term " vierde generatie " geïntroduceerd om te proberen de (toenmalige) nieuwe declaratieve talen (zoals Prolog en domein- specifieke talen) die beweerden op een nog hoger niveau te werken, en in een domein dat nog dichter bij de gebruiker staat (bijvoorbeeld op een natuurlijk taalniveau) dan de oorspronkelijke, dwingende talen op hoog niveau zoals Pascal , C , ALGOL , Fortran , BASIS , enz.

"Generationele" classificatie van talen op hoog niveau (derde generatie en later) was nooit volledig nauwkeurig en werd later misschien verlaten, met meer nauwkeurige classificaties die algemeen worden gebruikt, zoals objectgeoriënteerd , declaratief en functioneel. C gaf aanleiding tot C++ en later tot Java en C# ; Lisp naar CLOS ; Ada tot Ada 2012 ; en zelfs COBOL tot COBOL 2002 . In die "generatie" zijn ook nieuwe talen ontstaan.

Zie ook

Referenties