Programmeringsspråkgenerasjoner - Programming language generations

Programmeringsspråk har blitt klassifisert i flere programmeringsspråksgenerasjoner . Historisk sett ble denne klassifiseringen brukt til å indikere økende kraft i programmeringsstiler. Senere forfattere har noe omdefinert betydningen ettersom forskjeller som tidligere ble sett på som viktige, ble mindre viktige for dagens praksis.

Generasjoner

Første generasjon (1GL)

Eksempler: maskin-nivå programmeringsspråk

En første generasjons programmeringsspråk (1GL) er en maskin-nivå programmeringsspråk .

Et første generasjons (programmerings) språk (1GL) er en gruppering av programmeringsspråk som er språk på maskinnivå som brukes til å programmere førstegenerasjons datamaskiner . Opprinnelig ble ingen oversetter brukt til å kompilere eller sette sammen første generasjons språk. Første generasjons programmeringsinstruksjoner ble angitt gjennom frontpanelbryterne til datasystemet.

Instruksjonene i 1GL er laget av binære tall , representert med 1s og 0s. Dette gjør språket egnet for forståelse av maskinen, men langt vanskeligere å tolke og lære av den menneskelige programmereren.

Andre generasjon (2GL)

Eksempler: forsamlingsspråk

Andre generasjons programmeringsspråk (2GL) er en generasjonsmåte for å kategorisere forsamlingsspråk .

Tredje generasjon (3GL)

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

3GL-er er mye mer maskinuavhengige (bærbare) og mer programmeringsvennlige. Dette inkluderer funksjoner som forbedret støtte for samlede datatyper og uttrykke konsepter på en måte som favoriserer programmereren, ikke datamaskinen. Et tredje generasjons språk forbedrer seg over et andre generasjons språk ved å la datamaskinen ta seg av ikke-viktige detaljer. 3GL er mer abstrakte enn tidligere generasjoner av språk, og kan derfor betraktes som språk på høyere nivå enn deres første og andre generasjons kolleger. Fortran , ALGOL og COBOL ble først introdusert på slutten av 1950 -tallet , og er eksempler på tidlige 3GL -er.

De mest populære generelle språkene i dag, som C , C ++ , C# , Java , BASIC og Pascal , er også tredje generasjons språk, selv om hvert av disse språkene kan deles inn i andre kategorier basert på andre samtidige trekk. De fleste 3GL -er støtter strukturert programmering . Mange støtter objektorientert programmering . Egenskaper som disse brukes oftere for å beskrive et språk i stedet for bare å være en 3GL.

Fjerde generasjon (4GL)

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

Fjerde generasjons språk har en tendens til å være spesialisert mot helt spesifikke programmeringsdomener . 4GL -er kan omfatte støtte for databaseadministrasjon , rapportgenerering , matematisk optimalisering , GUI -utvikling eller webutvikling .

Femte generasjon (5GL)

Eksempler: Prolog , OPS5 , kvikksølv

Et femte generasjons programmeringsspråk (5GL) er ethvert programmeringsspråk som er basert på problemløsning ved hjelp av begrensninger gitt til programmet, i stedet for å bruke en algoritme skrevet av en programmerer. De fleste begrensningsbaserte og logiske programmeringsspråk og noen andre deklarative språk er femte generasjons språk.

Mens fjerde generasjons programmeringsspråk er designet for å bygge spesifikke programmer, er femte generasjons språk designet for å få datamaskinen til å løse et gitt problem uten programmereren. På denne måten trenger brukeren bare å bekymre seg for hvilke problemer som må løses og hvilke betingelser som må oppfylles, uten å bekymre seg for hvordan man implementerer en rutine eller algoritme for å løse dem. Femte generasjons språk brukes hovedsakelig i kunstig intelligensforskning . OPS5 og Mercury er eksempler på femtegenerasjons språk, det samme er ICAD , som ble bygget på Lisp . KL-ONE er et eksempel på en beslektet idé, et rammespråk .

Historie

Begrepene "første generasjon" og "andre generasjon" programmeringsspråk ble ikke brukt før begrepet "tredje generasjon" ble laget; ingen av disse tre begrepene er nevnt i tidlige kompendier for programmeringsspråk. Innføringen av en tredje generasjon datateknologi falt sammen med etableringen av en ny generasjon programmeringsspråk. Markedsføringen for dette generasjonsskiftet i maskiner korrelerte med flere viktige endringer i det som ble kalt programmeringsspråk på høyt nivå , diskutert nedenfor, og ga teknisk innhold til andre/tredje generasjons skillet blant programmeringsspråk på høyt nivå, mens maskinen endret navn på maskinen med tilbakevirkende kraft. kodespråk som første generasjon , og assembler som andre generasjon .

Opprinnelig ble alle programmeringsspråk på et høyere nivå enn montering kalt " tredje generasjon ", men senere ble begrepet " fjerde generasjon " introdusert for å prøve å differensiere de (da) nye deklarative språkene (for eksempel Prolog og domene- spesifikke språk) som hevdet å operere på et enda høyere nivå, og i et domene som er enda nærmere brukeren (f.eks. på et naturlig språk) enn de originale, tvingende språkene på høyt nivå som Pascal , C , ALGOL , Fortran , BASIC , etc.

"Generasjons" klassifisering av språk på høyt nivå (tredje generasjon og senere) var aldri helt presis og ble senere kanskje forlatt, med mer presise klassifiseringer som fikk vanlig bruk, for eksempel objektorientert , deklarativt og funksjonelt. C ga opphav til C ++ og senere til Java og C# ; Lisp til CLOS ; Ada til Ada 2012 ; og til og med COBOL til COBOL 2002 . Nye språk har også dukket opp i den "generasjonen".

Se også

Referanser