Historien om programmeringssprog

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 11. september 2015; checks kræver 105 redigeringer .

Computerteknologiens fremskridt har bestemt processen med fremkomsten af ​​nye forskellige tegnsystemer til at skrive programmeringssprogalgoritmer. Betydningen af ​​udseendet af et sådant sprog er at forenkle programkoden.

Programmeringssprog er normalt opdelt i fem generationer. Den første generation inkluderer sprog skabt i begyndelsen af ​​50'erne, da de første computere lige blev født. Det var det første samlesprog skabt efter princippet om "én instruktion - en linje".

Begyndelse

Maskinkode og assembler

De fysiske principper for drift af elektroniske enheder på en computer er sådan, at en computer kan acceptere kommandoer, der kun består af enere og nuller - en sekvens af spændingsfald, det vil sige maskinkode. I den indledende fase af udviklingen af ​​computere var det nødvendigt for en person at skrive programmer på et sprog, der er forståeligt for en computer, i maskinkoder. Hver instruktion bestod af en opkode og operandadresser udtrykt som forskellige kombinationer af 1'ere og 0'ere. Så ethvert program til processoren så på tiden som en sekvens af etere og nuller.

Som praksis med at kommunikere med en computer senere viste, er et sådant sprog besværligt og ubelejligt. Når du bruger det, er det nemt at lave en fejl ved at skrive 1 eller 0 i den forkerte rækkefølge. Programmet er meget svært at styre. Derudover skal man ved programmering i maskinkoder have et godt kendskab til computerens interne struktur, hver bloks funktionsprincip. Og det værste ved sådan et sprog er, at programmer på dette sprog - meget lange sekvenser af et-taller og nuller - er maskinafhængige, det vil sige, at hver computer skulle lave sit eget program, og programmering i maskinkoder kræver meget tid, arbejde, øget opmærksomhed fra programmøren .

Ret hurtigt blev det klart, at processen med at generere maskinkode kan automatiseres. Allerede i 1950 begyndte man at bruge et mnemonisk sprog, assemblersprog, til at skrive programmer. Samlingsproget gjorde det muligt at præsentere maskinkode i en mere menneskevenlig form: I stedet for binære koder blev der brugt bogstaver eller forkortede ord til at betegne kommandoer og objekter, som disse kommandoer udføres på, hvilket afspejlede essensen af ​​kommandoen. For eksempel i assemblersprog er instruktionen om at tilføje to tal angivet med ordet add, mens dets maskinkode kan være: 000010.

Assembler er et programmeringssprog på lavt niveau. Et programmeringssprog på lavt niveau er et programmeringssprog, der fokuserer på en bestemt type processor og tager højde for dens funktioner. I dette tilfælde betyder "lav" ikke "dårlig". Det betyder, at sprogoperatørerne er tæt på maskinkode og er fokuseret på specifikke processorinstruktioner. Fremkomsten af ​​assemblersprog lettede i høj grad programmørernes liv, da de nu, i stedet for nuller og enere, der rislede i deres øjne, kunne skrive et program med kommandoer bestående af symboler tæt på almindeligt sprog. For den tid var dette sprog en nyskabelse og var populært, fordi det gjorde det muligt at skrive små programmer, hvilket er et væsentligt kriterium for disse maskiner.

Men kompleksiteten ved at udvikle store softwaresystemer i det førte til fremkomsten af ​​tredje generations sprog - sprog på højt niveau. Men brugen af ​​assembler sluttede ikke der, det er populært i snævre kredse den dag i dag. Nu bruges det til at skrive separate fragmenter af programmer eller nogle gange til at skrive programmer selv. Der kan være mange eksempler, men det mest slående er brugen af ​​assembler til at skrive drivere, spil og OS-indlæsere. Glem ikke, at dette sprog også er populært blandt hackere, på grund af det faktum, at hastigheden på det resulterende program er meget højere end hastigheden på et program skrevet i et programmeringssprog på højt niveau. Dette skyldes, at den resulterende programstørrelse er meget lille. Antivirusudviklere bruger også assembler i nogle moduler af deres programmer, hvilket også sikrer deres hastighed. [en]

De første programmeringssprog på højt niveau

Midten af ​​50'erne. kendetegnet ved hurtige fremskridt inden for programmering. Programmeringens rolle i maskinkoder begyndte at falde, programmeringssprog af en ny type begyndte at dukke op, der fungerede som mellemled mellem maskiner og programmører. Tiden er inde til anden og tredje generation af programmeringssprog.

Siden midten af ​​50'erne af det XX århundrede. begyndte at skabe de første programmeringssprog på højt niveau ( programmeringssprog på højt niveau). Disse sprog var ikke bundet til en bestemt type computer (maskinuafhængig). For hver af dem blev deres egne compilere udviklet . Kompilering er oversættelsen af ​​et program skrevet i et kildesprog på højt niveau til et tilsvarende program på et lavniveausprog tæt på maskinkode (absolut kode, objektmodul, nogle gange assemblersprog).

FORTRAN-programmeringssproget

Det første sprog på højt niveau Fortran blev skabt mellem 1954 og 1957 af en gruppe programmører ledet af John Backus hos IBM Corporation. Det var beregnet til videnskabelige og tekniske beregninger. Navnet Fortran er en forkortelse for FORMEL OVERSÆTNING (Formel Oversætter).

Sprogets historie

I slutningen af ​​1953 foreslog John Backus at begynde at udvikle et effektivt alternativ til assembler til programmering på PC'en IBM 704. I midten af ​​1954 var et udkast til specifikation af Fortran-sproget færdigt. Den første manual til Fortran udkom i oktober 1956, sammen med den første compiler, der blev sendt i april 1957. Compileren var ved at optimere, fordi kunderne nægtede at bruge et programmeringssprog på højt niveau, der genererede kode med en lavere ydeevne end assembler.

På det tidspunkt var samfundet skeptisk over for den nye måde at programmere på og troede ikke på, at Fortran ville gøre programmering hurtigere og mere effektiv. Med John Backus selvs ord var meget af hans arbejde rettet mod "at være doven." Han kunne frygtelig ikke lide at skrive programmer til IBM 701 i assembler.

Sproget er blevet bredt brugt af videnskabsmænd til at skrive beregningsintensive programmer. Inkluderingen af ​​den komplekse datatype har gjort den særligt velegnet til tekniske applikationer.

I 1960 var der versioner af Fortran til IBM 709, 650, 1620, 7090. Dens store popularitet tilskyndede konkurrerende computerproducenter til at skabe Fortran-kompilere til deres computere. Således var der i 1963 mere end 40 compilere til forskellige platforme. Derfor betragtes Fortran som det første udbredte programmeringssprog. [2]

Fortran i USSR

Fortran dukkede op i USSR senere end i Vesten, da Algol først i USSR blev betragtet som et mere lovende sprog. Kommunikationen mellem sovjetiske fysikere og deres kolleger fra CERN, hvor næsten alle beregninger i 1960'erne blev udført ved hjælp af Fortran-programmer, spillede en vigtig rolle i introduktionen af ​​Fortran.

Den første sovjetiske Fortran-kompiler blev oprettet i 1967 til Minsk-2- maskinen , men den fik ikke meget berømmelse. Den udbredte introduktion af Fortran begyndte efter oprettelsen i 1968 af FORTRAN-DUBNA-kompileren til BESM-6-maskinen. ES-computere, der dukkede op i 1972, havde allerede en Fortran-oversætter ("lånt" fra IBM/360 sammen med anden software)

Moderne Fortran. Fordele ved sproget

Fortran blev i vid udstrækning brugt hovedsageligt til videnskabelige og tekniske beregninger. Det er velegnet til at løse numeriske problemer, da mange biblioteker er blevet skrevet under dets eksistens. Det bruges den dag i dag, men ikke så meget på grund af det vellykkede design, men på grund af det store antal programmer, der er skrevet på det, hvilket ikke giver mening at ændre og desuden omskrive. Dens struktur bidrager til, at compileren rigtig godt kan optimere beregninger.

Der er et ordsprog blandt videnskabsmænd, at ethvert matematisk problem allerede har en løsning i Fortran, og faktisk kan man blandt tusindvis af Fortran-pakker finde en pakke til matrixmultiplikation og en pakke til løsning af komplekse integralligninger og mange, mange andre.

ALGOL 58 programmeringssprog

Årsagen til ALGOL-sprogets udseende

Fordi Fortran viste sig at være et så vellykket sprog, opstod der frygt i Europa for, at IBM ville dominere computerindustrien. . Det tyske selskab for anvendt matematik og mekanik (GAMM) har nedsat en komité, der skal udvikle et universelt sprog. Samtidig organiserede Association for Computing Machinery (ACM) en lignende komité i USA. Selvom europæerne havde nogle betænkeligheder ved amerikansk dominans, slog begge disse udvalg sig sammen til én.

Algol blev udviklet i 1958 på en ugelang konference på ETH (Zürich, Schweiz) som et alment programmeringssprog til en bred vifte af applikationer og yderligere forfinet af en komité nedsat af International Federation for Information Processing . Udvalget omfattede en række førende europæiske og amerikanske sprogvidenskabsmænd og ingeniører, herunder John Backus , John McCarthy , Peter Naur , Edsger Dijkstra og Joseph Wagsten , som senere stod i spidsen for udvalget for udviklingen af ​​Kobol-sproget .

I arbejdets gang opstod der store vanskeligheder af principløs karakter. For eksempel mindede et af medlemmerne af udvalget om "decimalstormen" - en ekstremt heftig diskussion mellem amerikanske og europæiske deltagere om, hvilket tegn der skulle bruges som adskillelse mellem heltal og brøkdele af et tal. Amerikanerne insisterede på en periode, mens europæerne forlangte at bruge kommaet, traditionelt for Europa. For at undgå konflikter om mindre spørgsmål blev det besluttet, at beskrivelsen af ​​Algol skulle være på tre niveauer, herunder niveauet for beskrivelser, publikationer og implementering. Mindre spørgsmål, såsom valget mellem et punktum og et komma eller det anvendte alfabet, blev flyttet til andet eller tredje niveau, hvilket gjorde det muligt at løse grundlæggende problemstillinger relativt hurtigt. På udgivelsesniveauet, som blev aftalt senere, var brugen af ​​nationale nøgleord og datapræsentationsstandarder (inklusive decimaltegnet) tilladt, implementeringsniveauet bestemte sproget ret strengt - ifølge det skulle der bygges oversættere.

I første omgang blev det foreslåede navn ALGOL (ALGOrithmic Language) afvist. Men da det blev almindeligt, måtte det officielle navn på IAL efterfølgende ændres til ALGOL 58.

En ny version dukkede op i 1960, og ALGOL 60 (med mindre ændringer foretaget i 1962) fra 60'erne til begyndelsen af ​​70'erne. i forrige århundrede var standarden for det akademiske programmeringssprog.

Det nye sprog fandt både tilhængere og kritikere. I USA blev Algol koldt modtaget, det var kun populært i det akademiske miljø, og selv da ikke overalt. De, der forsøgte at implementere Algol, stod over for en række vanskeligheder.

Så for eksempel blev det konstateret, at ingen af ​​de computere, der eksisterede dengang, understøttede input-output af alle 116 bogstaver, der udgjorde Algol-alfabetet.

Men i Europa blev Algol accepteret med entusiasme. Det vandt hurtigt popularitet i det akademiske miljø, kompilatorer blev udviklet overalt, hvoraf mange, på trods af vanskelighederne med implementering, viste sig at være meget succesfulde. Algol spredte sig fra Storbritannien til Fjernøsten af ​​USSR og blev både et universelt sprog til at beskrive algoritmer i videnskabelige publikationer og et middel til ægte programmering.

sproglige egenskaber. Dens styrker og svagheder

I Algol optrådte ideen om programmet ikke som en fri sekvens af kommandoer, men som en blokstruktur bestående af klart beskrevne og adskilte dele. Programmets hovedblok i Algol er selve hovedprogrammet. Den indeholder dens eksekverbare del, indesluttet i en blok, afgrænset af et par nøgleord, begyndelse og slutning, samt beskrivelser af underrutiner. Hver underrutine er et miniatureprogram, der har sine egne data beskrevet inde, en unikt defineret grænseflade i form af et navn og en liste over formelle parametre og en kodeblok.

I dette tilfælde kan der tildeles underblokke i blokken.

Strukturelle kontrolstrukturer blev identificeret: grene, sløjfer, sekventielle sektioner, der udfører betinget eller multiplicerer indlejrede sæt af udsagn, også begrænset af de samme start- og slutnøgleord.

For moderne programmører virker en sådan programstruktur indlysende, noget forældet og ikke altid praktisk, men på det tidspunkt, hvor Algol dukkede op, var alt dette et mærkbart skridt fremad. Programmer blev regelmæssige, hvilket gjorde det muligt at øge dem i volumen, holde dem synlige, forståelige, tilgængelige for analyse og korrektion. Det var på grundlag af Algol og dets efterkommersprog, at succesfuldt arbejde blev udført på det analytiske bevis for programmernes rigtighed.

I Algol blev der foreslået to måder at overføre parametre til en subrutine - ved navn og værdi. Hvis den anden metode ikke rejser nogen indvendinger (den er meget udbredt på langt de fleste sprog til i dag), så er den første (det antager, at navnet på den faktiske parameter overføres til proceduren og proceduren fungerer som om dens kode er skrevet ved referencepunktet, hvor i stedet for den formelle parameter er skrevet navnet på den faktiske) førte til vanskeligheder med implementeringen af ​​compilere og tilsynekomsten af ​​svære at opdage fejl.

LISP-programmeringssproget

Lisp-sproget blev foreslået af J. McCarthy i 1960 og er fokuseret på at udvikle programmer til løsning af ikke-numeriske problemer. Det engelske navn på dette sprog - LISP er en forkortelse af udtrykket LISt Processing (listebehandling) og understreger godt hovedområdet for applikationer. Begrebet "liste" viste sig at være meget rummeligt.

I form af lister er det praktisk at repræsentere algebraiske udtryk, grafer, elementer af endelige grupper, mængder, inferensregler og mange andre komplekse objekter. Lister er den mest fleksible form for informationsrepræsentation i computerens hukommelse. Ikke overraskende fangede et praktisk sprog specielt designet til håndtering af lister hurtigt.

Sprogudvikling

I løbet af næsten fyrre år af dets eksistens er en række dialekter af dette sprog dukket op: Common LISP, Mac LISP, Inter LISP, Standard LISP, etc.

Forskellene mellem dem er ikke af grundlæggende karakter og kommer i bund og grund til et lidt anderledes sæt indbyggede funktioner og en vis forskel i form af optagelse af programmer. Derfor kan en programmør, der har lært at arbejde på en af ​​dem, nemt mestre enhver anden.

De vigtigste fordele ved sproget

Den store fordel ved Lisp er dens funktionelle orientering, det vil sige, at programmering udføres ved hjælp af funktioner. Desuden forstås en funktion som en regel, der matcher elementerne i en bestemt klasse med de tilsvarende elementer i en anden klasse. Selve sammenligningsprocessen har ingen effekt på programmets drift, kun dets resultat er vigtigt - værdien af ​​funktionen. Dette gør det relativt nemt at skrive og debugge store softwaresystemer. Klarhed af programmer, en klar afgrænsning af deres funktioner, fraværet af vanskelige bivirkninger under deres udførelse er obligatoriske krav til programmering af så logisk komplekse opgaver som kunstig intelligens opgaver.

Disciplinen i programmering bliver især vigtig, når ikke én person, men en hel gruppe programmører arbejder på programmet.

COBOL-programmeringssproget

Cobol blev udviklet i 1959 og var primært beregnet til at skrive programmer til udvikling af forretningsapplikationer samt arbejde inden for det økonomiske område.

Sprogspecifikationen blev oprettet i 1959. Skaberne af sproget satte som deres mål at gøre det maskinuafhængigt og så tæt som muligt på naturligt engelsk. Begge mål blev nået med succes; COBOL-programmer anses for at være forståelige selv for ikke-specialister, da teksterne på dette programmeringssprog ikke behøver nogen særlige kommentarer (selvdokumenterende programmer).

Fordele og ulemper

COBOL er et meget gammelt sprog og blev brugt meget aktivt på et tidspunkt, så der er mange implementeringer og dialekter. En række standarder er blevet godkendt for sproget: i 1968, 1974, 1985 og 2002. Den seneste standard tilføjede understøttelse af det objektorienterede paradigme til sproget.

Sproget giver dig mulighed for at arbejde effektivt med en stor mængde data, det er fyldt med forskellige søge-, sorterings- og distributionsmuligheder. Andre fordele ved COBOL inkluderer normalt dets struktur. Ganske kraftfulde compilere fra dette sprog er udviklet til personlige computere. Nogle af dem er så effektive, at et program, der debugges på en personlig computer, nemt kan overføres til mainframe-computere.

Når man opregner ulemperne, kan man ikke undgå at huske, at kun de enkleste algebraiske beregninger kan programmeres på Cobol. Til komplekse tekniske beregninger er dette sprog ikke egnet.

Konklusioner om denne periode med udvikling af programmeringssprog

Ved computeriseringens begyndelse (i begyndelsen af ​​1950'erne) var maskinsprog det eneste sprog, som mennesket ikke havde opfundet på det tidspunkt. Sprog på lavt niveau har kun lidt lighed med et normalt, velkendt sprog. Store, uhåndterlige programmer er sjældent skrevet på sådanne sprog. Men hvis programmet er skrevet på et sådant sprog, vil det fungere hurtigt, optage en lille mængde og tillade et minimum antal fejl. Jo lavere og tættere på sprogets maskinniveau, jo mindre og mere specifikke er de opgaver, der tildeles hvert hold.

For at redde programmører fra programmerings barske maskinsprog blev der skabt højniveausprog (det vil sige ikke-maskinesprog), som blev en slags forbindelsesbro mellem menneskets og computerens maskinsprog. Sprog på højt niveau fungerer gennem oversættelsesprogrammer, der indtaster "kildekode" (en hybrid af engelske ord og matematiske udtryk, som en maskine læser) og i sidste ende får computeren til at udføre de passende kommandoer, der er givet i maskinsprog.

Med fremkomsten af ​​sprog på højt niveau var programmører i stand til at bruge mere tid på at løse et specifikt problem uden at blive distraheret af de meget subtile problemer med at organisere selve processen med at udføre en opgave på en maskine. Derudover markerede fremkomsten af ​​disse sprog det første skridt i oprettelsen af ​​programmer, der gik ud over forskningslaboratorier og finansafdelinger.

Opsummerer denne periode med udvikling af programmeringssprog, kan vi konkludere, at programmeringssprog på højt niveau (FORTRAN, ALGOL, LISP, COBOL osv.) ikke ligner assemblersprog. Sprog på højt niveau er designet specifikt til at kunne håndtere det problem, som programmet løser direkte. Som sådan kaldes de nogle gange proceduresprog, fordi de beskriver en procedure, der bruges til at løse et problem. Sprog på højt niveau er maskinuafhængige. Assembly sprogprogrammer er direkte relateret til den maskine, de skal udføres på.

Fordele ved programmeringssprog på højt niveau:

  1. Sprogets alfabet er meget bredere end det maskinelle, hvilket gør det meget mere udtryksfuldt og markant øger tekstens klarhed og klarhed;
  2. Sættet af operationer, der kan bruges, afhænger ikke af sættet af maskinoperationer, men er valgt af hensyn til bekvemmeligheden ved formulering af algoritmer til løsning af problemer af en bestemt klasse;
  3. Operatørkonstruktioner er specificeret i en menneskevenlig form;
  4. En lang række datatyper understøttes.

Ulempen ved sprog på højt niveau er den større størrelse af programmer sammenlignet med programmer på et lavt sprog. Derfor bruges sprog på højt niveau hovedsageligt til softwareudvikling af computere og enheder, der har en stor mængde hukommelse. Og forskellige undertyper af assembler bruges til at programmere andre enheder, hvor størrelsen af ​​programmet er kritisk.

Maskinsprog

Det vides ikke, hvor meget udviklingen af ​​programmering ville have accelereret, hvis Zuses udviklinger var blevet tilgængelige for andre videnskabsmænd i slutningen af ​​40'erne, men i praksis, med udviklingen af ​​computerteknologi, blev maskinsproget først udbredt . Med dens hjælp kunne programmøren indstille kommandoer, opererer med hukommelsesceller, fuldt ud ved at bruge maskinens muligheder. Essensen af ​​dette sprog er et sæt koder, som nødvendigvis er forståelige for den processor, der tilgås. Delene ("ord") af dette sprog kaldes instruktioner , som hver repræsenterer en elementær handling for den centrale processor, såsom at læse information fra en hukommelsescelle. Kun med en forståelse af design af computerhardware og kendskab til disse heltalskoder kunne man direkte styre processoren. Dengang var computere simple regnemaskiner, der blev brugt til forskellige matematiske beregninger. Men de udviklede sig, og brugen af ​​de fleste computere på maskinsprogsniveau er vanskelig, at læse og ændre sådanne programmer var særligt vanskeligt, hvilket blev forværret af brugen af ​​absolut hukommelsesadressering [3] . Derfor måtte brugen af ​​maskinkoder med tiden opgives.

For for eksempel at læse en blok af data fra en diskette kan en programmør bruge 16 forskellige kommandoer, som hver kræver 13 parametre, såsom bloknummeret på disken, sektornummeret på sporet osv. Når disken operationen er afsluttet, returnerer controlleren 23 værdier, der afspejler tilstedeværelsen og typer af fejl, der skal analyseres. Allerede ét opkald til processoren er besværligt, og fejlanalyse er fuldstændig utænkelig, især hvis du ikke skal arbejde med netop denne processor. Sættet af maskinsprogsinstruktioner er således meget afhængig af processortypen.

Forsamlingssprog

I løbet af 1950'erne steg efterspørgslen efter softwareudvikling, og programmerne blev meget store. Jeg skulle skrive en masse kode, selvom softwaren var meget enkel: på det tidspunkt var designet af skrivebordet enklere end i dag, programmerne arbejdede med elementære ting, og computeren var lige begyndt at marchere sejrrigt. Imidlertid blev programmerne mere og mere forvirrede, deres struktur blev mere kompliceret, fordi computerteknologien hele tiden udviklede sig. Så begyndte de at bruge specielle programmer - assemblere af programmer fra små stykker kode - assemblere. Et nyt udviklingstrin er begyndt.

Nu hvor der var brug for et effektivt program, blev der brugt nært beslægtede maskinorienterede assemblersprog i stedet for maskinsprog . Disse omfattede for eksempel Autocode, siden 1954 - IPL (forgængeren til LISP-sproget), siden 1955 - FLOW-MATIC. Nu begyndte folk at bruge mnemoniske kommandoer i stedet for maskinkommandoer.

Men selv at arbejde med assembler er ret kompliceret og kræver særlig træning. For eksempel, for Zilog Z80-processoren , instruerer maskininstruktion 00000101 processoren om at formindske sit register med én B. På samlesprog ville dette blive skrevet som DEC B.

Sprog på højt niveau

Det næste skridt blev taget i 1954, da udviklingen af ​​et sprog på højt niveau blev påbegyndt - Fortran ( FORTRAN - FORMULA OVERSÆTNING ), hvis compiler først dukkede op i april 1957 [4] .  Udviklingen af ​​et sådant sprog blev foranlediget af de nye muligheder i IBM 704 -computeren, der blev introduceret i 1954 , hvor indeksadressering og flydende kommaoperationer blev implementeret på hardwareniveau [5] . Efter ham dukkede nogle andre sprog op, for eksempel: LISP , ALGOL 58 , FAKTA . Sprog på højt niveau efterligner naturlige sprog ved hjælp af nogle talte sprogord og almindelige matematiske symboler. Disse sprog er mere menneskevenlige; de ​​kan bruges til at skrive programmer op til flere tusinde linjer lange. Betingede ord kunne, som det er sædvanligt for en person, meget mere enkelt udtrykke en kompleks programoperation fra bits. Imidlertid er de tidlige versioner af Fortran betydeligt ringere end senere begreber og sprog; det blev brugt til at skabe relativt simple programmer efter moderne standarder [6] .

I anden halvdel af 50'erne forsøgte et internationalt udviklingsteam at skabe et universelt programmeringssprog. Som et resultat dukkede ALGOL 58 ( English  ALGOrithmic Language ) op, som i mange henseender var efterfølgeren til Fortran. Nye begreber og generaliseringer blev føjet til det, konceptet med datatyper blev formaliseret, brugen af ​​identifikatorer af enhver længde var tilladt, når Fortran havde en grænse på 6 tegn [7] . Denne version af sproget var ret udkast, så i januar 1960 blev det andet møde i udvalget for dets udvikling afholdt i Paris , hvor det blev besluttet at foretage væsentlige ændringer. Den nye version blev kaldt ALGOL 60, de vigtigste innovationer i den var: konceptet med en blokstruktur, evnen til at skabe rekursive procedurer, automatiske arrays [8] . På trods af dets mange fordele er ALGOL aldrig blevet brugt i stor udstrækning, primært på grund af kompleksiteten af ​​dens implementering og manglen på support fra IBM [9] .

Senere dukkede COBOL (1959), Pascal (1970), C (1972) op.

Fremkomsten af ​​struktureret programmering

I slutningen af ​​1960'erne, med den stigende kompleksitet af programmer og den videre udvikling af softwareværktøjer, var der behov for at øge programmørernes produktivitet, hvilket førte til udviklingen af ​​struktureret programmering . Grundlæggeren af ​​denne metode er Edsger Dijkstra , som i 1968 udgav sit berømte brev "The Goto operator is regarded harmful" [10] , og også beskrev de grundlæggende principper for struktureret programmering [11] . Med udviklingen af ​​struktureret programmering var procedurer og funktioner den næste udvikling . Det vil sige, hvis der er en opgave, der udføres flere gange, så kan den erklæres som en funktion eller som en procedure og blot kalde den i udførelsen af ​​programmet. Den samlede programkode bliver i dette tilfælde mindre. Dette bidrog til skabelsen af ​​modulære programmer .

Den næste præstation var foreningen af ​​heterogene data, som bruges i et program sammen, til strukturer.

Strukturer  er sammensatte datatyper bygget ved hjælp af andre datatyper. For eksempel er tidsstrukturen opdelt i: timer, minutter, sekunder. Til gengæld beskrives timer, minutter og sekunder ved hjælp af enklere og mere elementære datatyper. Og i stedet for at arbejde med separate variabler, hvor det er let at blive forvirret, kan du gå til "tid"-strukturen, som allerede inkluderer timer, minutter og sekunder, og arbejde med det som med en enkelt type af ét format.

Struktureret programmering involverer veldefinerede kontrolstrukturer, programblokke , ingen ubetingede greninstruktioner ( GOTO), selvstændige underrutiner, støtte til rekursion og lokale variabler. Essensen af ​​denne tilgang ligger i muligheden for at opdele programmet i konstituerende elementer med en øget læsbarhed af programkoden [12] .

Funktionelle (anvendende) sprog blev også skabt (Eksempel: Lisp  - Engelsk  LISt Processing , 1958) og logiske sprog (Eksempel: Prolog  - Engelsk  PROgrammering i LOGic , 1972).

Selvom indførelsen af ​​struktureret programmering var vellykket, mislykkedes selv den, da programmet nåede en vis længde. For at kunne skrive et mere komplekst og længere program var der brug for en ny tilgang til programmering.

OOP

Ved brug af datastrukturer i programmet udvikles også de tilsvarende funktioner til at arbejde med dem. Dette førte til ideen om at kombinere dem og bruge dem sammen, så klasser dukkede op.

En klasse  er en datastruktur, der ikke kun indeholder variabler, men også funktioner, der arbejder med disse variable.

Kort sagt, denne præstation inden for programmering var meget stor. Nu kunne programmering opdeles i klasser og ikke hele programmet, bestående af 10.000 linjer kode, kunne testes, men programmet kunne opdeles i 100 klasser, og hver klasse kunne testes. Dette lettede i høj grad skrivningen af ​​softwareproduktet.

Som et resultat blev principperne for objektorienteret programmering udviklet i slutningen af ​​1970'erne og begyndelsen af ​​1980'erne . OOP kombinerer de bedste principper for struktureret programmering med nye koncepter for indkapsling , subtype polymorfi og arv .

Det første objektorienterede programmeringssprog er Simula - 67, som først introducerede klasser [13] . OOP-koncepter blev videreudviklet i Smalltalk-sproget , som også lagde grundlaget for vinduessystemer [14] . Nyere eksempler på objektorienterede sprog er Object Pascal , C++ , Java , C# og andre.

OOP giver dig mulighed for at organisere programmer optimalt ved at dele problemet op i dets komponentdele og arbejde med hver enkelt. Et program i et objektorienteret sprog, der løser et bestemt problem, beskriver faktisk den del af verden, der er relateret til dette problem.

Noter

  1. R. Bogatyrev. Arten og udviklingen af ​​scriptsprog. - PC World, 2001.
  2. E.K. Henner. Informatik, redigeret af E.K. Henner. - Akademiet, 2004.
  3. Sebesta, 2001 , s. 61.
  4. Sebesta, 2001 , s. 65.
  5. Sebesta, 2001 , s. 63-64.
  6. Sebesta, 2001 , s. 68.
  7. Sebesta, 2001 , s. 76.
  8. Sebesta, 2001 , s. 78.
  9. Sebesta, 2001 , s. 79.
  10. David R. Tribble. Gå til erklæring, der anses for skadelig: et tilbageblik  ( 37/11/2005). Dato for adgang: 13. februar 2015. Arkiveret fra originalen 30. august 2017.
  11. Edsger W. Dijkstra. Bemærkninger om struktureret  programmering . University of Texas (04.1970). Hentet 13. februar 2015. Arkiveret fra originalen 17. marts 2019.
  12. Yodan E. Strukturelt design og programdesign. — Trans. fra engelsk. — M.: Mir, 1979. — 415s. - S. 174.
  13. Sebesta, 2001 , s. 92-93.
  14. Sebesta, 2001 , s. 111.

Litteratur

  • Robert W. Sebesta. Grundlæggende begreber i programmeringssprog. - 5. udgave - M . : Williams, 2001. - 672 s. — ISBN 5-8459-0192-8 .

Bosova LL, Informatik: en lærebog for klasse 8. Bosova LL, Informatik: en lærebog for klasse 9. Semakin I.A., Informatik: Grundkursus. M. Dmitriev, N. Alekseev "Historien om computeræraen". M. Zaretskaya: Encyclopedia Moskva "Oplysningstiden". Yu.S. Golubev-Novozhilov: "Software". N.V. Makarova. - M .: Finans og statistik

Links