A számítástechnika fejlődése meghatározta a programozási nyelvi algoritmusok írására szolgáló új, változatos jelrendszerek megjelenésének folyamatát. Egy ilyen nyelv megjelenésének célja a programkód egyszerűsítése.
A programozási nyelveket általában öt generációra osztják. Az első generációba olyan nyelvek tartoznak, amelyeket az 50-es évek elején hoztak létre, amikor az első számítógépek csak megszülettek. Ez volt az első assembly nyelv, amelyet az "egy utasítás - egy sor" elve alapján hoztak létre.
A számítógép elektronikus eszközeinek fizikai működési elve olyan, hogy a számítógép csak egyesekből és nullákból álló parancsokat - feszültségesések sorozatát, azaz gépi kódot - képes elfogadni. A számítógépek fejlesztésének kezdeti szakaszában szükség volt arra, hogy az ember számítógép számára érthető nyelven, gépi kódokban írjon programokat. Minden utasítás egy műveleti kódból és az 1-esek és 0-ák különféle kombinációiban kifejezett operanduscímekből állt. Tehát a processzor minden programja egyesek és nullák sorozatának tekintette az időt.
Amint a számítógéppel való kommunikáció gyakorlata később megmutatta, az ilyen nyelv nehézkes és kényelmetlen. Használatakor könnyen el lehet hibázni, ha rossz sorrendben írunk 1-et vagy 0-t.. A programot nagyon nehéz irányítani. Emellett a gépi kódokban történő programozás során jól kell ismerni a számítógép belső felépítését, az egyes egységek működési elvét. És az a legrosszabb egy ilyen nyelvben, hogy ezen a nyelven a programok - nagyon hosszú egyesek és nullák sorozata - gépfüggőek, vagyis minden számítógépnek saját programot kellett készítenie, és a gépi kódokban történő programozás sok időt vesz igénybe, munka, fokozott figyelem a programozó részéről .
Hamarosan világossá vált, hogy a gépi kód generálása automatizálható. Már 1950-ben elkezdtek egy mnemonikus nyelvet, az assembly nyelvet használni a programok írásához. Az assembly nyelv lehetővé tette a gépi kód emberbarátabb formában történő bemutatását: a bináris kódok helyett betűkkel vagy rövidített szavakkal jelölték a parancsokat és az objektumokat, amelyeken ezek a parancsok végrehajtásra kerülnek, ami a parancs lényegét tükrözte. Például assembly nyelven a két szám összeadására vonatkozó utasítást az add szó jelöli, míg a gépi kódja a következő lehet: 000010.
Az Assembler egy alacsony szintű programozási nyelv. Az alacsony szintű programozási nyelv olyan programozási nyelv, amely egy adott típusú processzorra összpontosít, és figyelembe veszi annak jellemzőit. Ebben az esetben az "alacsony" nem azt jelenti, hogy "rossz". Ez azt jelenti, hogy a nyelvi operátorok közel állnak a gépi kódhoz, és konkrét processzorutasításokra összpontosítanak. Az assembly nyelv megjelenése nagyban megkönnyítette a programozók életét, hiszen ma már a szemükben hullámzó nullák és egyesek helyett a hétköznapi nyelvhez közeli szimbólumokból álló parancsokkal is tudtak programot írni. Akkoriban ez a nyelv újításnak számított, és azért volt népszerű, mert lehetővé tette kis programok írását, ami ezeknél a gépeknél lényeges kritérium.
De a nagy szoftverrendszerek fejlesztésének összetettsége a harmadik generációs nyelvek - a magas szintű nyelvek - megjelenéséhez vezetett. De az assembler használata ezzel még nem ért véget, szűk körökben a mai napig népszerű. Jelenleg különálló programtöredékek írására, vagy néha maguknak a programoknak az írására használják. Sok példa lehet, de a legszembetűnőbb az assembler használata illesztőprogramok, játékok és operációs rendszer betöltők írásakor. Ne felejtsük el, hogy ez a nyelv a hackerek körében is népszerű, mivel az eredményül kapott program sebessége sokkal nagyobb, mint egy magas szintű programozási nyelven írt program sebessége. Ennek az az oka, hogy a kapott programméret nagyon kicsi. A vírusirtó fejlesztők programjaik egyes moduljaiban assemblert is használnak, ami szintén biztosítja a gyorsaságot. [egy]
50-es évek közepe. gyors fejlődés jellemezte a programozás terén. A programozás szerepe a gépi kódokban csökkenni kezdett, új típusú programozási nyelvek kezdtek megjelenni, amelyek közvetítőként működtek a gépek és a programozók között. Eljött az ideje a programozási nyelvek második és harmadik generációjának.
A XX. század 50-es évek közepe óta. megkezdték az első magas szintű programozási nyelvek (magas szintű programozási nyelvek) létrehozását. Ezek a nyelvek nem voltak kötve egy adott típusú számítógéphez (gépfüggetlen). Mindegyikhez saját fordítóprogramot fejlesztettek ki . A fordítás egy magas szintű forrásnyelven írt program lefordítása egy ekvivalens programra alacsony szintű, gépi kódhoz közeli nyelven (abszolút kód, objektummodul, esetenként assembly nyelv).
Az első magas szintű Fortran nyelvet 1954 és 1957 között hozta létre John Backus által vezetett programozócsoport az IBM Corporationnél. Tudományos és műszaki számításokhoz készült. A Fortran név a FORmula TRANslator (Formula Translator) rövidítése.
A nyelv története1953 végén John Backus javasolta az IBM 704 PC-n történő programozáshoz az assembler hatékony alternatívájának fejlesztését. 1954 közepére elkészült a Fortran nyelv specifikációtervezete. A Fortran első kézikönyve 1956 októberében jelent meg, az 1957 áprilisában kiadott első fordítóval együtt. A fordító optimalizált, mert az ügyfelek nem voltak hajlandók olyan magas szintű programozási nyelvet használni, amely az assemblerénél alacsonyabb teljesítményű kódot generált.
Akkoriban a közösség szkeptikus volt az új programozási móddal kapcsolatban, és nem hitte, hogy a Fortran gyorsabbá és hatékonyabbá tenné a programozást. Magának John Backusnak a szavaival élve, munkája nagy része arra irányult, hogy "lusta legyen". Borzasztóan nem szeretett IBM 701-hez programokat írni assemblerben.
A nyelvet a tudósok széles körben alkalmazták számításigényes programok írásához. Az összetett adattípus beépítése különösen alkalmassá tette műszaki alkalmazásokra.
1960-ra már léteztek a Fortran verziói az IBM 709, 650, 1620, 7090 számítógépekhez. Nagy népszerűsége arra ösztönözte a versengő számítógépgyártókat, hogy készítsenek Fortran fordítókat számítógépeikhez. Így 1963-ra több mint 40 fordító létezett különböző platformokra. Ezért tartják a Fortran az első széles körben használt programozási nyelvnek. [2]
Fortran a SzovjetunióbanA Fortran a Szovjetunióban később jelent meg, mint Nyugaton, mivel eleinte a Szovjetunióban az Algolt ígéretesebb nyelvnek tartották. A Fortran bevezetésében fontos szerepet játszott a szovjet fizikusok kommunikációja a CERN munkatársaival, ahol az 1960-as években szinte minden számítást Fortran programokkal végeztek.
Az első szovjet Fortran fordítót 1967-ben hozták létre a Minsk-2 géphez , de nem kapott nagy hírnevet. A Fortran széles körű bevezetése a BESM-6 géphez készült FORTRAN-DUBNA fordító 1968-as megalkotása után kezdődött. Az 1972-ben megjelent ES számítógépeken már volt Fortran fordító (az IBM/360 -tól "kölcsönzött" más szoftverekkel együtt)
Modern Fortran. A nyelv előnyeiA Fortrant elsősorban tudományos és mérnöki számításokhoz használták széles körben. Kiválóan alkalmas numerikus feladatok megoldására, hiszen fennállása alatt számos könyvtárat írtak. A mai napig használatos, de nem annyira a sikeres tervezés, hanem a rengeteg ráírt program miatt, aminek nincs értelme változtatni, ráadásul átírni. Felépítése hozzájárul ahhoz, hogy a fordító nagyon jól tudja optimalizálni a számításokat.
A tudósok közt járják azt a mondást, hogy minden matematikai problémára már van megoldás a Fortranban, sőt, több ezer Fortran-csomag között lehet találni mátrixszorzó csomagot, komplex integrálegyenletek megoldására szolgáló csomagot, és még sok-sok mást.
Mivel a Fortran olyan sikeres nyelvnek bizonyult, Európában félelmek támadtak, hogy az IBM uralni fogja a számítógépipart. . A Német Alkalmazott Matematikai és Mechanikai Társaság (GAMM) bizottságot hozott létre egy egyetemes nyelv kidolgozására. Ezzel egy időben az Association for Computing Machinery (ACM) hasonló bizottságot szervezett az Egyesült Államokban. Annak ellenére, hogy az európaiaknak volt némi aggodalma az amerikai dominancia miatt, mindkét bizottság egybeolvadt.
Az Algolt 1958-ban az ETH -n (Zürich, Svájc) egy hetes konferencián fejlesztették ki általános célú programozási nyelvként számos alkalmazáshoz, és tovább finomította a Nemzetközi Információfeldolgozási Szövetség által felállított bizottság . A bizottságban számos vezető európai és amerikai nyelvtudós és mérnök szerepelt, köztük John Backus , John McCarthy , Peter Naur , Edsger Dijkstra és Joseph Wagsten , aki később a kobol nyelv fejlesztésével foglalkozó bizottságot vezette .
A munka során nagy, elvtelen jellegű nehézségek merültek fel. Például a bizottság egyik tagja felidézte a "tizedes vihar" - egy rendkívül heves vitát az amerikai és az európai résztvevők között arról, hogy melyik karaktert érdemes elválasztóként használni a szám egész és tört része között. Az amerikaiak ragaszkodtak egy időszakhoz, míg az európaiak az Európára hagyományosan vessző használatát követelték. A kisebb problémákkal kapcsolatos konfliktusok elkerülése érdekében úgy döntöttek, hogy az Algol leírása három szintből áll, beleértve a leírások, a publikációk és a megvalósítás szintjét. Az apróbb kérdések, mint például a pont és a vessző, illetve az alkalmazott ábécé közötti választás a második-harmadik szintre kerültek, ami lehetővé tette az alapvető kérdések viszonylag gyors megoldását. A később egyeztetett publikációs szinten megengedett volt a nemzeti kulcsszavak és adatmegjelenítési szabványok (beleértve a tizedesvesszőt is) használata, a megvalósítási szint elég szigorúan meghatározta a nyelvet - e szerint fordítókat kellett építeni.
Kezdetben a javasolt ALGOL (ALGOritmikus nyelv) nevet elutasították. De mivel általánossá vált, az IAL hivatalos nevét később ALGOL 58-ra kellett változtatni.
Egy új verzió 1960-ban jelent meg, az ALGOL 60 pedig (kisebb változtatásokkal 1962-ben) a 60-as évektől a 70-es évek elejéig. a múlt század volt az akadémiai programozási nyelv szabványa.
Az új nyelv hívekre és kritikusokra egyaránt talált. Az Egyesült Államokban az Algolt hidegen fogadták, csak az akadémiai környezetben volt népszerű, és akkor sem mindenhol. Azok, akik megpróbálták megvalósítani az Algolt, számos nehézséggel szembesültek.
Így például azt találták, hogy az akkoriban létező számítógépek egyike sem támogatta az Algol ábécét alkotó 116 betű be- és kimenetét.
De Európában az Algolt lelkesedéssel fogadták. Az akadémiai környezetben gyorsan népszerűvé vált, mindenhol folytak a fordítók fejlesztése, amelyek közül sok a megvalósítás nehézségei ellenére is nagyon sikeresnek bizonyult. Az Algol Nagy-Britanniából a Szovjetunió Távol-Keletére terjedt el, és egyszerre vált a tudományos publikációkban alkalmazott algoritmusok leírásának univerzális nyelvévé és a valódi programozás eszközévé.
nyelvi tulajdonságok. Erősségei és gyengeségeiAz Algolban a program ötlete nem parancsok szabad sorozataként jelent meg, hanem egyértelműen leírt és elválasztott részekből álló blokkszerkezetként. A program fő blokkja az Algolban maga a főprogram. Tartalmazza a végrehajtható részét egy blokkba zárva, amelyet a kezdet és a vége kulcsszópár határol, valamint az alprogramok leírását. Minden szubrutin egy miniatűr program, amelyben saját adatok vannak leírva, egy egyedileg definiált interfész név formájában és formális paraméterek listája, valamint egy kódblokk.
Ebben az esetben alblokkok allokálhatók a blokkban.
Strukturális vezérlési struktúrákat azonosítottunk: ágak, hurkok, szekvenciális szakaszok, amelyek feltételesen vagy többszörösen hajtják végre az egymásba ágyazott utasításkészleteket, amelyeket szintén ugyanazok a kezdő és záró kulcsszavak korlátoznak.
A modern programozók számára egy ilyen programstruktúra nyilvánvalónak, kissé elavultnak és nem mindig kényelmesnek tűnik, de az Algol megjelenése idején mindez észrevehető előrelépés volt. Rendszeressé váltak a programok, ami lehetővé tette a volumen növelését, láthatóvá, érthetővé, elemzésre, javításra hozzáférhetővé téve. Az Algol és leszármazott nyelvei alapján sikerült sikeres munkát végezni a programok helyességének analitikai bizonyítására.
Az Algolban két módot javasoltak a paraméterek szubrutinnak való átadására - név és érték alapján. Ha a második módszer nem emel kifogást (a nyelvek túlnyomó többségében a mai napig széles körben használják), akkor az első (feltételezi, hogy a tényleges paraméter neve átkerül az eljárásba, és az eljárás úgy működik, mintha a kódja a referenciapontra lenne írva, ahol a formális paraméter helyett a tényleges neve van írva), ami a fordítók megvalósításának nehézségeihez és nehezen észlelhető hibák megjelenéséhez vezetett.
A Lisp nyelvet J. McCarthy javasolta 1960-ban, és a nem numerikus problémák megoldására szolgáló programok fejlesztésére összpontosít. Ennek a nyelvnek az angol neve - LISP a LIST Processing (listafeldolgozás) kifejezés rövidítése, és jól hangsúlyozza alkalmazásának fő területét. A "lista" fogalma nagyon tágasnak bizonyult.
Listák formájában kényelmes az algebrai kifejezések, gráfok, véges csoportok elemei, halmazok, következtetési szabályok és sok más összetett objektum ábrázolása. A listák az információmegjelenítés legrugalmasabb formája a számítógép memóriájában. Nem meglepő, hogy egy praktikus nyelv, amelyet kifejezetten a listák kezelésére terveztek, gyorsan megfogott.
NyelvfejlesztésFennállásának csaknem negyven éve alatt számos dialektusa jelent meg ennek a nyelvnek: Common LISP, Mac LISP, Inter LISP, Standard LISP stb.
A köztük lévő különbségek nem alapvető természetűek, és alapvetően a beépített funkciók kissé eltérő halmazából és a felvételi programok formájának némi eltéréséből fakadnak. Ezért egy programozó, aki megtanult az egyiken dolgozni, könnyen elsajátíthatja bármelyik másikat.
A nyelv fő előnyeiA Lisp nagy előnye a funkcionális orientációja, vagyis a programozás funkciók segítségével történik. Ezen túlmenően a függvény olyan szabályként értendő, amely egy bizonyos osztály elemeit egy másik osztály megfelelő elemeivel egyezteti. Maga az összehasonlítás folyamata nincs hatással a program működésére, csak az eredménye a fontos - a függvény értéke. Ez viszonylag egyszerűvé teszi a nagy szoftverrendszerek írását és hibakeresését. A programok áttekinthetősége, funkcióik világos körülhatárolása, végrehajtásuk során a trükkös mellékhatások hiánya kötelező követelmény az olyan logikailag összetett feladatok programozásához, mint a mesterséges intelligencia feladatok.
A programozási fegyelem különösen akkor válik fontossá, ha nem egy ember, hanem programozók egész csoportja dolgozik a programon.
A Cobol -t 1959-ben fejlesztették ki, és elsősorban üzleti alkalmazások fejlesztésére szolgáló programok írásához, valamint gazdasági területen való munkához készült.
A nyelvi specifikációt 1959-ben hozták létre. A nyelv megalkotói azt tűzték ki célul, hogy gépfüggetlenné, a természetes angolhoz minél közelebb kerüljön. Mindkét célt sikeresen elértük; A COBOL programok még nem szakemberek számára is érthetőek, mivel ezen a programozási nyelven a szövegek nem igényelnek különösebb megjegyzést (öndokumentáló programok).
Előnyök és hátrányokA COBOL egy nagyon régi nyelv, és egy időben nagyon aktívan használták, ezért számos megvalósítás és dialektus létezik. A nyelvre számos szabványt hagytak jóvá: 1968-ban, 1974-ben, 1985-ben és 2002-ben. A legújabb szabvány az objektumorientált paradigma támogatását adta a nyelvhez.
A nyelv lehetővé teszi a hatékony munkavégzést nagy mennyiségű adattal, tele van különféle keresési, rendezési és terjesztési lehetőségekkel. A COBOL egyéb előnyei általában a strukturáltsága. Ebből a nyelvből meglehetősen hatékony fordítókat fejlesztettek ki személyi számítógépekhez. Némelyikük annyira hatékony, hogy a személyi számítógépen hibakereső program könnyen átvihető nagyszámítógépekre.
A hátrányokat felsorolva nem szabad elfelejteni, hogy a Cobolon csak a legegyszerűbb algebrai számítások programozhatók. Összetett mérnöki számításokhoz ez a nyelv nem alkalmas.
A számítógépesítés hajnalán (az 1950-es évek elején) a gépi nyelv volt az egyetlen nyelv, amelyet az ember addigra még nem talált fel. Az alacsony szintű nyelvek nem nagyon hasonlítanak egy normál, ismerős nyelvhez. Nagy, nehézkes programokat ritkán írnak ilyen nyelveken. De ha a program ilyen nyelven íródott, akkor gyorsan fog működni, kis mennyiséget foglal el és minimális számú hibát tesz lehetővé. Minél alacsonyabb és közelebb van a nyelv gépi szintjéhez, annál kisebbek és specifikusabbak az egyes csapatokhoz rendelt feladatok.
A programozók megmentése érdekében a programozás kemény gépi nyelvétől magas szintű nyelveket (vagyis nem gépi nyelveket) hoztak létre, amelyek egyfajta összekötő híd lettek az emberi és a számítógépes gépi nyelv között. A magas szintű nyelvek fordítóprogramokon keresztül működnek, amelyek beírják a "forráskódot" (angol szavak és matematikai kifejezések hibridje, amelyet a gép beolvas), és végül arra készteti a számítógépet, hogy végrehajtsa a megfelelő parancsokat, amelyeket gépi nyelven adnak meg.
A magas szintű nyelvek megjelenésével a programozók több időt szentelhettek egy adott probléma megoldásának, anélkül, hogy elvonták volna a figyelmüket a feladat gépen történő végrehajtásának folyamatának megszervezésével kapcsolatos nagyon finom kérdések. Ezenkívül ezeknek a nyelveknek a megjelenése jelentette az első lépést a kutatólaboratóriumokon és a pénzügyi osztályokon túlmutató programok létrehozásában.
Összegezve a programozási nyelvek fejlődésének ezt az időszakát, megállapíthatjuk, hogy a magas szintű programozási nyelvek (FORTRAN, ALGOL, LISP, COBOL stb.) nem hasonlítanak az assembly nyelvhez. A magas szintű nyelveket kifejezetten arra tervezték, hogy közvetlenül tudják kezelni a program által megoldott problémát. Mint ilyenek, néha eljárási nyelveknek is nevezik őket, mert egy probléma megoldására használt eljárást írnak le. A magas szintű nyelvek gépfüggetlenek. Az Assembly nyelvi programok közvetlenül kapcsolódnak ahhoz a géphez, amelyen végrehajtják őket.
A magas szintű programozási nyelvek előnyei:
A magas szintű nyelvek hátránya a programok nagyobb mérete az alacsony szintű nyelvű programokhoz képest. Ezért a magas szintű nyelveket elsősorban a nagy mennyiségű memóriával rendelkező számítógépek és eszközök szoftverfejlesztésére használják. Az assemblerek különböző altípusait pedig más eszközök programozására használják, ahol a program mérete kritikus.
Nem tudni, mennyivel gyorsult volna fel a programozás fejlődése, ha a 40-es évek végén Zuse fejlesztései más tudósok számára is elérhetővé válnak, de a gyakorlatban a számítástechnika fejlődésével a gépi nyelv először terjedt el . Segítségével a programozó memóriacellákkal operálva, a gép adottságait maradéktalanul kihasználva parancsokat tudott beállítani. Ennek a nyelvnek a lényege egy olyan kódkészlet, amely szükségszerűen érthető az éppen elért processzor számára. Ennek a nyelvnek a részeit ("szavait") utasításoknak nevezzük , amelyek mindegyike egy-egy elemi műveletet jelent a központi processzor számára, például információolvasást egy memóriacellából. Csak a számítógépes hardver tervezésének megértésével és ezen egész kódok ismeretével lehet közvetlenül irányítani a processzort. Akkoriban a számítógépek egyszerű számítástechnikai gépek voltak, amelyeket különféle matematikai számításokhoz használtak. De fejlődtek, és a legtöbb számítógép gépi nyelvi szintű használata nehézkes, az ilyen programok olvasása és módosítása különösen nehéz volt, amit az abszolút memóriacímzés alkalmazása súlyosbított [3] . Ezért idővel a gépi kódok használatát fel kellett hagyni.
Például egy adatblokk hajlékonylemezről történő olvasásához a programozó 16 különböző parancsot használhat, amelyek mindegyikéhez 13 paraméterre van szükség, például a lemezen lévő blokkszámra, a sávon lévő szektorszámra stb. A művelet befejeződött, a vezérlő 23 értéket ad vissza, amelyek tükrözik az elemezni kívánt hibák jelenlétét és típusait. Már egy processzorhívás is nehézkes, a hibaelemzés pedig teljesen elképzelhetetlen, főleg, ha nem ezzel a processzorral kell dolgozni. Így a gépi nyelvi utasítások halmaza nagymértékben függ a processzor típusától.
Az 1950-es években megnőtt a szoftverfejlesztés iránti igény, és a programok nagyon nagyokká váltak. Rengeteg kódot kellett írnom, pedig a szoftver nagyon egyszerű volt: akkoriban a desktop kialakítása egyszerűbb volt, mint ma, a programok elemi dolgokkal dolgoztak, a számítógép pedig éppen kezdett győzedelmeskedni. A programok azonban egyre zavarosabbá váltak, felépítésük bonyolultabbá vált, mert a számítástechnika folyamatosan fejlődött. Aztán elkezdtek speciális programokat használni - a programok összeállítóit kis kóddarabokból - összeszerelőket. A fejlődés új szakasza kezdődött.
Most, hogy szükség volt egy hatékony programra, a gépi nyelvek helyett szorosan kapcsolódó géporientált assembly nyelveket használtak . Ezek közé tartozott például az Autocode, 1954 óta - IPL (a LISP nyelv elődje), 1955 óta - FLOW-MATIC. Mostanra az emberek mnemonikus parancsokat kezdtek használni a gépi parancsok helyett.
De még az assemblerrel való munka is meglehetősen bonyolult, és speciális képzést igényel. Például a Zilog Z80 processzornál a 00000101 gépi utasítás arra utasítja a processzort, hogy csökkentse a regiszterét eggyel B. Az assembly nyelven ez így lenne írva DEC B.
A következő lépésre 1954-ben került sor, amikor megkezdődött egy magas szintű nyelv fejlesztése - a Fortran ( FORTRAN - FORmula TRANslator ), amelynek fordítója először 1957 áprilisában jelent meg [4] . Egy ilyen nyelv kifejlesztését az 1954-ben bemutatott IBM 704 számítógép új képességei ösztönözték , amelyben hardverszinten valósították meg az indexcímzést és a lebegőpontos műveleteket [5] . Őt követően néhány más nyelv is megjelent, például: LISP , ALGOL 58 , FACT . A magas szintű nyelvek a természetes nyelveket utánozzák néhány beszélt nyelvi szó és gyakori matematikai szimbólumok felhasználásával. Ezek a nyelvek emberbarátabbak, akár több ezer soros programírásra is alkalmasak. A feltételes szavak, ahogy az egy személynél megszokott, sokkal egyszerűbben fejezhetnének ki egy összetett programműveletet bitekből. A Fortran korai verziói azonban lényegesen gyengébbek a későbbi fogalmakhoz és nyelvekhez képest, a modern szabványok szerint viszonylag egyszerű programok létrehozására használták [6] .
Az 50-es évek második felében egy nemzetközi fejlesztőcsapat megpróbált egy univerzális programozási nyelvet létrehozni. Ennek eredményeként megjelent az ALGOL 58 ( angol ALGOrithmic Language ), amely sok tekintetben a Fortran utódja volt. Új fogalmak, általánosítások kerültek bele, formalizálták az adattípusok fogalmát, megengedett a tetszőleges hosszúságú azonosítók használata, amikor a Fortran 6 karakteres korlátot írt elő [7] . A nyelvnek ez a változata meglehetősen tervezet volt, így 1960 januárjában Párizsban tartották a fejlesztési bizottság második ülését , ahol jelentős változtatások mellett döntöttek. Az új verzió az ALGOL 60 nevet kapta, a főbb újítások benne a következők voltak: a blokkstruktúra koncepciója, rekurzív eljárások létrehozásának lehetősége, automatikus tömbök [8] . Számos előnye ellenére az ALGOL-t soha nem alkalmazták széles körben, elsősorban a megvalósítás bonyolultsága és az IBM támogatásának hiánya miatt [9] .
Később megjelentek a COBOL (1959), Pascal (1970), C (1972).
Az 1960-as évek végére a programok egyre összetettebbé válásával és a szoftvereszközök továbbfejlesztésével szükség volt a programozók termelékenységének növelésére, ami a strukturált programozás kifejlesztéséhez vezetett . Ennek a módszertannak az alapítója Edsger Dijkstra , aki 1968-ban publikálta híres levelét „A Goto operátort károsnak tartják” [10] , és ismertette a strukturált programozás alapelveit is [11] . A strukturált programozás fejlődésével az eljárások és a funkciók jelentették a következő fejlesztést . Vagyis ha van egy többször végrehajtott feladat, akkor azt függvényként vagy eljárásként deklarálhatjuk és egyszerűen meghívhatjuk a program végrehajtása során. A teljes programkód ebben az esetben kisebb lesz. Ez hozzájárult a moduláris programok létrehozásához .
A következő eredmény a heterogén adatok, amelyeket egy programban együtt használnak fel, struktúrákká egyesítése volt.
A struktúrák összetett adattípusok, amelyek más adattípusok felhasználásával készültek. Például az időszerkezet fel van osztva: órák, percek, másodpercek. Az órákat, perceket és másodperceket viszont egyszerűbb és elemibb adattípusok segítségével írja le. És ahelyett, hogy külön változókkal dolgoznánk, amiben könnyen összezavarodhatunk, áttérhetünk a már órákat, perceket és másodperceket is tartalmazó „time” struktúrára, és úgy dolgozhatunk vele, mint egyetlen típusú egy formátummal.
A strukturált programozás jól definiált vezérlési struktúrákat, programblokkokat , feltétel nélküli elágazás ( GOTO) utasításokat, önálló szubrutinokat, rekurzió támogatást és helyi változókat foglal magában. Ennek a megközelítésnek a lényege abban rejlik, hogy a program a programkód olvashatóságának növelésével alkotóelemekre bontható [12] .
Létrehoztak funkcionális (alkalmazó) nyelveket is (Példa: Lisp - English LIST Processing , 1958) és logikai nyelveket (Példa: Prolog - English PROgramming in LOGic , 1972).
Bár a strukturált programozás bevezetése sikeres volt, még az is kudarcot vallott, amikor a program elért egy bizonyos hosszúságot. Egy összetettebb és hosszabb program megírásához újfajta programozási megközelítésre volt szükség.
Amikor adatstruktúrákat használunk a programban, a megfelelő funkciókat is kidolgozzuk a velük való munkavégzéshez. Ez vezetett az ötlethez, hogy kombinálják és együtt használják őket, így megjelentek az osztályok.
Az osztály olyan adatstruktúra, amely nemcsak változókat tartalmaz, hanem olyan függvényeket is, amelyek ezekkel a változókkal működnek.
Röviden, ez az eredmény a programozás terén nagyon nagy volt. Most a programozást osztályokra lehetne osztani, és nem a teljes, 10 000 kódsorból álló programot lehetne tesztelni, hanem a programot 100 osztályra lehetne osztani, és minden osztályt tesztelni lehetne. Ez nagyban megkönnyítette a szoftvertermék megírását.
Ennek eredményeként az 1970-es évek végén és az 1980-as évek elején kidolgozták az objektum-orientált programozás alapelveit . Az OOP a strukturált programozás legjobb elveit ötvözi a beágyazás , az altípus-polimorfizmus és az öröklődés új koncepcióival .
Az első objektum-orientált programozási nyelv a Simula - 67, amely először vezetett be osztályokat [13] . Az OOP koncepciókat a Smalltalk nyelven fejlesztették tovább, amely az ablakos rendszerek alapjait is lefektette [14] . Az objektumorientált nyelvek újabb példái az Object Pascal , C++ , Java , C# és mások.
Az OOP lehetővé teszi a programok optimális rendszerezését azáltal, hogy a problémát részekre bontja, és mindegyikkel külön dolgozik. Egy objektum-orientált nyelvű program, amely egy bizonyos problémát megold, valójában a világnak ezzel a problémával kapcsolatos részét írja le.
Bosova LL, Informatika: tankönyv 8. évfolyamnak. Bosova LL, Informatika: tankönyv 9. évfolyamnak. Semakin I.A., Informatika: Alaptanfolyam. M. Dmitriev, N. Alekseev "A számítógépes korszak története". M. Zaretskaya: Encyclopedia Moscow "Felvilágosodás". Yu.S. Golubev-Novozhilov: "Szoftver". N.V. Makarova. - M .: Pénzügy és statisztika
Programozási nyelvek | |
---|---|
|