Programmeringsspråkgenerationer - Programming language generations

Programmeringsspråk har klassificerats i flera programmeringsspråkgenerationer . Historiskt sett användes denna klassificering för att indikera ökande kraft i programmeringsstilar. Senare författare har något omdefinierat betydelserna eftersom skillnader som tidigare setts som viktiga blev mindre viktiga för nuvarande praxis.

Generationer

Första generationen (1GL)

Exempel: maskin-nivå programmeringsspråk

Ett programmeringsspråk första generationen (1GL) är en maskin-nivå programmeringsspråk .

Ett första generations (programmeringsspråk) (1GL) är en grupp av programmeringsspråk som är språk på maskinnivå som används för att programmera första generationens datorer . Ursprungligen användes ingen översättare för att sammanställa eller montera första generationens språk. Första generationens programmeringsinstruktioner matades in via switcharna på datorns frontpanel .

Instruktionerna i 1GL är gjorda av binära tal , representerade av 1s och 0s. Detta gör språket lämpligt för förståelsen av maskinen men mycket svårare att tolka och lära av den mänskliga programmeraren.

Andra generationen (2GL)

Exempel: monteringsspråk

Andra generationens programmeringsspråk (2GL) är ett generationsväg för att kategorisera församlingsspråk .

Tredje generationen (3GL)

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

3GL är mycket mer maskinoberoende (bärbara) och mer programmerarvänliga. Detta inkluderar funktioner som förbättrat stöd för aggregerade datatyper och att uttrycka begrepp på ett sätt som gynnar programmeraren, inte datorn. Ett tredje generations språk förbättras över ett andra generations språk genom att låta datorn ta hand om icke-väsentliga detaljer. 3GL är mer abstrakt än tidigare generationer av språk och kan därför betraktas som högre språk än deras första och andra generationens motsvarigheter. Fortran , ALGOL och COBOL introducerades först i slutet av 1950 -talet och är exempel på tidiga 3GL.

De mest populära allmänna språken idag, som C , C ++ , C# , Java , BASIC och Pascal , är också tredje generationens språk, även om vart och ett av dessa språk kan delas in i andra kategorier baserat på andra samtida egenskaper. De flesta 3GL stöder strukturerad programmering . Många stöder objektorienterad programmering . Sådana egenskaper används oftare för att beskriva ett språk än att bara vara en 3GL.

Fjärde generationen (4GL)

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

Fjärde generationens språk tenderar att vara specialiserade mot mycket specifika programmeringsdomäner . 4GL kan inkludera stöd för databashantering , rapportgenerering , matematisk optimering , GUI -utveckling eller webbutveckling .

Femte generationen (5GL)

Exempel: Prolog , OPS5 , kvicksilver

Ett femte generationens programmeringsspråk (5GL) är alla programmeringsspråk som är baserade på problemlösning med hjälp av begränsningar som ges till programmet, snarare än att använda en algoritm skriven av en programmerare. De flesta begränsningsbaserade och logiska programmeringsspråken och några andra deklarativa språk är femte generationens språk.

Medan fjärde generationens programmeringsspråk är utformade för att bygga specifika program, är femte generationens språk utformade för att få datorn att lösa ett givet problem utan programmeraren. På detta sätt behöver användaren bara oroa sig för vilka problem som måste lösas och vilka villkor som måste uppfyllas, utan att oroa sig för hur man implementerar en rutin eller algoritm för att lösa dem. Femte generationens språk används främst inom forskning om artificiell intelligens . OPS5 och Merkurius är exempel på femte generationens språk, liksom ICAD , som byggdes på Lisp . KL-ONE är ett exempel på en relaterad idé, ett ramspråk .

Historia

Termerna "första generationen" och "andra generationens" programmeringsspråk användes inte innan begreppet "tredje generation" skapades; inget av dessa tre termer nämns i tidiga kompendier av programmeringsspråk. Införandet av en tredje generation av datorteknik sammanföll med skapandet av en ny generation programmeringsspråk. Marknadsföringen för detta generationsskifte i maskiner korrelerade med flera viktiga förändringar i vad som kallades programmeringsspråk på hög nivå , som diskuteras nedan, vilket ger tekniskt innehåll åt andra/tredje generationens åtskillnad bland programmeringsspråk på hög nivå och samtidigt byta namn på maskin- kodspråk som första generationen och monteringsspråk som andra generationen .

Inledningsvis kallades alla programmeringsspråk på en högre nivå än montering som " tredje generationen ", men senare introducerades termen " fjärde generationen " för att försöka skilja på (då) nya deklarativa språk (som Prolog och domän- specifika språk) som påstod sig fungera på en ännu högre nivå, och i en domän ännu närmare användaren (t.ex. på ett naturligt språk) än de ursprungliga, tvingande högnivåspråken som Pascal , C , ALGOL , Fortran , BASIC , etc.

"Generation" -klassificering av språk på hög nivå (tredje generationen och senare) var aldrig helt exakt och övergavs kanske senare, med mer exakta klassificeringar som vanligt används, till exempel objektorienterade , deklarativa och funktionella. C gav upphov till C ++ och senare till Java och C# ; Lisp till CLOS ; Ada till Ada 2012 ; och även COBOL till COBOL 2002 . Nya språk har också dykt upp i den "generationen".

Se även

Referenser