Primerjalna analiza jezikov visoke ravni. Predavanje: Visokonivojski programski jeziki. Primerjalne značilnosti. Razlike med strojnimi in algoritemskimi jeziki

Uvod

V sodobnem času informatizacije in informatizacije se družba sooča z nalogo implementacije vedno bolj kompleksnih algoritmov za obdelavo podatkovnih tokov v najkrajšem možnem času. Izvajanje te naloge izvajajo inženirji različnih specialnosti po vsem svetu. Za rešitev določenega problema na področju računalništva se rešujejo naslednje podnaloge:

· oblikovanje problema;

· zbiranje podatkov, potrebnih za rešitev problema;

· implementacija algoritma za obdelavo podatkov;

· prevod algoritma v strukturo, ki je sposobna rešiti dani algoritem - program ali programski paket;

· testiranje in odpravljanje napak v programu ali programskem paketu;

· uporaba programa ali programskega paketa pri dani nalogi;

· analiza dobljenih rezultatov.

Za izdelavo programa, ki je sposoben rešiti dane probleme, se uporabljajo različni programski jeziki. Trenutno na svetu obstaja veliko število programskih jezikov različnih ravni, ki se med seboj razlikujejo ne le v sintaksi, ampak tudi v strukturi dela s podatki. Kot predmet študija za pridobitev informacij o zmožnostih funkcionalno usmerjenih programskih jezikov na visoki ravni bosta obravnavana dva značilna predstavnika jezikov tega razreda - Pascal in C. Pri primerjalni analizi teh dveh jezikov bo treba določiti značilne lastnosti v njuni strukturi in izbrati najprimernejšega v smislu izvajanja dodeljenih nalog.

Primerjalna analiza visokonivojskih programskih jezikov C in Pascal

Jezik visoke ravni je vrsta računalniškega programskega jezika. Jeziki na visoki ravni so zasnovani tako, da izražajo potrebe programerja, ne pa zmogljivosti računalnika. Uporabljajo abstraktne podatkovne in nadzorne strukture, simbolne zapise in spremenljivke. Obstaja veliko jezikov na visoki ravni, vključno z BASIC, COBOL, Pascal, FORTRAN, Algol in C. Da bi lahko uporabljali programe, napisane v jezikih visoke ravni, jih je treba prevesti v strojne kode. Poglejmo kontrast med jezikoma visoke ravni C in Pascal.

Struktura programa

Za definiranje nizov imen spremenljivk se uporablja koncept identifikatorja. Identifikatorji v Pascalu so poljuben nabor znakov. Zahteve za identifikatorje:

· identifikator je sestavljen iz latiničnih črk in številk (velike in male črke se ne razlikujejo);

· identifikator se mora začeti s črko (»a1«, ne »1a«);

· identifikator je lahko sestavljen iz poljubnega števila znakov, vendar je prepoznanih le prvih 63;

· funkcijskih besed je prepovedano uporabljati kot identifikatorje.

Program je sestavljen iz operatorjev Pascal, ki so ločeni s simbolom ";". Za označevanje skupine operatorjev se uporabljajo operatorski oklepaji: začetek…..konec. Več stavkov, zaprtih v operatorskih oklepajih, imenujemo sestavljeni stavek. V besedilu programa zaviti oklepaji označujejo komentarje, ki so med izvajanjem programa prezrti. V besedilih predavanj bomo za komentiranje uporabljali tudi zavite oklepaje.

Struktura programa v jeziku Turbo Pascal:

· naslov, ime programa;

· priklop zunanjih modulov;

· opis konstant;

· vrste nastavitev;

· razdelek za deklaracijo spremenljivk;

· opis funkcij;

· opis postopkov;

· začetek glavnega programa;

telo glavnega programa;

· konec glavnega programa.

Spremenljivke, deklarirane znotraj glavnega programskega bloka, so postavljene v segment podatkov in jih prevajalnik inicializira na nič; Spremenljivke, deklarirane znotraj rutin, so deklarirane znotraj segmenta sklada in niso inicializirane. Celotno telo programa je toga struktura, v katero ni mogoče vnesti nobenih sprememb, ne da bi izgubili funkcionalnost projekta.

Struktura programov C. Identifikator v jeziku C je zaporedje številk, črk in posebnih znakov. V tem primeru je prvi znak črka ali poseben znak. Za pridobitev identifikatorjev lahko uporabite male ali velike črke latinske abecede. Poseben znak je lahko podčrtaj "_".

Dva identifikatorja, ki izhajata iz istih malih in velikih črk, se štejeta za različna. Na primer: abc, ABC, A328B, a328b. Prevajalnik dovoljuje poljubno število znakov v identifikatorju, vendar je pomembnih le prvih 31 znakov.

Identifikator se oblikuje na stopnji deklaracije spremenljivke, funkcije, strukture itd. Po tem se lahko uporabi v naslednjih izjavah programa, ki se razvija. Pri izbiri identifikatorja je pomembno upoštevati nekatere značilnosti. Prvič, ID in ključna beseda ne smeta biti enaka. Prav tako ne sme biti prekrivanja z rezerviranimi besedami ali imeni funkcij knjižnice prevajalnika SI.

Drugič, pomembno je posvetiti posebno pozornost uporabi podčrtaja »_« kot prvega znaka identifikatorja, saj so identifikatorji urejeni tako, da lahko po eni strani sovpadajo z imeni sistema. funkcij in spremenljivk »ali«, hkrati pa lahko programi ob uporabi takih identifikatorjev postanejo neprenosljivi, kar pomeni, da jih ni mogoče uporabljati na drugih vrstah računalnikov.

Tretjič, za identifikatorje, ki se uporabljajo za definiranje zunanjih spremenljivk, morajo veljati omejitve, ki jih oblikuje uporabljeni urejevalnik povezav. Poleg tega uporaba različnih različic urejevalnika povezav ali različnih urejevalnikov določa različne zahteve za imena zunanjih spremenljivk.

Ključne besede so rezervirani identifikatorji, ki imajo določen pomen. Uporabljajo se lahko le v skladu s pomenom, ki ga pozna prevajalnik SI. Tukaj je seznam ključnih besed: auto double intstruct break else long switch register tupedef char extern return void case float unsigned default for signed union do if sizeof volatile continue enum short while. Vendar pa so v nekaterih različicah izvedbe jezika SI rezervirane besede naslednje: _asm, fortran, blizu, daleč, cdecl, ogromno, pascal, prekinitev. Ključne besede daleč, ogromno, blizu omogočajo določitev velikosti kazalcev na pomnilniška področja.

Ključne besede _asm, cdecl, fortran, pascal se uporabljajo za organiziranje komunikacije s funkcijami, ki so napisane v drugih jezikih, kot tudi za uporabo ukazov zbirnega jezika neposredno v telesu prihodnjega programa SI. Ključnih besed ni mogoče uporabiti kot identifikatorje.

Fortran. Je prvi prevedeni jezik, ustvarjen v 50. letih prejšnjega stoletja. Fortran je bil prvi, ki je implementiral številne pomembne programske koncepte. Priročnost ustvarjanja programov je bila osnova za zmožnosti jezika. Fortran se še naprej aktivno uporablja v številnih organizacijah.

Kobol (Kobol). Je preveden jezik za uporabo v ekonomiji in poslovnih problemih, razvit v zgodnjih 60. letih. Cobol je ponudil zelo zmogljiva orodja za delo z velikimi količinami podatkov, shranjenih na različnih zunanjih medijih.

Algol (Algol). Prevedeni jezik, ustvarjen leta 1960. Leta 1968 Ustvarjena je bila različica ALGOL 68, ki je po svojih zmogljivostih še danes pred mnogimi programskimi jeziki.

Pascal. Jezik Pascal, ustvarjen v poznih 70-ih, v marsičem spominja na Algol, vendar je poostril številne zahteve za programsko strukturo in ima zmožnosti, ki mu omogočajo uspešno uporabo pri ustvarjanju velikih projektov. Nadaljnji razvoj tega jezika je bila bolj učinkovita različica - Object Pascal, ki je bil osnova sodobnega objektno orientiranega programskega jezika Delphi.

Osnovno. Ta jezik je na prvem mestu po priljubljenosti na svetu. Za ta jezik obstajajo prevajalniki in tolmači. Nastal je v 60. letih kot izobraževalni jezik in se ga je zelo enostavno naučiti. Nadaljnji razvoj tega jezika je bil jezik objektno usmerjenega programiranja (OOP). VISUAL BASIC ZA APLIKACIJO

C (Si). Ta jezik je bil ustvarjen v Bell Laboratory (ZDA). Načrtovana je bila zamenjava jezika asembler, da bi lahko ustvarjali enako učinkovite in kompaktne programe, hkrati pa ne bili odvisni od določenega tipa procesorja. Jezik C je v marsičem podoben Pascalu in ima dodatna sredstva za neposredno delo s pomnilnikom (kazalci). V 70. letih prejšnjega stoletja so bili v tem jeziku napisani številni aplikacijski in sistemski programi ter številni znani operacijski sistemi (Unix).

C++ (C++). Ta objektno usmerjeni jezik, razširitev jezika C, je bil razvit leta 1980. Uvaja številne zmogljive nove funkcije, ki so dramatično povečale produktivnost programerjev, vendar ustvarjanje kompleksnih in zanesljivih programov zahteva visoko usposobljene razvijalce.

Java (Java). Ta jezik je ustvaril Sun (ZDA) v zgodnjih 90-ih na osnovi C++. Zasnovan je tako, da poenostavi razvoj aplikacij, ki temeljijo na C++, tako da iz njih odstrani vse funkcije nizke ravni. Glavna značilnost tega jezika je, da ne prevaja v strojno kodo, temveč v od platforme neodvisno bajtno kodo (vsak ukaz zaseda en bajt). To bajtno kodo je mogoče izvesti s tolmačem - JVM (Java Virtual Machine), katerega različice so danes ustvarjene za vse platforme. Posebna pozornost pri razvoju tega jezika je namenjena dvema področjema: podpori za vse vrste mobilnih naprav in mikroračunalnikov, vgrajenih v gospodinjske aparate; izdelava platformno neodvisnih programskih modulov, ki lahko delujejo na strežnikih v globalnih in lokalnih omrežjih z različnimi operacijskimi sistemi.

C#. Glede na tehnološke kazalnike je podoben jeziku Java in je med prevedenimi in interpretiranimi jeziki. Program ni preveden v strojni jezik, temveč v strojno neodvisno kodo nizke ravni, bajtno kodo. Bajtno kodo nato izvede virtualni stroj.

Področja uporabe sodobnih računalnikov so tako obsežna in raznolika, da obstaja veliko število specializiranih jezikov na različnih področjih znanosti in tehnologije. Na primer programski jezik baze podatkov SQL, označevalni jezik hiperteksta HTML, programski jezik za naloge računalniške inženirske analize APDL sistema ANSYS in drugi.

Programski jeziki baz podatkov

Ta skupina jezikov se od algoritemskih jezikov razlikuje predvsem po težavah, ki jih rešujejo. Baza podatkov je datoteka (ali skupina datotek), ki je urejen nabor zapisov, ki imajo enotno strukturo in so organizirani po eni predlogi (običajno v obliki tabele). Baza podatkov je lahko sestavljena iz več tabel. Priročno je shranjevanje različnih informacij v baze podatkov iz imenikov, kartotečnih omar, računovodskih dnevnikov itd. V ta namen je bil ustvarjen strukturiran poizvedovalni jezik SQL (Structured Query Language). Temelji na zmogljivi matematični teoriji in omogoča učinkovito obdelavo baze podatkov z manipulacijo skupin zapisov namesto posameznih zapisov.

DBMS (Sistemi za upravljanje baz podatkov) so bili razviti za upravljanje velikih baz podatkov in njihovo učinkovito obdelavo. Skoraj vsak DBMS ima poleg tega, da podpira jezik SQL, svoj edinstven jezik, ki je osredotočen na funkcije tega DBMS in ni prenosljiv na druge sisteme. Danes obstaja pet vodilnih proizvajalcev DBMS na svetu: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix in Sybase. Njihovi produkti so namenjeni podpori hkratnega dela več tisoč uporabnikov v omrežju, baze podatkov pa so lahko shranjene v porazdeljeni obliki na več strežnikih.

S pojavom osebnih računalnikov so nastali tako imenovani namizni DBMS-ji. Prednik sodobnih programskih jezikov baze podatkov za osebne računalnike se šteje za DBMS dBase II, katerega jezik je bil interpretiran. Nato so bili zanj ustvarjeni prevajalniki in pojavili so se DBMS FoxPro in Clipper, ki podpirajo narečja tega jezika. Danes so podobne, a nezdružljive različice družine jezikov dBase implementirane v Microsoftov Visual FoxPro in Inpriseov Visual dBase.

Programski jeziki za internet

Z aktivnim razvojem svetovnega omrežja je bilo ustvarjenih veliko priljubljenih programskih jezikov, prilagojenih posebej za internet. Vsi se razlikujejo po svojih značilnostih: jeziki se tolmačijo, tolmači zanje se distribuirajo brezplačno, sami programi pa so v izvorni kodi. Takšni jeziki se imenujejo skriptni jeziki.

HTML. Znan jezik za pripravo dokumentov. Je zelo preprost in vsebuje osnovne ukaze za oblikovanje besedila, dodajanje slik, nastavitev pisav in barv, organiziranje povezav in tabel. Vse spletne strani so napisane v HTML ali uporabljajo njegove razširitve.

Perl. V 80. letih ga je razvil Larry Wall. Perl je bistveno močnejši od jezikov, kot je C. Vključuje številne pogosto uporabljene funkcije za delo z nizi, nizi, vsemi vrstami orodij za pretvorbo podatkov, upravljanje procesov, delo s sistemskimi informacijami itd.

VRML. Ustanovljen je bil leta 1994 za organizacijo virtualnih tridimenzionalnih vmesnikov na internetu. Omogoča vam, da v besedilni obliki opišete različne tridimenzionalne prizore, osvetlitev in sence, teksture (prevleke predmetov), ​​vrtite v katero koli smer, merite, prilagajate osvetlitev itd.

Modeliranje jezikov

Pri izdelavi programov in oblikovanju struktur baze podatkov se pogosto uporabljajo formalne metode njihovega predstavljanja - formalne notacije, s pomočjo katerih lahko vizualno predstavite tabele baze podatkov, polja, programske objekte in odnose med njimi v sistemu, ki ima specializiran urejevalnik in generator izvorne kode za programe, ki temeljijo na izdelanih modelih. Takšni sistemi se imenujejo CASE sistemi. Aktivno uporabljajo zapise IDEF, v zadnjem času pa je vse bolj razširjen UML.

Programski jeziki vizualnega vmesnika

Ročno programiranje oken, gumbov in menijev, znanih uporabniku, obdelava dogodkov miške in tipkovnice ter vključevanje slik in zvoka v programe je zahtevalo vedno več programerskega časa. Izhod iz te situacije se je pokazal z dvema pristopoma.

Prvi je standardizacija številnih funkcij vmesnika, ki omogoča uporabo knjižnic, ki so na primer na voljo v sistemu Windows. Posledično so se lahko aplikacije ob spremembi sloga GUI samodejno prilagodile novemu sistemu brez ponovnega programiranja.

Drugi revolucionarni korak je bil pojav vizualnega programiranja, ki izvira iz Visual Basica in je našlo svojo briljantno utelešenje v Delphiju in C++Builderju iz Borlanda. Vizualno programiranje je omogočilo zmanjšanje oblikovanja uporabniškega vmesnika na enostavne in vizualne postopke, ki omogočajo, da v minutah ali urah naredimo tisto, kar je prej zahtevalo mesece dela.

Najbolj priljubljeni univerzalni programski jeziki danes so: Basic, Pascal, C++, Java, Delphi, C#. Za vsakega od teh programskih jezikov danes obstaja veliko programskih sistemov, ki jih proizvajajo različna podjetja. Najbolj priljubljena so naslednja vizualna okolja za hitro načrtovanje programov za Windows:

Osnovno: Microsoft Visual Basic;

Pascal: Borland Delphi;

C++: Borland C++Bulider;

Java: Symantec Cafe.

Za razvoj strežniških in porazdeljenih aplikacij lahko uporabite programski sistem Microsoft Visual C++, izdelke Borland in skoraj vsa programska orodja Java.

Glavne stopnje tehnologije programiranja

Tehnologije programiranja vključujejo naslednje glavne faze: postavitev problema, razvoj matematičnega modela, razvoj algoritma, programiranje, razhroščevanje programa, prenos programa v delovanje in znanstveno-tehnična podpora (STS) programa, zaključek življenjskega cikla:

Oblikovanje problema

Na tej stopnji se določijo glavni cilji in funkcije, ki jih mora zagotavljati program, vhodni podatki, zahteve za vhodne podatke in izhodni podatki. Matematična formulacija problema se zmanjša na natančen opis začetnih podatkov, pogojev problema in ciljev njegove rešitve z uporabo matematičnih izrazov v splošni obliki. V tem primeru je treba uporabiti sistemski pristop, to pomeni, da je predmet treba proučiti celovito, upoštevati vse zunanje in notranje povezave ter njihov vpliv na končne rezultate. Problem je predstavljen v obliki "črne skrinjice", katere vhod so začetni podatki, omejitve vhodnih parametrov, zahteve za vhodne in izhodne parametre, izhod pa so vrednosti nastalih parametrov.

Razvoj matematičnega modela

Na tej stopnji se problem razgradi, formalizira, razvije matematični model in izbere metoda rešitve. Spodaj razgradnja se nanaša na razdelitev naloge na preproste bloke, od katerih se lahko vsak razvije neodvisno in je z drugimi deli programa povezan samo z vhodnimi in izhodnimi podatki. Za razdelitev naloge na bloke se najpogosteje uporablja funkcionalni pristop. Na primer, v vsaki računski nalogi lahko ločimo bloke, kot so vnos podatkov, računski blok, bloki za shranjevanje računskih rezultatov na diske, analizo računskih rezultatov, grafično predstavitev računskih rezultatov in tiskanje rezultatov.

Razvoj programskega algoritma

Na tej stopnji se razvije algoritem za rešitev problema. Razvoj algoritma vključuje določitev sestave funkcionalnih modulov in oblikovanje splošne sheme algoritma, razvoj algoritmov za funkcionalne module. Glede na kompleksnost problema je algoritem najprej predstavljen v splošni obliki (povečano). Nato je vsak od blokov algoritma razdeljen na manjše naloge tako, da na končni stopnji dobimo osnovne sheme algoritmov. Ta metoda načrtovanja se imenuje razvoj algoritma (načrtovanje) od zgoraj navzdol.

Osnovni pristopi k razvoju algoritmov in programov: konstrukcijsko načrtovanje; informacijsko modeliranje predmetnega področja in sorodnih aplikacij; objektno usmerjeno oblikovanje.

V jedru strukturna zasnova leži dosledna razgradnja, namensko strukturiranje na posamezne sestavine. Tipične tehnike strukturnega načrtovanja so: načrtovanje od zgoraj navzdol, kodiranje in testiranje programov; modularno programiranje; strukturirano programiranje.

Modularno programiranje temelji na konceptu modula. Modul– logično povezan niz funkcijskih elementov, zasnovanih v obliki ločenih programskih modulov, ki imajo en vhod in en izhod. Strukturirano programiranje temelji na modularni strukturi programskega izdelka in standardnih nadzornih strukturah algoritmov za obdelavo podatkov različnih programskih modulov. Strukturirano programiranje se uporablja predvsem pri programiranju posameznih modulov in je sestavljeno iz prevajanja programskega algoritma v algoritemski jezik z uporabo določenih konstruktov programskega jezika.

Informacijsko modeliranje predmetno področje in sorodne aplikacije vključuje določitev sestave in načina prikaza začetnih podatkov in rezultatov izračuna.

Objektno usmerjeno oblikovanje temelji na uporabi programiranja predmetov- funkcionalni moduli programske opreme, ki so predstavljeni na zaslonu monitorja v obliki elementov, na primer gumbov, seznamov, stikal itd., Ki imajo določen niz lastnosti, metod in dogodkov.

Programiranje

Program– urejeno zaporedje računalniških ukazov (navodil) za reševanje problemov. V splošnem teoretičnem smislu je programiranje teoretična in praktična dejavnost, povezana z ustvarjanjem programa. V ožjem smislu programiranje razumemo kot pisanje algoritma z uporabo ukazov in operaterjev enega od programskih jezikov - kodiranje.

Odpravljanje napak v programu

Razhroščevanje programa je sestavljeno iz preverjanja pravilnega delovanja algoritma za reševanje problema s testnimi primeri - testi, katerih rezultati rešitve so znani vnaprej; odpravljanje odkritih sintaksnih in logičnih napak.

Znanstvena in tehnična podpora

Znanstveno-tehnična podpora programa vključuje spremljanje delovanja programa in odpravljanje napak, ugotovljenih med delovanjem, dodelavo programa in njegovo izboljšavo v skladu z zahtevami naročnika.

Lastnosti algoritmov

Algoritem- to je natančno določeno (nedvoumno) zaporedje preprostih (elementarnih) dejanj, ki zagotavljajo rešitev katerega koli problema iz določenega razreda. Za algoritme so značilne naslednje splošne lastnosti:

1) diskretnost- algoritem je mogoče razdeliti na ločene korake (akcije), od katerih je izvedba vsakega možna šele po zaključku vseh operacij v prejšnjem koraku;

2) determinizem- nabor vmesnih količin v katerem koli koraku je enolično določen s sistemom količin, ki so na voljo v prejšnjem koraku;

3) elementarni koraki- zakon za pridobitev naknadnega sistema količin iz prejšnjega mora biti enostaven in lokalni;

4) fokus- če metoda pridobivanja poznejših vrednosti iz katerih koli začetnih ne vodi do rezultata, je treba navesti, kaj naj se šteje za rezultat algoritma;

5) množični značaj- možno je izbrati začetni sistem količin
nek niz (tj. en algoritem se lahko uporabi za
rešitve za razred problemov).

Formalizacija predstavitve algoritmov

Ker je vsak algoritem niz vhodnih, vmesnih in izhodnih podatkov, se za njegov opis uporablja poseben jezik in sistem transformacijskih pravil. Naravni jeziki so spremenljivi, dvoumni in redundantni ter niso primerni za pisanje algoritmov, ki zahtevajo nedvoumno gotovost. Najenostavnejši način za odpravo teh pomanjkljivosti je konstruiranje umetnih jezikov s strogo sintakso in popolno semantično gotovostjo. Takšni jeziki se imenujejo formalno.

V katerem koli jeziku lahko ločimo dve komponenti - sintakso in semantiko.

Sintaksa(jezikovna slovnica) - skupek pravil, po katerih so zgrajene konstrukcije v danem jeziku.

Semantika- pomenska plat jezika, povezuje jezikovne enote in konstrukcije z nekim zunanjim svetom, da bi opisali, kateri jezik se uporablja.

Sintakso formalnega jezika določa določen sistem pravil, ki iz majhnega nabora začetnih konstrukcij generira vse njihove dopustne kombinacije, tj. jezik se oblikuje kot niz kombinacij začetnih konstrukcij, ki jih dovoljujejo pravila. Poleg tega sintaksa vsebuje izjavo o pogoju, ki velja za celotne jezikovne konstrukcije in ne velja drugače. Najbolj vizualni način za opis formalnega jezika je sintaktični diagram.

Sintaksni diagram- diagram (grafični prikaz) opisa neterminalnega simbola predmetnega jezika. Vezje ima vedno en vhod in en izhod, njegovi elementi pa so med seboj povezani z usmerjenimi črtami, ki označujejo vrstni red objektov v določenem neterminalnem simbolu.

Pri predstavitvi algoritmov lahko ločimo dve glavni obliki: simbolično(verbalno) in grafični.

Obrazec za vpis z malimi črkami je glavni način predstavitve algoritmov kot zaporedja vrstic, od katerih vsaka vsebuje opis enega ali več osnovnih dejanj. Logika algoritma (vrstni red dejanj) je določena eksplicitno z navedbo oznake naslednje vrstice (v obliki zaporednih številk ali črk) ali implicitno - privzeto se prenese v vrstico, ki sledi izvedeni. Ta metoda vam omogoča, da zapišete algoritemsko notacijo za katerega koli izvajalca - tako osebo kot tehnično napravo. Pomanjkljivost male črke je neprijetnost celostnega dojemanja njene logične strukture.

Oblike črtnega zapisa algoritmov so:

1) besedna oblika po korakih - oštevilčeno zaporedje vrstic, ki vsebujejo opise določenih dejanj v naravnem jeziku;

2) formula - vnos niza dejanj, ki zagotavljajo obdelavo numeričnih, simbolnih ali logičnih podatkov;

3) psevdokoda - delno formaliziran jezik, namenjen "človeškemu" izvajalcu, ki omogoča pisanje algoritmov v obliki, ki je blizu angleškim programskim jezikom;

4) programski jezik - umetni formaliziran jezik, zasnovan za pisanje algoritma za "računalniškega" izvajalca, katerega metajezik je naravni jezik.

Grafična oblika zapisa oz blokovni diagram za predstavitev posameznih blokov algoritma uporablja nabor geometrijskih oblik v skladu z zahtevami GOST 19.701–90 „Sheme algoritmov, programov, podatkov in sistemov, simboli in pravila za izvajanje enotnega sistema programske dokumentacije. ” Prednost te oblike zapisa je njegova jasnost: diagram poteka vam omogoča, da pokrijete celoten algoritem naenkrat, spremljate različne možnosti za njegovo izvedbo in vam omogoča ustvarjanje zapiskov v naravnih in formalnih jezikih.

Proceduralno, objektno in logično programiranje

Ker je asembler strojno odvisen jezik, se program, napisan v njem, lahko izvaja le na tehnologiji (vrsti procesorja), katere asembler je bil uporabljen. Te pomanjkljivosti ni v jezikih na visoki ravni, ki niso osredotočeni na ukazni sistem določenega stroja, temveč na sistem operatorjev, ki so značilni za pisanje določenega razreda algoritmov (operatorji dodeljevanja, pogojni operatorji, zanke, vhodno-izhodni operatorji). ).

Tabela 1.3 Razlike v konceptih programiranja

Koncept programiranja Predstavitev programov in podatkov Izvedba programa Povezava delov programa med seboj
Proceduralno Program in podatki so nepovezani elementi Zaporedno izvajanje stavkov Možno le preko skupno obdelanih podatkov
Objektno usmerjen Podatki in metode za njihovo obdelavo so zajeti v en objekt Zaporedje dogodkov in reakcije predmetov na te dogodke Posamezni deli programa lahko podedujejo metode in podatkovne elemente drug od drugega
Boolean Podatki in pravila za njihovo obdelavo so združeni v eno samo logično in strukturno celoto Preoblikovanje logičnega izobraževanja po logičnih pravilih Program je težko razdeliti na ločene neodvisne dele

Kontrolna vprašanja:

1. Kaj vključuje osnovna programska oprema?

2. Katera programska oprema je povezana z aplikacijsko programsko opremo?

podpora za okvir?

3. Poimenujte klasifikacijske značilnosti operacijskih sistemov.

4. Poimenujte najbolj znane operacijske sisteme, ki se uporabljajo na osebnih računalnikih.

5. Kaj je datotečni sistem, čemu je namenjen?

6. Kaj je datoteka?

7. Kakšno je ime datoteke, končnica in specifikacija? Navedite primere pisanja specifikacije datoteke.

8. Poimenujte najpogostejše končnice imen datotek. Kaj pomenijo?

9. Pojasnite, kaj je maska. Navedite primere uporabe mask.

10. Kaj je atribut datoteke, katere atribute ima datoteka?

11. Kaj je imenik? Katere podatke vsebuje?

12. Kaj je specifikacija datoteke? Navedite primere.


2 OSNOVNA PROGRAMSKA OPREMA INFORMACIJSKE TEHNOLOGIJE

Programski jezik je umetni jezik. Od naravnega jezika se razlikuje po omejenem številu besed, katerih pomeni so razumljivi prevajalcu, in po zelo strogih pravilih pisanja ukazov ali stavkov. Kombinacija teh zahtev tvori sintaksa jezika. In pomen vsakega ukaza in drugih jezikovnih konstruktov je njegov semantika. Kršitev obrazca za snemanje programa ima za posledico, da prevajalec izda sporočilo o sintaksna napaka, vendar pravilno napisano, vendar ne ustreza algoritmu, do katerega vodi uporaba ukazov pomenske napake.(to log. osh) Postopek iskanja napak v programu se imenuje testiranje, postopek izločanja pa je odpravljanje napak.

prevajalec.

Prevajalnik Interpret. Takoj vzamejo stavke iz programskega besedila, analizirajo njegovo strukturo in jo nato takoj izvedejo. Šele po uspešni izvedbi trenutnega stavka bo tolmač prešel na naslednjega. Poleg tega, če se isti operator večkrat ponovi, ga tolmač vsakič analizira, kot da bi bil prvi. Z uporabo tolmača lahko kadar koli zaustavite program, pregledate vsebino pomnilnika, organizirate dialog z uporabnikom, to pomeni, da je tolmač uporaben kot orodje za učenje programiranja. Pravi programski sistemi združujejo tehnologije prevajanja in interpretacije. Npr.: med postopkom odpravljanja napak v programu se lahko izvede korak za korakom, da se pridobi neobjektna koda za odpravljanje napak.

Obstajajo 3 stopnje:

    prevajanje – izdelava objektne datoteke *.obj

Povežite se z uporabo USES

Programski jezik se osredotoča na določeno vrsto procesorja programski jezik nizke ravni, To pomeni, da so jezikovni operaterji osredotočeni na specifične ukaze procesorja (Assembler je najnižja raven, predstavlja vsak ukaz strojne kode z uporabo simbola - mnemonike). Nedvoumna pretvorba enega strojnega ukaza v en ukaz asemblerja se imenuje transliteracija. Podobni jeziki se uporabljajo za pisanje sistemskih aplikacij, gonilnikov in modulov za povezovanje z nestandardno opremo.

Visokonivojski programski jeziki so veliko bližje in bolj razumljivi ljudem kot računalnikom. Posebnosti arhitektur niso upoštevane, => programi v teh jezikih se lahko prenesejo na druge platforme, kjer so prevajalci.

Generacije:

I 50x 1. zbirni jezik, narejen po principu 1 vrstica 1 ukaz. (nesimbolično)

II do 50-ih Simbolni asembler je bil uveden koncept spremenljivke (daje relativni naslov), lahko bi rekli prvi polnopravni programski jezik.

III 60. Nastali so visokonivojski jeziki Fortran, Basic, Pascal itd. Produktivnost programerjev se je dramatično povečala.

VI zač 70x Obdobje jezikov, namenjenih izvajanju velikih projektov, za povečanje hitrosti zanesljivosti, se nadaljuje. -Problemsko usmerjeni jeziki, jeziki usmerjeni v velike posebne naloge (ozko specialno področje). Vanje so vgrajeni zmogljivi operaterji, ki omogočajo pisanje kompleksne funkcionalnosti v eno vrstico (DBMS).

V Od 90. let so bili vizualni jeziki ustvarjeni kot sistem za samodejni razvoj aplikacijskih programov z uporabo orodij za vizualni razvoj. V idealnem primeru vizualna orodja, ki jih lahko uporabljajo neprogramerji. Dva vidika 1 - uporaba vizualnih komponent, 2 - kodiranje.

Programski sistem:

Vključuje vse, kar potrebujete za ustvarjanje in odpravljanje napak v programih

    urejevalnik besedil

    prevajalnik (prevod iz visoke kode v strojno kodo) skupna združljiva razširitev *.obj

    komunikacijski urejevalnik – povezovalec (Link).

Izvorno besedilo programa je sestavljeno iz več modulov, od katerih je vsak sestavljen v ločene datoteke, te objektne datoteke so združene v eno celoto, poleg tega so dodane strojne kode podprogramov, ki izvajajo standardne funkcije, vsebovane so v standardnih knjižnicah priložen prevajalniku, podprogram, ki ima te kode (system.tpu - v Pascalu). Povezovalnik (linker) sestavi program, vključno z vsemi programiranimi programi in standardnimi podprogrami, ter izračuna realne naslove.

Vse asociacije se izvedejo v zahtevanem formatu (format je določen z vrsto OS), rezultat je datoteka s pripono *.exe, ki se postavi v pravi pomnilnik RAM, šele nato se lahko zažene izvršljiva datoteka. Rezultat povezovalnika je zagonski modul s končnico *.exe, *.com.

    Razpoložljivost knjižnic standardnih funkcij.

    Programski sistem mora imeti razhroščevalnik - izvajanje programa korak za korakom, opazovanje, kako se spreminja vrednost spremenljivke.

Stopnje programskega jezika:

Jeziki so blizu našemu pogovoru; potrebna je povezava z nekaj nestandardne opreme. Da zagotovimo, da program zavzame malo pomnilnika in časa izvajanja ter je hitrejši, se obrnemo na sestavljanje.

    Fortran je čisto inženirski jezik. Programi so zelo kompaktni. Jezik, ki se uporablja samo poklicno

    CABOL – računovodski jezik je angleščina. rus. Različice

    Algol (68) - naj bi nadomestil Fotran, vendar zaradi zapletenosti strukture ni prejel distribucije

    Pascal - prevzel ideje Algola, poostril zahteve za strukturo programa

    C - prvotno razvit kot masovni izdelek in načrtovan za zamenjavo asm, ima dodatne funkcije

    C++ - objektno usmerjena razširitev jezika C

    Java temelji na C++. Poskušali smo izključiti funkcije nizke ravni iz C++. Posebnost je, da se ne prevaja v strojno kodo, temveč v bajtno kodo, neodvisno od platforme.

    Programski jeziki za internet – html, perl, vrml

Vizualne lupine:

    Basic - 1. mesto po priljubljenosti na svetu je bilo ustvarjeno za učenje Microsoft Visual Basic

    Pascal – Delphi – priljubljen za delo z bazo podatkov Borland Delphi

    Html, perl, php – za internet

    C++ Borland C++ Builder

    Java Symantec Cafe (mobilni telefoni, gospodinjski aparati)

2. Prevajalniki: namen, razvrstitev, primeri. Faze prehoda računalniških programov

Prevajalec: prevajalnik in tolmač. Če želite pridobiti delujoč program, je treba besedilo prevesti v strojno kodo; prevajalec.

Prevajalnik– prejme objektno kodo. To so programi, ki obdelujejo celotno programsko besedilo, torej izvorno kodo. Najprej skenira besedilo, da poišče sintaksne napake, nato izvede nekaj semantične analize, po kateri se besedilo samodejno prevede ali prevede v strojni jezik. Pogosto se pri generiranju strojne kode optimizacija izvede z uporabo niza metod, ki izboljšajo delovanje programa. Posledično je dokončan program, imenovan objektna koda, kompakten in učinkovit ter ga je mogoče prenesti na druge računalnike s procesorjem, ki podpira ustrezno strojno kodo. Interpret. Takoj vzamejo stavke iz programskega besedila, analizirajo njegovo strukturo in jo nato takoj izvedejo. Šele po uspešni izvedbi trenutnega stavka bo tolmač prešel na naslednjega. Poleg tega, če se isti operator večkrat ponovi, ga tolmač vsakič analizira, kot da bi bil prvi. Z uporabo tolmača lahko kadar koli zaustavite program, pregledate vsebino pomnilnika, organizirate dialog z uporabnikom, to pomeni, da je tolmač uporaben kot orodje za učenje programiranja. Pravi programski sistemi združujejo tehnologije prevajanja in interpretacije. Npr.: med postopkom odpravljanja napak v programu lahko poteka korak za korakom. za prejemanje neobjektne kode za odpravljanje napak.

Obstajajo 3 stopnje:

Izvorno besedilo programa v Pascalu mora biti shranjeno v datoteki s pripono .pas. To datoteko obdela prevajalnik, rezultat pa je objektna koda, ki se samodejno shrani v datoteko s pripono .tpu (turbo Pascal enota), program obdela povezovalnik - dobi se nakladalni modul, ki se samodejno shrani v datoteko s končnico .exe. Nato gre program v izvedbo (pri tem lahko povežemo izvorne podatke), nato dobimo rezultate.

    prevajanje – ustvarjanje objektne datoteke *.obj, *.tpu

    povezovanje – ustvari izvršljivo datoteko *.exe

    izvedba - rezultat oblikovan po fazah

Po prevajanju v Delphi dobimo razširitev *.dcu - statična knjižnica

Povežite se z uporabo USES

Objektno orientirano programiranje

Objektno orientirano programiranje je tehnologija programiranja, pri kateri se na program gleda kot na niz ločenih objektov, ki nato vsebujejo nize podatkovnih struktur in postopkov, ki medsebojno delujejo z drugimi objekti.

Pascal, Visual Basic, Java

Z vidika principov programiranja lahko programske jezike razdelimo v 3 skupine: proceduralne, funkcionalne in logične.

Osnova vseh programskih jezikov so proceduralni jeziki, saj je osnova delovanja računalnika (centralnega procesorja) na najnižji ravni zmožnost izvajanja samo primitivnih ukazov, ki jasno kažejo, kaj naj procesor počne. Druge vrste jezikov se lahko obravnavajo kot nadgradnje proceduralnih programskih jezikov. Ti jeziki (funkcionalni in logični) vsebujejo in izvajajo določene matematične modele, ki omogočajo učinkovitejše programiranje določenih specifičnih vrst problemov. Toda prevajalci (prevajalniki), knjižnice in druga orodja teh programskih jezikov se še vedno izvajajo z uporabo proceduralnih programskih jezikov.

Proceduralni programski jeziki

Program je sestavljen iz zaporedja nujnih ukazov (ki izrecno določajo, katere transformacije je treba izvesti na podatkih). Podatki so shranjeni v obliki spremenljivk.

Logični programski jeziki

Programski jeziki te vrste temeljijo na formalni logiki in Boolovi algebri. Program ne vsebuje eksplicitnih algoritmov. Podan je opis pogojev problema in logičnih odnosov, po katerih programski sistem zgradi sklepno drevo in poišče rešitve problema.

Funkcionalni programski jeziki

Funkcionalno programiranje temelji na uporabi seznamov in funkcij. Spremenljivke morda sploh niso prisotne.

Primer proceduralnega jezika je programski jezik Pascal. Jezik Prolog je logični programski jezik, jezik Lisp pa funkcionalni programski jezik.

Programi v logičnih in funkcionalnih programskih jezikih imajo relativno nizko zmogljivost zaradi zapletenosti implementacije.

Nizkonivojski jeziki (strojna koda in asembler) so glede na načela delovanja proceduralni programski jeziki. Toda to so jeziki tako nizke ravni, da izraz "proceduralni" zanje sploh ne velja. Bolje jih je imenovati imperativni programski jeziki.

Večina sodobnih proceduralnih programskih jezikov se razvija v smeri objektno usmerjenega programiranja.



Objektno orientirano programiranje

Spremenljivke in funkcije so združene v objekte in razrede. Zahvaljujoč temu je dosežena višja stopnja strukturiranja in abstrakcije programa. Nekatere objekte (razrede) je mogoče generirati iz drugih objektov (razredov). V objektno usmerjenih jezikih se pojavljajo koncepti, kot so dedovanje, polimorfizem in pozna vezava.

Programski jezik Java zavzema posebno mesto. To je posledica dveh njegovih odličnih lastnosti. Prvič, implementacija tega jezika ni vezana na določeno arhitekturo računalniške naprave (računalnik, mobilni telefon itd.) in na določen operacijski sistem. Program Java je preveden v vmesno kodo, ki jo je mogoče izvesti na katerem koli računalniku, v katerem se izvaja virtualni stroj Java. Če želite program Java prenesti na nov tip računalnika, vam ni treba prepisati prevajalnika jezika Java in drugih razvojnih orodij. Poleg tega ni potrebe po izvorni kodi programov Java in njihovem ponovnem prevajanju. Dovolj je prepisati virtualni stroj Java za novo arhitekturo računalnika in na njem izvajati aplikacije Java v vmesni kodi, enako za katero koli arhitekturo računalnika.

Drugič, v jeziku Java lahko razvijete ne samo standardne programe, temveč tudi posebne vrste aplikacij, tako imenovane programčke in servlete, ki so naravno vgrajeni v internetne aplikacije (strani HTML in spletne strežnike). To daje Javi zelo visoko stopnjo avtonomije in jo naredi za programski jezik prihodnosti. Java je proceduralni, objektno usmerjen programski jezik.

Vzporedni programski jeziki se ločijo ločeno od proceduralnih programskih jezikov. Ti jeziki so zasnovani za ustvarjanje programov, ki lahko v celoti izkoristijo potencial večprocesorskih računalnikov. Program v vzporednem programskem jeziku opisuje več procesov, ki se izvajajo neodvisno drug od drugega na svojem procesorju in si ob pravem času izmenjujejo podatke. Primer nizkonivojskega programskega jezika za transračunalnike (posebna vrsta vzporednega računalnika) je programski jezik Occam. Primer visokonivojskega programskega jezika, ki podpira paralelizem, je programski jezik Modula-2. Očitno vzporedni programski jeziki postajajo preteklost in njihove funkcije za paralelizacijo programov se izvajajo bodisi na procesorski ravni (večjedrni procesorji), ali pa te funkcije prevzamejo operacijski sistemi.

Skriptni (označeni)-deklarativni programski jeziki

V zadnjem času so postali razširjeni označeni jeziki za opisovanje različnih podatkovnih struktur, predvsem povezanih s prenosom informacij prek interneta. Eden od teh jezikov je XML - označeni jezik za opisovanje drevesnih struktur z atributi, ki se uporablja pri izdelavi različnih vrst dokumentov. XML postopoma nadomešča HTML, na njegovi osnovi so zgrajene datoteke MS Word in PDF. Za pretvorbo datotek XML, na primer za preoblikovanje v skladu z novo predlogo, je bil ponovno razvit jezik za označevanje XSLT. Struktura datoteke XSL (transformacijska datoteka XSLT) je v celoti skladna s specifikacijo XML. V svojem bistvu je XSLT funkcionalni programski jezik.

Pascal, tako kot večina programskih jezikov, ponuja orodja, ki vam omogočajo, da oblikujete pomožni algoritem kot podprogram. To je potrebno, kadar se podalgoritem ponavlja v programu ali pa je možna uporaba nekaterih fragmentov predhodno razvitih algoritmov. Poleg tega se podprogrami uporabljajo za razdelitev velikih programov na ločene pomembne dele v skladu z modularnim načelom programiranja.

Če želite podalgoritem uporabiti kot podprogram, mu morate dodeliti ime in opisati algoritem v skladu s pravili jezika Pascal. V prihodnosti ga po potrebi pokličite v programu, pokličite podprogram tako, da na pravem mestu omenite ime ustreznega podalgoritma s seznamom vhodnih in izhodnih podatkov. Takšna referenca vodi do izvajanja operatorjev, vključenih v podprogram, ki delujejo z navedenimi podatki. Po izvedbi podprograma se delo nadaljuje z ukazom, ki takoj sledi klicu podprograma.

V Pascalu obstajata dve vrsti podprogramov - postopkov in funkcije.

Postopki in funkcije so v razdelku z opisom programa. Obstaja mehanizem za izmenjavo informacij med postopki in funkcijami ter drugimi programskimi bloki vnos in izhodni parametri. Vhodni parametri so vrednosti, posredovane iz klicnega bloka v podprogram (vhodni podatki za podprogram), izhodni parametri pa so tisti, ki so posredovani iz podprograma v klicni blok (rezultati podprograma).

Isti podprogram je mogoče klicati večkrat in izvaja ista dejanja z različnimi nizi vhodnih podatkov. Pokličejo se parametri, ki se uporabljajo pri pisanju besedila podprograma v razdelku opisa formalno, in tiste, ki se uporabljajo pri klicu, so dejansko.

Format za opis postopka je:

Postopek ime postopka (formalni parametri); razdelek z opisom postopka začeti izvršilni del postopka konec;

Oblika opisa funkcije:

funkcija ime funkcije (formalni parametri):vrsta rezultata; razdelek z opisi funkcij začeti izvedljivi del funkcije konec;

V funkcijah lahko deklarirate lastne spremenljivke; lokalni, kar pomeni, da jih je mogoče uporabiti samo v funkciji, v kateri so deklarirani.

Ko funkcija zapusti, se uničijo.

Če deklarirate spremenljivko zunaj katere koli funkcije (takšne spremenljivke se imenujejo globalno), potem ga je mogoče uporabiti v vseh funkcijah brez deklaracije.

Podatkovne strukture določajo klasifikacijo podatkov in razmerja med njimi. Strukture so lahko preproste (elementarne) ali kompleksne (sestavljene). Ločimo naslednje strukture: konstanta, spremenljivka, matrika, zapis in tabela. Konstanto in spremenljivko lahko štejemo za elementarni podatek, posamezna, nedeljiva elementa kompleksnejših sistemov organizacije podatkov.

Konstanta je število, besedilo ali logična vrednost, ki se ne spreminja med izvajanjem algoritma ali rešitve problema na računalniku.

Spremenljivka je enota organizacije podatkov, ki ji lahko med obdelavo informacij pripišemo različne pomene. Spremenljivka ima ime – identifikator in vrsto: numerično, simbolno (dobesedno, niz), logično. Spremenljivke lahko spremljajo besede, ki označujejo njihovo vrsto.

niz - to je niz elementov iste vrste, združenih z enim imenom (identifikator polja). Glavni parametri nizov vključujejo vrsto (numerično, simbolno, logično), dimenzijo (enodimenzionalno, dvodimenzionalno itd.) in velikost (število elementov polja v vsaki dimenziji).

Rekurzija- to je organizacija algoritma, v kateri se postopek nanaša sam nase. Sam postopek se imenuje rekurziven.

Razvrstitev in značilnosti programske opreme

Delovanje računalnika nadzoruje program. Vsi računalniški programi, ki so shranjeni v zunanjem pomnilniku, tvorijo programsko opremo(BY).

Programska oprema
sistemsko programsko opremo aplikacijsko programsko opremo
OS Pripomočki Programski sistemi Glavni namen Specializirani programi Profesionalni programi
naložen v RAM in organizira izvajanje drugih programov, sodeluje z računalnikom sistemski program - optimizira pomnilnik diska, ščiti pred virusi itd. namenjen ustvarjanju novih programov besedilno tabelarično, grafično, glasbeno, upravljanje baz podatkov ekspertni sistemi, hipertekst, multimedija AIMS - avtomatiziran sistem za upravljanje informacij, CAD - sistem za računalniško podprto načrtovanje, Sistemi za usposabljanje, Geoinformacijsko iskanje
Windows, UNIX, Linux, Hummingbird itd. BASIC, Pascal, Delphi, Beležnica, Word, Excel, Paint, Sound Forge, Access "1C-Enterprise", "Compass" - za risanje,

S prihodom strojev druge generacije se je pojavila potreba po ustvarjanju jezikov, ki so bili v celoti osredotočeni na posebnosti nalog in niso bili odvisni od določenega stroja. Simbol druge generacije računalnikov je postal problemsko usmerjen programski jeziki. Njihov razvoj so vedno bolj določale specifike nalog in ne lastnosti strojev. Ti jeziki so bili imenovani algoritemski jeziki. Eden prvih in najuspešnejših jezikov te vrste je bil Fortran(Za mulae prev slation) , ki ga je razvil IBM leta 1954. Jezik Fortran se ni ohranil le do danes, ampak je tudi precej razširjen. Med razlogi za tako dolgo življenjsko dobo je mogoče opozoriti na preprosto strukturo Fortran samega in prevajalnikov, ki so mu namenjeni. Fortran je bil osnova za pogovorni jezik BASIC ( B začetnikov A nenamensko S simbolno jaz navodilo C ode) - jezik, ki je zdaj razširjen v različnih modifikacijah. Kmalu po nastanku Fortran-a (1957) se je pojavil jezik ALGOL (Algo Ritmično L jezik), nastala na podlagi obsežnega mednarodnega sodelovanja. Leta 1960 je bilo objavljeno uradno poročilo o algoritemskem jeziku, imenovanem ALGOL-60. Algol je nastal po razvoju in praktični uporabi Fortran-a, zato je zanj značilna uvedba novih konstrukcij in posploševanje konceptov, ki jih najdemo v Fortran-u. Čeprav sta si tako Fortran kot Algol zaslužila to ime univerzalni jezikov, nobeden od njih seveda ni omogočal brez izjeme opisati vseh težav, ki se pojavljajo. Zato so se približno ob istem času pojavili problemsko usmerjeni algoritemski jeziki (Cobol, Snobol itd.), Ki so ustrezali potrebam določenih področij znanosti in tehnologije. Od jezikov za obdelavo simbolnih informacij (pretvorba formul, analitična rešitev enačb, analiza in sinteza besedil itd.) Je jezik zelo priljubljen Lisp(Li st p rocessing), ustanovljen leta 1960 na Tehnološkem inštitutu v Massachusettsu. V tem jeziku so vse informacije, ki se obdelujejo, vključno s samim programom, organizirane v tako imenovane sezname - zaporedja elementov. Tretja generacija računalnikov je na dnevni red postavila razvoj novega pristopa k ustvarjanju resnično univerzalnega jezika. Eden od poskusov te vrste je bilo ustvarjanje algoritemskega jezika PL/1 s strani IBM-a ( p programiranje L angleščina/1 - en programski jezik). Temeljil je na jezikih Fortran in Cobol, številni vizualni pripomočki in koncepti so bili črpani iz Algola in drugih jezikov. Leta 1971 je Niklaus Wirth predlagal algoritemski jezik Pascal(Pascal). Jezik Pascal je naslednik Algol-60, ima konstrukcije, podobne tistim, ki obstajajo v PL/1 in Algol-68, vendar je Pascal bolj jedrnat. Jezik Pascal je prispeval k uvedbi sodobne tehnologije programiranja, ki temelji na postopni gradnji programa, sestavljenega iz majhnih, jasno definiranih postopkov, tj. ideje se dosledno izvajajo. strukturno programiranje. Druga pomembna značilnost Pascala je koncept podatkovne strukture kot enega temeljnih konceptov, ki je poleg koncepta algoritma osnova programiranja. Na osnovi jezika Pascal je bil jezik ustvarjen v poznih 70. letih Ada, ima zelo široko področje uporabe, čeprav je bil ustvarjen kot uradni programski jezik ameriške vojske. Jezik je poimenovan po prvi programerki Adi Lovelace. Je zelo strukturiran jezik in je posebej primeren za razvoj sistemov v realnem času. Vendar pa je jezik Ada preveč okoren, podroben in programerju ne daje dovolj svobode. Po skladenjski kompleksnosti ga še ni presegel noben drug jezik. V nasprotju z naštetimi visokonivojskimi jeziki je programski jezik, ki ga je predlagal Denis Ritchie v zgodnjih 80. Si(ime vsebuje eno latinsko črko C) je bil zasnovan kot jezik na relativno nizki ravni. Vendar to ne pomeni, da jezik ni dovolj močan. Algoritemski jezik C v celoti odraža zmožnosti sodobnih računalnikov, kar vam omogoča pisanje zelo učinkovitih programov brez uporabe zbirnih jezikov , predvsem s preprostimi, zaporednimi zasnovami krmilnega toka. Jezik je postal priljubljen zaradi genialnih rešitev, ki so naredile pisanje programa C zelo kompaktno. Ne da bi programerju nalagal kakršnih koli posebnih omejitev, ponuja možnost najrazličnejših trikov, ki marsikoga tudi pritegnejo. Jezik Pascal v prvotni avtorjevi različici ni vseboval ločenih orodij za prevajanje - modulov, različnih številskih vrst, nizov spremenljive dolžine in veliko tega, kar je bilo dodano dobro znanim implementacijam. Posledično je Niklaus Wirth predlagal jezik Modula-2, ki naj bi nadomestil Pascal in s tem odpravil njegovo glavno omejitev – pomanjkanje modularnosti. Znano je, da se je Modula-2 uporabljala in se uporablja v projektih, kjer ima zanesljivost ključno vlogo. Sredstva za medmodulno krmiljenje Module-2 so opazno naprednejša od podobnih zmogljivosti Pascala in C. Prevajalnik Turbo Pascal, ki ga je razvil Anders Hejlsberg, je Borland komercialno izdal leta 1983. Ta različica je že vsebovala jezikovne razširitve, čeprav majhne. V naslednjih izdajah je bilo vedno več razširitev: integrirana grafika, moduli, objektno usmerjeno programiranje (OOP) itd. Od različice 7.0 se je jezik začel imenovati Borland-Pascal. Kot zmogljiva objektno usmerjena različica Pascala je zdaj priljubljena Object Pascal. Object Pascal vsebuje veliko sintaktičnih razširitev v primerjavi s standardnim Pascalom. Posledično se je preprost in eleganten Pascal spremenil v jezik, ki se približuje kompleksnosti jezika pekla. Objektno usmerjeni jezik C++ je predlagal Bjarne Stroustrup z izvirnim imenom "C z razredi". Ime odraža dejstvo, da je C++ nadnabor jezika C++, ki je po nekaterih ocenah dvakrat bolj zapleten kot C. Zdaj je brez pretiravanja jezik številka ena na svetu za profesionalne programerje, saj je prevzel prednosti in priljubljenost jezika C ter dodal zmogljiva orodja za pisanje objektno orientiranih programov. Njegove izvedbe so podprte na vseh platformah strojne in programske opreme, za razliko od Pascala, ki je široko razširjen le na platformi IBM PC. Jezik Oberon razvil N. Wirth leta 1987. Gre za znatno poenostavljeno skladenjsko različico Module-2, ki je dodala razširljive zapise - glavni OOP mehanizem. Jezik je izjemno preprost, hkrati pa ohranja svojo univerzalnost in funkcionalno ni slabši od drugih jezikov. Leta 1992 je N. Wirth sprejel razširitve Oberona, ki jih je predlagal Hanspeter Mössenböck. V jezik so bili uvedeni analogi virtualnih metod v drugih jezikih. Nova različica se imenuje Oberon-2. Presenetljivo se je izkazalo, da je Oberon-2 preprostejši od Oberona, katerega razširitev je. Najmlajši in najbolj obravnavan objektno usmerjen jezik danes Java(v angleški izgovorjavi - Java, ruščina še ni vzpostavljena) je predlagal James Gosling (Sun Microsystems). Glavna značilnost Jave je medplatformska prenosljivost aplikacij, zaradi česar se jezik pogosto uporablja za pisanje aplikacij za internet. Java je sintaktično zelo zapleten jezik. Njegov uradni opis - 700 strani dolg dokument - je poln besednih in okornih definicij. Kljub tej kompleksnosti ima Java le dve pomembni stvari, ki ju Oberon na primer nima: vgrajeno večnitnost in obravnavanje izjem. Na splošno je trenutno znanih od 2 do 3 tisoč programskih jezikov, od tega približno 100 objektnih in objektno usmerjenih. Merila za izbiro programskega jezika: Izbira jezika mora temeljiti na zahtevah za izdelek, ki se razvija, ob upoštevanju naslednjih dejavnikov: jezikovna moč (jezikovne zmogljivosti); prenosljivost jezika; kompleksnost jezika; raven obstoječe instrumentalne jezikovne podpore. Kompleksnost jezika ni vedno neposredno povezana z njegovo močjo. Za Virtovo linijo jezikov (Pascal - Modula - Oberon) je značilno zmanjšanje kompleksnosti, ko se moč poveča. Številni raziskovalci menijo, da obstaja pet glavnih vrst programskih stilov in s tem programskih jezikov:

Trenutno najbolj privlačni jeziki za programerje temeljijo na t.i objektni model, ki ima štiri glavne elemente: abstrakcijo; inkapsulacija; modularnost; hierarhija. Abstrakcija- praznjenje abstrakcije(abstrakcija), ki jih razumemo kot bistvene značilnosti predmeta, ki ga razlikujejo od vseh drugih predmetov in opazovalcu jasno določajo njegove pojmovne meje. Enkapsulacija(enkapsulacija) - ločitev elementov abstrakcije, ki tvorijo njeno strukturo in obnašanje. Modularnost(modularnost) - delitev sistema na moduli(modul), ki jih razumemo kot enote kode, ki služijo kot bloki fizične strukture sistema. Hierarhija(hierarhija) - podrejenost ali vrstni red abstrakcij. Dve tipični hierarhiji v kompleksnem sistemu sta »splošna/posebna« hierarhija dedovanja, ki je običajno lastna tipom (razredom), in hierarhija združevanja »celotno/delno«, ki je običajno lastna elementom (objektom). Hierarhija je lastna tudi modulom in drugim delom sistema. Te lastnosti so najbolj jasno prisotne v jezikih, ki izvajajo koncepte objektno orientirano programiranje. Slednje se nanaša na metodologijo implementacije, v kateri je program organiziran kot zbirka sodelujočih objektov, od katerih je vsak primerek razreda, razredi pa tvorijo hierarhijo dedovanja. Vendar so razredi običajno statični, medtem ko so objekti zelo dinamični, kar spodbujata dinamična vezava in polimorfizem. Za OOP sta značilna koncepta dedovanja in polimorfizma. Dedovanje(dedovanje) - odnos med razredi, v katerem razred uporablja strukturo ali vedenje drugega (enojno dedovanje) ali drugih (večkratno dedovanje). Dedovanje uvaja javno/zasebno hierarhijo. Polimorfizem(polimorfizem) - določba teorije tipov, po kateri lahko imena (na primer spremenljivke) označujejo predmete različnih (vendar s skupnim staršem) razredov. Posledično se lahko vsak predmet (metoda), označen s polimorfnim imenom, na svoj način odzove na določen splošni nabor operacij (argumentov).