Tipovi formalnih jezika. Formalna definicija programskih jezika. ACS softver

U proteklih 70 godina programiranje je postalo ogromno područje ljudske aktivnosti, čiji su rezultati po svom praktičnom značaju sasvim uporedivi s najnovijim rezultatima u području nuklearne fizike ili svemirskih istraživanja. Ovi rezultati su uglavnom posljedica pojave i brzog razvoja algoritamskih jezika visokog nivoa.

Moderni programski jezici visokog nivoa, kao što su Pascal, C, Ada, Java, C++, C# i drugi, i dalje ostaju najčešći i najmoćniji alat za programere koji razvijaju i sistemski i aplikativni softver. S pojavom novih zadataka i potreba, funkcionalnost ovih jezika se stalno širi kroz stvaranje sve naprednijih verzija.

Drugi pravac u razvoju programskih jezika povezan je sa stvaranjem specijalizovanih (problemski orijentisanih) softverskih sistema i okruženja za korisnike koji nisu programeri (tehnolozi, dizajneri, ekonomisti, itd.). Primeri ovakvih sistema i okruženja su CAD sistemi različite namene, automatizovani nastavni sistemi, sistemi učenja na daljinu, ekspertski i modelski sistemi u ekonomiji itd. Svrha odgovarajućih problema orijentiranih jezika koji se koriste u takvim sistemima često se ogleda u njihovim nazivima, na primjer: „Jezik za opisivanje krugova tehnološke opreme“, „Jezik za opisivanje scenarija učenja“, „Jezik za modeliranje situacija“ , itd.

I programski jezici opće namjene i problemski orijentirani programski jezici imaju jednu zajedničku stvar - jesu

formalni jezici.Šta je formalni jezik? U najopštijem obliku, na ovo pitanje se može odgovoriti na sljedeći način: jezik - ovo je puno prijedloga, i formalni jezik - to je jezik čije su rečenice građene prema određenim pravilima.

Rečenice se prave od riječi, a riječi od simbola (slova). Poziva se skup svih važećih znakova abeceda jezik. U programskim jezicima rečenice obično odgovaraju iskazima (ili uputstvima), a na tastaturi računara vidimo abecedne simbole.

I prirodni jezici i programski jezici su beskonačni skupovi. Možete napisati neograničen broj programa u programskom jeziku.

Kako postaviti pravila za građenje rečenica na formalnom jeziku? Kada odgovaramo na ovo pitanje, počećemo od dva važna koncepta: sintaksa I semantika jezik.

Sintaksa jezik određuje strukturu ispravnih rečenica i riječi, au programskim jezicima, između ostalog, prihvatljive strukture programskih tekstova.

Postoje različiti načini da se opiše sintaksa formalnih jezika (drugo poglavlje udžbenika posvećeno je metodama opisa). Najčešći programski jezici su Backus formular - Naura(BPF) i sintaktički dijagrami.

BNF je razvio Backus i prvi put je korišten za striktno opisivanje jezika ALGOL-60 1963. Ovaj oblik se koristi i za opisivanje strukture jezika u cjelini i za opisivanje pojedinačnih jezičnih konstrukcija (podskupova jezika) i njegovih elemenata - operatori, identifikatori, izrazi, brojevi itd.

Ispod su primjeri BNF-a koji definiraju sintaksu decimalnih cijelih brojeva i sintaksu aritmetičkih izraza koji sadrže operatore “+” i “*”.

BNF decimalnih cijelih brojeva:

= 0|1|...|9

BNF aritmetičkih izraza:

:= () A

U datim izrazima A označava bilo koji identifikator i tretira se kao simbol abecede od koje je izraz konstruisan.

Na lijevoj strani BNF-a, nazivi definiranih elemenata ispisani su u uglatim zagradama. sintaktičke kategorije(koncepti, jedinice), simbol “:=” znači “jeste”, “ovo”, “definisano je kao”, simbol “|” znači "ili".

Desna strana BNF-a definira moguće opcije za konstruiranje specifičnih vrijednosti ovih kategorija, u ovom slučaju vrijednosti decimalnih brojeva i specifičnih aritmetičkih izraza. BNF sadrži i abecedu simbola od kojih su ove vrijednosti sastavljene. Za decimalne cijele brojeve abeceda je skup (+,-, 0, 1,..., 9), a za izraze skup (A, *, +, (,)}.

Proces konstruisanja značenja sintaksičke kategorije sastoji se od zaključak ove vrijednosti uzastopnim zamjenama desnih strana BNF pravila u lijevu stranu. Ispod su izlazi broja “- 320” i izraza "a+a*a" koristeći odgovarajući BNF:

BNF ima velike sličnosti sa formalne gramatike, koji se koristi u teoriji formalnih jezika (neki ih autori identificiraju).

Upravo je pojava BNF-a potaknula brzi razvoj teorije formalnih jezika i njene primjene na primijenjene probleme u razvoju programskih jezika i dizajnu prevoditelja.

Ako je u razmatranim BNF-ovima svaka sintaktička kategorija s lijeve strane pravila označena sa A, B I WITH shodno tome, a umjesto simbola := upotreba - dobiće se sljedeći oblici:

Za decimalne cijele brojeve:

A->B+B-B B^>CBC C->0 | 11... | 9

Za aritmetičke izraze:

A^A+BB

B->B*SS

C^>(A)a

Ovako su napisana pravila formalne gramatike. Simboli koji označavaju sintaktičke kategorije, u ovom slučaju, B, C u formalnim gramatikama se nazivaju neterminalni simboli, a simboli abecede su terminal.

U praksi, nakon dobijanja gramatike programskog jezika kao „prve aproksimacije“, potrebno je ispitati njegova svojstva, au nekim slučajevima i izvršiti neke transformacije. To je uglavnom zbog potrebe da se gramatika dovede u oblik pogodan za izradu odgovarajućeg prevoditelja. U procesu izvođenja ovih transformacija, sa formalne tačke gledišta, nije bitno koje specifične sintaksičke kategorije i abecedne simbole BNF sadrži. Stoga u ovoj fazi obično prelaze na formalnu gramatiku i koriste odgovarajuće metode teorije formalnih jezika. Istovremeno, ne treba potpuno identificirati BNF sa formalnim gramatikama. Definicija gramatike u teoriji formalnih jezika je općenitija. Konkretno, mogu se koristiti za opisivanje zavisnosti od konteksta, koji se ne može uvijek izbjeći pri razvoju programskih jezika i koji se ne može opisati korištenjem BNF-a.

Karakteristična karakteristika gramatika programskog jezika je prisustvo rekurzije u njima. Rekurzivnost znači da definicija određene sintaktičke kategorije sadrži kategoriju koja se definiše (ovo je tzv. eksplicitna rekurzija). Na primjer, u razmatranim BNF definicijama za kategorije I sadrže ove kategorije na desnoj strani. rekurzija - gotovo neizbježno svojstvo gramatika programskog jezika koje im omogućava da budu beskonačne. Istovremeno, neke vrste rekurzije, o kojima će biti reči kasnije, značajno otežavaju proces razvoja odgovarajućih prevodilaca.

Zaustavimo se ukratko na drugoj gore spomenutoj metodi za opisivanje sintakse jezika pomoću sintaktičkih dijagrama. Neki autori pri opisivanju jezičkog standarda daju prednost ovoj metodi zbog veće jasnoće. Primjeri sintaksnih dijagrama mogu se naći u mnogim programskim knjigama (na primjer, u). Imajte na umu da su obje metode opisa - i BNF i sintaktički dijagrami ekvivalentni i uvijek možete preći s jedne metode opisa na drugu.

Razmotrimo sada koncept semantika jezika. Ako sintaksa jezika određuje strukturu njegovih ispravnih rečenica i tekstova, onda semantika određuje ispravnost njihovog značenja. Zauzvrat, ispravnost značenja ovisi o značenju riječi koje čine rečenice. Na primjer, ako u prirodnom jeziku definiramo sintaksu rečenice kao

tada možete konstruisati mnogo rečenica sa različitim značenjima. Na primjer, rečenice “auto vozi” i “auto razmišlja” ispravne su sa sintaktičke tačke gledišta. Međutim, prva rečenica ima ispravno značenje, za drugu se može reći da je besmislena. Dakle, semantika definira skup značenja i prihvatljivih korespondencija između rečenica (tekstova) i značenja.

Osim toga, semantika jezika ovisi o svojstvima objekata opisanih u ovom jeziku. Kada bi u razmatranom primjeru automobil bio opremljen kompjuterom s programima za izračunavanje optimalnih načina i ruta kretanja, onda se druga rečenica više ne bi činila besmislenom.

Slično, u programskim jezicima, sintaksički dobro oblikovan operator dodjeljivanja

će biti semantički neispravan ako a ima vrijednost 10,5 (a = 10,5) i b ima vrijednost false (b = false).

Ispostavilo se da je formalni opis semantike programskih jezika mnogo teži zadatak od opisa sintakse. Većina radova posvećenih upotrebi matematičkih metoda u implementaciji programskih jezika pokrivaju upravo pitanja opisa sintakse i konstruisanja metoda sintaktičke analize. U ovoj oblasti razvijena je prilično sveobuhvatna teorija i metodologija. Istovremeno, semantika jezika i semantička analiza i danas su predmet mnogih studija.

Mnogi aspekti semantike programskog jezika mogu se opisati u obliku liste semantičkih konvencija koje su opšte, neformalne prirode. Na primjer, programeri su upoznati sa konvencijama kao što su “svaki identifikator u bloku je jednom definiran”, “promjenljiva mora biti definirana prije nego što se može koristiti” itd.

Primjer uspješne primjene teorije formalnih jezika u području semantike i semantičke analize je aparat gramatika prijevoda atributa, koji omogućava da se uzmu u obzir semantičke konvencije u opisu jezika i da se prati njihova usklađenost tokom prevođenje programa.

Što se tiče prognoza za izglede za dalji razvoj programskih jezika, postoji prilično širok spektar mišljenja, čak i dijametralno suprotnih. Neki autori smatraju da svaki jezik ima svoje semantičke karakteristike koje ga čine pogodnim i privlačnim za određeno područje programiranja (na primjer, Prolog i Lisp - fokusirani na rješavanje problema umjetne inteligencije; Fortran - najefikasniji u rješavanju računskih problema; Cobol - koristi se za ekonomske proračune itd.). Stoga biste trebali kreirati sve nove jezike sa određenim mogućnostima ili povremeno ažurirati postojeće verzije, umjesto da pokušavate stvoriti univerzalni jezik. U prilog ovoj tački gledišta navodi se argument da su svi ambiciozni projekti stvaranja univerzalnog jezika propali (dovoljno je podsjetiti se na neispunjene nade povezane s razvojem ADAiPL-1 jezika).

Drugi dio autora smatra da od objavljivanja standarda prvih programskih jezika - Fortran, Algol, itd. - 60-ih godina. XX vijeka, došlo je do „stabilizacije“ jezika u smislu da jezičke konstrukcije slične namjene u različitim jezicima imaju praktički istu semantičku osnovu, uprkos razlikama u vokabularu i sintaksi. Stoga, čim bude moguće formalno definirati ovu zajedničku semantičku osnovu, moći će se početi stvarati univerzalni jezik, koji više neće biti programski jezik u tradicionalnom smislu, već šabloni za semantičke konstrukcije. Program će biti predstavljen kao skup ovih konstrukcija, a uređivač teksta će ustupiti mjesto strukturiranom uređivaču. Kao primjer djelomične implementacije ovog pristupa date su okruženja vizualnog programiranja kao što su Delphi, C++ Builder, itd.

Kraj

Počni

Ponovi

Počni

Pseudokodovi

Pseudokod je sistem notacija i pravila dizajniran za jednoobrazno pisanje algoritama. On zauzima srednje mjesto između prirodnog i formalnog jezika.

S jedne strane, blizak je običnom prirodnom jeziku, tako da se algoritmi mogu pisati i čitati na njemu kao u običnom tekstu. S druge strane, pseudokod koristi neke formalne konstrukcije i matematički simbolizam, što algoritamsku notaciju približava općeprihvaćenoj matematičkoj notaciji.

U pseudokodu nisu usvojena stroga sintaktička pravila za pisanje naredbi svojstvena formalnim jezicima, što olakšava pisanje algoritma u fazi dizajna i omogućava korištenje šireg skupa naredbi dizajniranih za apstraktnog izvršitelja. Međutim, pseudokod obično sadrži neke konstrukcije koje su inherentne formalnim jezicima, što olakšava prelazak sa pisanja u pseudokod na pisanje algoritma na formalnom jeziku. Konkretno, u pseudokodu, kao iu formalnim jezicima, postoje funkcijske riječi čije je značenje određeno jednom za svagda. Oni su podebljani u štampanom tekstu, a podvučeni su u rukom pisanom tekstu. Ne postoji jedinstvena ili formalna definicija pseudokoda, pa su mogući različiti pseudokodovi, koji se razlikuju po skupu funkcijskih riječi i osnovnih (osnovnih) konstrukcija. Kao primjer, evo unosa u jednom od pseudo-kodova algoritma:

algoritam Euklidski algoritam;

ćao prvi broj nije jednak drugom

Ako brojevi su jednaki

To stani Sve;

inače odrediti veći od dva broja;

h zamijenite veći broj razlikom između većeg i manjeg broja

kraj;

uzmi prvi broj kao odgovor

Ovaj algoritam se može napisati jednostavnije, ali da bi se demonstrirali glavne moguće konstrukcije pseudokoda, upravo je to data notacija. Zbog svojih karakteristika, pseudokodovi su, kao i drugi algoritmi za snimanje gore opisani, orijentirani na čovjeka.

Gore je napomenuto da je prilikom pisanja algoritma u verbalnom obliku, u obliku dijagrama ili u pseudokodu, dopuštena određena proizvoljnost pri prikazivanju naredbi. Istovremeno, takav snimak je toliko precizan da omogućava osobi da shvati suštinu stvari i izvrši algoritam.

Međutim, u praksi se kao izvršioci algoritama koriste specijalne mašine - elektronski računari (računari). Stoga, algoritam namijenjen za izvršavanje na računaru mora biti napisan na jeziku koji je računar „razumljiv“. I tu dolazi do izražaja potreba za preciznim snimanjem komandi, ne ostavljajući prostora za proizvoljno tumačenje izvođača. Dakle, jezik za pisanje algoritma mora biti formalizovan. Ovaj jezik se obično naziva programski jezik , a pisanje algoritma na ovom jeziku je program za kompjuter.


Programski jezik je formalizirani jezik koji je skup abecede, pravila za pisanje konstrukcija (sintaksa) i pravila za tumačenje konstrukcija (semantika).

Trenutno postoji nekoliko stotina programskih jezika dizajniranih za različite oblasti primjene računala, odnosno za različite klase problema koji se rješavaju uz pomoć računara. Ovi jezici su klasifikovani u različite nivoe, uzimajući u obzir stepen zavisnosti jezika od određenog računara.

Osnovni koncepti

algoritam - Ovo je nalog (redosled ili sistem naloga) koji definiše proces transformacije izvornih podataka u željeni rezultat, koji ima sledeća svojstva:

  • sigurnost, odnosno tačnost i jasnoća za izvršnu vlast; zbog ovog svojstva, proces izvršavanja algoritma je mehaničke prirode;
  • efektivnost, odnosno sposobnost da se dovede do željenog rezultata nakon konačnog broja prilično jednostavnih koraka;
  • rasprostranjenost, odnosno pogodnost za rješavanje bilo kojeg problema iz određene klase problema.

Iz definicije algoritma jasno je da proces njegovog izvršavanja mora biti diskretan, koji se sastoji od zasebnih koraka, algoritamskih radnji. Zahtjev za jednostavnošću ovih koraka je zbog činjenice da ćemo, uz neograničenu složenost koraka, lišiti bilo kakve sigurnosti konceptu algoritma. Svojstvo algoritma da dovede do rješenja u konačnom broju koraka naziva se potencijalna izvodljivost.

Prirodni jezici su od male koristi za formulisanje određenih i preciznih uputstava. Stoga algoritam mora biti recept na formalnom jeziku.

Svaki računar je razvijen da rešava uglavnom probleme određene klase. S tim u vezi, potrebno je da računar obezbedi mogućnost izvođenja u potrebnim kombinacijama određenog skupa operacija, uzetih kao elementarnih.

Elementarne operacije mašina unose informacije u RAM ćeliju sa nekog drugog uređaja za skladištenje, izdavanje informacija iz ćelije, kao i svaka operacija koja: je implementirana u hardveru; ima početne podatke koji su rezultati osnovnih mašinskih operacija i fiksirani u jednoj ili više ćelija; daje rezultat koji se bilježi u jednoj zasebnoj ćeliji i dostupan je, ali nije potreban, za korištenje kao početni podatak bilo kojeg elementarnog rada mašine; ne može se smatrati kompleksom jednostavnijih mašinskih operacija koje zadovoljavaju tri prethodna uslova.

Operativni sistem je ukupnost svih mašinskih operacija predviđenih u računaru.

Tim je elementarna instrukcija koja omogućava izvođenje određene grupe operacija.

Glavne operacije Računari su aritmetički, logički, transferi, tranzicije, kada mašina prelazi sa izvršavanja jedne komande na izvršavanje druge, preuzima komande iz RAM-a i zaustavlja mašinu (“stop”). Glavne operacije nad informacijama o slovu su: određivanje dužine riječi; prijenos riječi s jednog mjesta u RAM-u na drugo; isticanje određenog dijela date riječi; uključivanje razmaka između riječi; dijeljenje niza riječi u manje redove; poređenje dve reči. Obično se navedene operacije nazivaju uređivanje.

Programiranje

Računari se obično koriste ili za rješavanje pojedinačnih problema (koji pripadaju određenoj klasi), ili za rješavanje kompleksa međusobno povezanih problema različitih klasa.

Prilikom rješavanja određenog problema (klase problema) na računaru, rad se razlaže u sljedeće faze:

    matematička formulacija problema;

    razvoj metodologije za njegovo rješavanje;

    razvijanje algoritma za njegovo rješavanje i pisanje u nekom programskom jeziku;

    programiranje;

    otklanjanje grešaka u programu na mašini;

    priprema početnih podataka, rešavanje zadataka na računaru.

Opisani skup radova se zove problematično programiranje.

Prilikom razvoja sistema programa za rješavanje skupa međusobno povezanih problema, opisani redoslijed rada održava se tokom izrade svakog programa. Pored toga, javlja se niz dodatnih faza rada u vezi sa potrebom da se osigura jedinstvo sistema. Zove se skup radova za kreiranje sistema programa za rješavanje međusobno povezanih problema sistemsko programiranje.

Matematička formulacija problema. Ovaj rad se sastoji od utvrđivanja sastava i prirode početnih podataka za rješavanje problema, utvrđivanja početnih rezultata i zapisivanja uslova problema pomoću matematičke notacije. Matematički aparat koji se koristi u matematičkoj formulaciji problema zavisi od klase kojoj problem pripada.

Razvoj metode za rješavanje problema. Smatra se da je tehnika rješenja razvijena kada se utvrde zavisnosti svih željenih rezultata od početnih i naznače metode za dobijanje željenih rezultata koje se mogu implementirati na računaru. Ukoliko se otkrije da su odabrane metode neprikladne u procesu rješavanja problema na računaru, potrebno je vratiti se u fazu razvoja metode.

Razvoj algoritma za rješavanje problema. Algoritam za rješavanje problema razvijen je na osnovu metodologije za njegovo rješavanje. Algoritam je razvijen na jeziku matematičkih opisa, a zatim napisan na algoritamskom jeziku među tzv. programskim jezicima. Razvoj algoritma za rješavanje problema trebao bi se provesti uzimajući u obzir karakteristike računara.

Kada koristite računar za rješavanje problema, potrebno je uzeti u obzir sljedeće karakteristike:

  • veliki, ali ograničen broj cifara na slikama brojeva;
  • veća brzina izvođenja operacija na brojevima pohranjenim u RAM-u;
  • relativno mala brzina ulaznih podataka i izlaza rezultata;
  • relativno mala brzina razmjene brojeva između RAM-a i eksternih uređaja za pohranu podataka;
  • relativno mali kapacitet RAM-a sa veoma velikim kapacitetom eksternih uređaja za skladištenje podataka;
  • mogućnost nasumičnih kvarova mašine i rezultirajućom potrebom da se prati njen rad.

Programiranje. Programiranje je V snimanje razvijenog algoritma u programskom jeziku (npr. u tzv. ASSEMBLY jeziku ili ALGOL, FORTRAN, COBOL, PL/I), izvršeno ručno, i naknadno prevođenje u mašinski algoritamski jezik.

Broadcast je proces ekvivalentne transformacije algoritma specificiranog u programskom jeziku u algoritam u mašinskom jeziku. Ovaj proces se izvodi pomoću posebnog programa koji se zove prevodilac.

Otklanjanje grešaka u programu na mašini. Otklanjanje grešaka u programu na mašini ima za cilj da eliminiše greške u programu i uključuje: praćenje programa; pretraživanje i utvrđivanje sadržaja (dijagnostika) grešaka; ispravljanje uočenih grešaka.

Priprema početnih podataka. Rešavanje problema na računaru. Početni podaci zadatka koji se unose u računar moraju se prvo prenijeti sa obrazaca ili dokumenata na bušene trake ili bušene kartice. Ovaj proces se izvodi na posebnim uređajima za probijanje opremljenim tastaturom. IN U procesu perforacije moguće su greške kako kao rezultat slučajnih kvarova uređaja za perforiranje tako i kao posljedica grešaka u radu rukovaoca perforatora. Sve greške unesene u informaciju tokom probijanja i unosa moraju se ispraviti.

Po pravilu se za unos informacija u računar koriste računari sa 80 kolona ili papirni PL. Veće mašine imaju i jedno i drugo. Bušena kartica sadrži 12 redova, pa je stoga moguće 12 bušenja u svakoj koloni; u poprečnom smjeru bušene trake, dozvoljeni su 5, 6, 7 i 8 položaji probijanja. Dakle, teoretski je moguće koristiti abecedu od 2 5 =32 do 2 12 = 4096 znakova, ali u praksi rijetko ima više od 3 bušene kolone u stupcu bušene kartice, pa se u pravilu koristi od 40 znakova. do 80 znakova. Među kompjuterskom opremom nalazi se i nezavisni uređaj za reprodukciju na papiru informacija sadržanih na bušenim karticama i bušenoj traci u obliku pogodnom za ljudsko čitanje. Kao rezultat, dobijamo ono što se obično naziva listing, odnosno ispis.

Nakon unosa programa i početnih podataka u računar, problem se automatski rešava.

Računarski softver

Računarski softver (MS) može se definirati kao određena zbirka programa od kojih svaki korisnik može praktično koristiti sam ili u kombinaciji sa nekim drugim programima za rješavanje problema, ili za obavljanje nekog posla vezanog za programiranje, ili za kreiranje određenog načina rada računara. .

IN MO kompjuterski sistem može uključivati ​​sljedeće grupe programa:

    operativni sistem programa;

    Sistem alata za programiranje;

    aplikacije za programe;

    sistem programa za održavanje softvera;

    sistem testnih programa dizajniranih za praćenje zdravlja računara.

operativni sistem sadrži programe koji određuju način rada računara i proširuju njegove operativne mogućnosti. Operativni sistem uključuje niz programa, od kojih su glavni sljedeći:

dispečer- program koji obezbeđuje određeni režim rada računara;

supervizor, ili monitor,- program koji osigurava rad koji je mašini dodijelio čovjek-operater u okviru režima koji je za njega uspostavljen;

niz uslužnih programa, kao što su programi za unos izvornih podataka, programi za uređivanje i izlaz rezultata, loader - program za unos takozvanih radnih programa u RAM, odnosno programi za rješavanje problema, bibliotekar - program za unos potprogrami za izvođenje makrooperacija i sami makrooperacijski potprogrami, program za komunikaciju između operativnog sistema i ljudskog operatera.

Za rad operativnog sistema od velikog su značaja mogućnosti koje imaju moderne mašine (a koje mašine prve generacije nisu imale): prisustvo sistema prekida, zaštita memorije, zaštita komandi i maskiranje prekida.

Suština posla dispečera je da svaki prekid u radu mašine klasifikuje ili kao taktički, u kom slučaju on odmah prenosi kontrolu i informacije o prekidu na nadzornika, ili kao strateški. U potonjem slučaju, on sam dozvoljava prekid. Tekst koji odgovara ovoj reakciji nazvaćemo zaključkom.

Supervizor planira, na zahtev ljudskog operatera, redosled izvođenja programa i raspoređuje među njima raspoloživu računarsku opremu, organizuje njihov red i održava red u tom redu. Glavni zadaci sa kojima se suočava supervizor su: upravljanje napretkom računara; održavanje kontakta sa ljudskim operaterom.

Postoje različiti načini rada računara, čije je pružanje jedna od glavnih svrha dispečera.

Brojni načini su povezani sa rješavanjem problema predstavljenih u obliku tzv radni paket Istovremeno, cijeli paket je snabdjeven informacijama o zadacima koji su u njemu uključeni i njihovim prednostima jedni nad drugima (sistem prioriteta).

Paket radova se odvija pod kontrolom supervizora. U tom slučaju može se izvršiti jednoprogramski, dvoprogramski ili višeprogramski rad stroja. Učinkovitost njegove upotrebe u velikoj mjeri ovisi o tome kako je rad spojen u paket. Paket se smatra dobro sastavljenim ako centralni procesor (aritmetička jedinica i kontrolna jedinica) nije u stanju mirovanja. Opisani načini se pozivaju batch režimi. Savremeni računari omogućavaju istovremeno izvršavanje do 16 poslova.

Način dijeljenja vremena karakteriše činjenica da je veliki broj udaljenih uređaja za unos-izlaz informacija, koji se nazivaju terminali, istovremeno povezani na računar. Ako u paketnom radu korisnicima nije dozvoljen pristup kontrolnoj tabli, tada u režimu deljenja vremena svaki od njih komunicira sa mašinom bez učešća operatera. Dispečer osigurava da se mali blokovi vremena daju uzastopno svim korisnicima u redu čekanja. Tokom vremenskog perioda mjerenog u nekoliko sekundi, mašina pomalo služi svakog korisnika. Režim podjele vremena je zgodan u slučajevima kada bi se izvođenje mašinskog rada trebalo odvijati u obliku dijaloga između računara i korisnika. Ovo se dešava prilikom otklanjanja grešaka u programima na računaru, kada se rešavaju problemi sa informacijama kao što su pitanja i odgovori.

Softverski sistem sadrži niz programa prevoditelja za prevođenje algoritama specificiranih u različitim ulaznim programskim jezicima u strojni jezik. Tipično, sistem alata za programiranje sadrži prevodioce sa algoritamskih jezika na tri nivoa.

Proces prevođenja algoritma i proces njegovog izvršavanja od strane mašine mogu se kombinovati na jedan od dva načina.

Prva metoda, tzv kompilacija, je da se proces izvršavanja algoritma od strane mašine izvodi nakon što je proces njegovog prevođenja u potpunosti završen. Naziv "kompilacija" nastao je zbog činjenice da je u početku značio proces prevođenja koji se temelji na spajanju u jednu cjelinu unaprijed pripremljenih dijelova (potprograma) koji odgovaraju određenim dijelovima algoritma koji se prevodi. Kasnije je ovaj naziv proširen na slučaj „dinamičkog” prijevoda, koji nije povezan s korištenjem unaprijed pripremljenih tekstova.

Drugi metod kombinovanja procesa prevođenja i procesa izvršenja algoritma se zove interpretacije. Ova metoda se sastoji u tome što se pojedini dijelovi algoritma izvode odmah nakon prijevoda, nakon čega se isti postupak provodi na ostalim dijelovima algoritma itd.

Za kompilaciju je karakteristično da program kompajlera koji ga implementira više nije potreban tokom izvršavanja algoritma i stoga se ne nalazi u RAM-u računara. Upotreba metode interpretacije zahtijeva prisustvo programa interpretatora u RAM-u računara prilikom rješavanja problema.

Svaka metoda ima svoje prednosti, ali metoda interpretacije je fleksibilnija. Osim toga, pojednostavljuje zadatak dodjele memorije, iako zahtijeva mnogo dodatne potrošnje memorije za pohranjivanje samog programa interpretacije.

Programski sistemi za najnovije računare često se zasnivaju na takozvanom principu modularnosti. Moduli nazivaju se “komadi” algoritama specificiranih na jeziku izvršnog sistema ili na ulaznom programskom jeziku, za koje su ispunjeni sljedeći uslovi:

„komadi“ algoritama specificirani na jeziku izvršnog sistema moraju imati dodatne informacije dovoljne da osiguraju da se, uz odgovarajuću obradu, iz njih može sastaviti program specificiran na jeziku izvršnog sistema;

„komadićima“ algoritama navedenih u ulaznim programskim jezicima moraju biti dostavljene dodatne informacije dovoljne da se, uz odgovarajuću obradu, mogu konvertovati u module specificirane u algoritamskom jeziku izvršnog sistema.

Princip modularnosti leži u činjenici da se programi na jeziku izvršnog sistema sastavljaju iz modula. Moduli na jeziku izvršnog sistema mogu se akumulirati u biblioteci. Modularni princip omogućava korištenje modula sastavljenih na različitim algoritamskim jezicima prilikom sastavljanja programa. Sposobnost akumuliranja modula i njihovog ponovnog korištenja u više navrata štedi rad programera.

Svi softverski programi moraju biti elementi neke biblioteke. Biblioteka standardnih programa je kolekcija unaprijed kompajliranih programa u kojima svaki program ima dodatne informacije koje ga identificiraju. Podatke o svim programima treba sažeti u zajedničku tabelu pod nazivom katalog. Direktorij mora omogućiti pronalaženje potprograma po imenu i svrsi.

Biblioteka obično prikuplja posebno sastavljene i posebno dizajnirane programe.

Preporučljivo je koristiti navedene programske alate za rješavanje različitih zadataka (problema). Istovremeno, smatra se da programi za pojedinačne zadatke (probleme) možda nisu baš „dobri“, ali su ukupni troškovi programiranja i rešavanja problema na računaru obično manji nego kod sastavljanja više „dobrih“ programa.

ACS softver

ACS softver- ovo je sistem metoda, tehnika i alata koji vam omogućavaju da efikasno razvijate programe za rešavanje specifičnih problema automatizovanog sistema upravljanja na računaru, kontrolišete rad računara u procesu rešavanja ovih problema i nadgledate ispravan rad kompjutera.

Glavne odredbe koje se moraju poštovati prilikom kreiranja MO ACS-a su sljedeće:

  • kompatibilnost i zasnivanje ACS-a koji razvija MO na postojećem MO računaru;
  • fokus odabranih MO alata na zadatke automatizovanog sistema upravljanja;
  • dovoljan izbor alata za automatizaciju programiranja;
  • sposobnost efektivnog unošenja izmjena u programe rada;
  • mogućnost nedvosmislenog i sveobuhvatnog opisa algoritama;
  • mogućnost optimizacije rada privatnih programa;
  • modularnost konstrukcije programa.

MO ACS služi da korisniku pruži širok spektar usluga programske tehnologije. Može se podijeliti na dva dijela: izrada kontrolnih programa i izrada programa obrade.

Kontrolni programi vrši početno učitavanje RAM-a mašina i kontrolu rada automatizovanog sistema upravljanja, uključujući obradu prekida, distribuciju rada kanala, učitavanje programa iz biblioteke u RAM. Kontrolni programi omogućavaju višeprogramski rad i komuniciraju s operaterom.

Programi za obradu uključuju sistem za automatizaciju programiranja i servisne programe.

Programiranje funkcija sistema automatizacije sljedeće: snimanje programa na ulaznim programskim jezicima; prijevod programa na interni jezik računala; kombinovanje (sastavljanje) potrebnih konfiguracija (segmenata) iz standardnih potprograma; programi za otklanjanje grešaka na nivou jezika unosa; prilagođavanje programa na nivou jezika unosa.

Osnovni zadaci uslužnih programa su: snimanje programa u biblioteci; isključenje programa iz biblioteke; prepisivanje programa s jednog magnetnog medija na drugi, ispis i izlaz programa na bušene medije; pozivanje potrebnih programa u RAM tokom rada i konfigurisanje na svojoj lokaciji.

Glavne komponente MO ACS su sistemski program za otpremu i biblioteka standardnih potprograma i standardnih programa dizajniranih za obradu proizvodnih i ekonomskih informacija.

Program za otpremu sistema obezbjeđuje funkcionisanje automatizovanih sistema upravljanja u režimu koji je određen proizvodnim, privrednim ili administrativnim aktivnostima.

Biblioteka standardnih rutina, dostupna u MO računaru je prelazni korak ka razvoju sistemske biblioteke fokusirane na procese obrade informacija u automatizovanim sistemima upravljanja. Sistemska biblioteka mora sadržavati:

programi za unos i pretvaranje dokumenata i drugih pisanih izvora početnih podataka u kompjuterski oblik;

programi za organiziranje računalnih nizova, koje karakteriziraju i veliki volumeni i složenost njihove strukture, za efikasno pretraživanje i ekstrakciju potrebnih podataka iz nizova;

programi za pretvaranje podataka u najprihvatljiviji oblik za čovjeka (u obliku grafikona, dijagrama, slika) i njihov izlaz na vanjske uređaje.

Programski jezici

Programski jezik nazivaju se znakovni sistemi koji se koriste za opisivanje procesa rješavanja problema na računaru. Po svojoj prirodi, programski jezici se dijele u tri grupe:

  1. formalni algoritamski jezici;
  2. formalni nealgoritamski programski jezici;
  3. nisu potpuno formalizirani sistemi znakova koji se koriste u programiranju.

Formalni programski jezici. Ova grupa jezika uključuje: algoritamske jezike mašina i operativnih sistema; mašinski orijentisani algoritamski jezici; problemski orijentisani algoritamski jezici; univerzalni mašinski nezavisni algoritamski jezici.

Jezici operativnih sistema nazivaju se algoritamski jezici koje percipiraju kompleksi formirani od kompjutera i dispečerskog programa razvijenog za njih (ponekad se naziva i supervizor).

Direktno ručno sastavljanje programa na jeziku mašine ili operativnog sistema trenutno se ne koristi, jer zahteva od programera da zapamti veliki broj detalja, bez kojih je nemoguće napraviti program iz komandi.

Mašinski orijentisani algoritamski jezici sadrže izražajna sredstva koja omogućavaju da se u zapisu algoritma naznači uz pomoć kojih tehničkih sredstava treba izvesti pojedine njegove dijelove i kako treba koristiti uređaje za pohranu. Strojno orijentirani programski jezici uključuju autokodove i neke jezike koji su po svojim mogućnostima bliski univerzalnim algoritamskim jezicima, na primjer ALMO.

Problemski orijentisani algoritamski jezici To su jezici koji su posebno dizajnirani da opisuju procese rješavanja problema određene uže klase, na primjer, probleme linearne algebre, statistike, probleme obrade podataka, itd. Konkretno, COBOL pripada problemskim jezicima.

Univerzalni mašinski nezavisni algoritamski jezici pogodan za kreiranje algoritama za rješavanje problema vrlo širokih klasa. Ovi jezici uključuju već spomenuti ALGOL, FORTRAN, PL/1.

Među univerzalnim mašinski nezavisnim algoritamskim jezicima, izuzetak je YAL. Svrha ovog jezika nije ograničena na to da bude programski jezik. YALS se koristi kao prva faza opisivanja algoritama pri programiranju na mašinskom jeziku ili ASSEMBLY jeziku (metoda programiranja operatora; algoritam napisan u YALS-u se ručno prevodi na mašinski jezik ili ASSEMBLY jezik).

Tabela ispod daje uporedne podatke između formalnih programskih jezika.

Ne potpuno formalizirani sistemi znakova. Ovi jezici se obično koriste u ručnom programiranju ili u preliminarnoj, ručnoj fazi programiranja pomoću računara. Primjer za to je dijagram toka programa. Dijagram toka programa je uvećani opis programa, u kojem su njegovi pojedinačni dijelovi prikazani u obliku „blokova“ (pravokutnika, romba, krugova, itd.), unutar kojeg je sadržaj ovih dijelova naveden na prirodnom jeziku ( na primjer, na ruskom). Veza između blokova (dijelova programa) prikazana je pomoću linija koje označavaju prijenos kontrole. Linije mogu biti označene da bi označile uslove pod kojima se vrši prijenos kontrole. Dijagrami toka su slični algoritmima napisanim u LLS koristeći generalizirane operatore, ali se razlikuju od njih po tome što je značenje blokova navedeno prirodnim, neformalnim jezikom, dok je u LLS-u generaliziranim operatorima omogućeno dekodiranje na tačnom formalnom jeziku.

Trenutno je poznato više od 2000 različitih algoritamskih jezika i više od 700 područja njihove primjene za rješavanje odgovarajućih problema na računalu.

Postoje programski jezici sledećih nivoa:

    jezik nultog ili nižeg nivoa - mašinski kod;

    jezik prvog nivoa - mnemonički kod, ili simbolički kodni jezik;

    jezik drugog nivoa - autokod (makrokod);

    jezici trećeg nivoa (višeg) - problemski orijentisani jezici.

Preporučljivo je koristiti automatizirane sisteme upravljanja kao jezike za unos, ovisno o vrsti zadataka. problemski orijentisani jezici razne vrste

Uporedni podaci formalnih algoritamskih programskih jezika

Klasa algoritamskih programskih jezika

Računovodstvo karakteristika računara

Karakteristike klase problema

Metoda programiranja

Uslovna procjena kvaliteta programa

Mašinski jezici

Mašinski orijentisani jezici

Djelomično

Određeno karakteristikama računara

Automatizovano

Zadovoljavajuće

Problemski orijentisani jezici

Minor

Automatizovano

Zadovoljavajuće

Univerzalni mašinski nezavisni jezici

Odsutan ili vrlo mali

Veoma opsežna

Automatizovano

Nisko

(na primjer, za analizu - ALGOL, FORTRAN, itd., za ekonomske zadatke - ALGEK itd., za informativne zadatke - COBOL, SINTHOL, itd.).

Pogledajmo neke od algoritamskih programskih jezika.

ALGOL-60. Naziv jezika dolazi od engleskih riječi Algorithmic Language. Razvila ga je grupa naučnika iz raznih zemalja 1960. godine i postao je široko rasprostranjen. Razlozi njegovog uspjeha leže u njegovoj blizini običnom matematičkom jeziku, pogodnosti opisivanja široke klase problema, univerzalnosti i potpunoj nezavisnosti od konkretnog računara, te strogoj formalizaciji jezika od abecede do najsloženijih konstrukcija.

ALGOL-60 nije samo univerzalni programski jezik, već i međunarodni jezik za opisivanje algoritama.

Osnova za pisanje algoritama na jeziku ALGOL-60 je niz operatora odvojenih simbolom “;”. Ovaj niz operatora, koji su pojedinačne radnje u jeziku, praćen je nizom opisa koji prevodiocu daju informacije o potrebnim svojstvima koja se koriste u operatorima. Opisi, na primjer, pružaju informacije o klasama brojeva koji se koriste kao vrijednosti varijabli, veličini nizova brojeva itd. Takva kombinacija opisa i operatora u ovom jeziku naziva se blok.

Program u jeziku ALGOL-60 je blok, ili složeni izraz, koji ne sadrži drugu naredbu unutar i ne koristi drugu izjavu koja nije sadržana u njemu.

Računalni centri u kojima se programiranje izvodi u ALGOL-u treba da akumuliraju iskustvo ne u obliku kompletnih ALGOL programa, već u obliku opisa procedura. To je zbog činjenice da je gotovo nemoguće uključiti gotove ALGOL programe u nove programe, dok su opisi procedura posebno dizajnirani za to.

U SSSR-u je ALGOL-60 postao široko rasprostranjen u obliku nekih njegovih varijanti.

FORTRAN. Reč FORTRAN nastala je od dve engleske reči (prevodilac formula). Jedna od najvažnijih karakteristika FORTRAN jezika je da je relativno slobodan od specifičnosti određenog računara. FORTRAN je strojno nezavisan programski jezik.

Na ovom jeziku su akumulirane velike biblioteke matematičkog softvera, uključujući i standardne (često korišćene) programe i mnoge posebne programe koji se koriste za rešavanje specifičnih problema.

Široko uvođenje FORTRAN-a u programsku praksu je zbog njegovih kvaliteta, od kojih treba napomenuti, prije svega, njegovu jednostavnost u odnosu na druge algoritamske jezike (na primjer, ALGOL); drugo, zbog odsustva previše složenih struktura, prevedeni programi su efikasniji u odnosu na programe napisane na drugim jezicima; u isto vrijeme, FORTRAN je pogodan za programiranje većine računskih algoritama;

treće, FORTRAN ima veoma moćna sredstva za povezivanje osobe sa mašinom: informacije koje proizvodi kompjuter predstavljaju se u formi poznatom naučnicima i inženjerima. I konačno, četvrto, FORTRAN je veoma pogodan za efikasno korišćenje eksternih računarskih uređaja.

Algoritam za rješavanje problema, napisan korištenjem FORTRAN-a, sastoji se od niza operatora. Ovi operatori mogu biti nekoliko različitih tipova. Uzeti zajedno, operatori koji definiraju algoritam za rješavanje problema čine originalni program. Nakon što je izvorni program napisan i bušen na bušenim karticama, on se konvertuje u radni program pomoću FORTRAN prevodioca.

Prva izjava je naredba zaglavlja, koja ima oblik || PROGRAMA ||, gdje je a ime programa, a posljednji je krajnji operator (operator || END ||) i skup potprograma. Glavni program i svaki potprogram lokalizuju oznake operatora, kao i imena varijabli, nizova i drugih veličina, dopuštajući na taj način da se iste oznake i identifikatori koriste u različitim potprogramima iu glavnom programu. Komunikacija između glavnog programa i potprograma se vrši korištenjem odgovarajućih pristupnih izraza.

Prilikom sastavljanja programa na FORTRAN-u preporučuje se pridržavanje sledećeg redosleda operatora: 1) operator-zaglavlje glavnog programa (potprogram); 2) operator opisa fajla; 3) implicitni operator za postavljanje tipa; 4) operator eksplicitnog tipa, operator dimenzioniranja, operator opšteg područja; 5) operator za određivanje ekvivalencije; 6) operator-funkcija, operator-procedura; 7) operator za podešavanje formata, izvršni operatori (bezuslovni, uslovni, ulazni, izlazni); 8) krajnji operater.

COBOL. Naziv jezika dolazi od engleskih riječi Common Business Oriented Language. COBOL je problemski orijentisan algoritamski jezik dizajniran da opiše procese rešavanja problema i obrade podataka. COBOL je trenutno jedini jezik visokog nivoa koji se široko koristi za programiranje ekonomskih problema. Njegova široka popularnost objašnjava se činjenicom da je COBOL prilično blizak prirodnom jeziku na kojem se obično formulišu i rješavaju ekonomski problemi.

Karakteristične karakteristike jezika COBOL su sljedeće:

jezik je u izvesnom smislu podskup engleskog jezika; tekst napisan na COBOL-u može se razumjeti bez prethodne pripreme;

jezik dobro opisuje podatke sa strukturom tipičnom za poslovne papire; ovi podaci se mogu odnositi na lične poslove, robu, finansije (kombinovani podaci su takođe dozvoljeni);

jezik pokušava da reši problem pune kompatibilnosti, odnosno nezavisnosti od specifičnosti konkretnih računara.

COBOL program se sastoji od četiri dijela koji se nazivaju sekcije. Ove sekcije imaju sljedeće nazive: odjeljak za identifikaciju, odjeljak opreme, odjeljak podataka i odjeljak za procedure. Odeljak procedura sadrži stvarni program, ali je besmislen (ili u najboljem slučaju nepotpuno definisan) osim ako nije poznata struktura podataka koji se obrađuju, definisana u trećem delu. Sekcija opreme je zauzvrat podijeljena na sekciju za konfiguraciju i I/O sekciju, a sekcija podataka je podijeljena na sekciju niza, sekciju radne memorije i konstantnu sekciju. Na početku sekcije (odjeljka) nalazi se naziv odjeljka (odjeljka), nakon čega slijedi tačka; naziv sa tačkom zauzima poseban red. Sadržaj odjeljka ili odjeljka sastoji se od rečenica grupiranih u imenovane pasuse.

COBOL znatno olakšava unošenje manjih izmjena u program koje su neophodne prilikom obrade komercijalnih informacija.

U COBOL-u, osnovna jedinica ulaza i izlaza je datoteka podataka. Svaki fajl se sastoji od zapisa. Ista datoteka se često koristi u različitim programima ovisno o prirodi zadataka koji se rješavaju. Opisi datoteka su vrlo strogi i ne dozvoljavaju promjene.

Programeri su uzeli u obzir mogućnost korišćenja jedne mašine za emitovanje programa, a druge mašine za rešavanje problema prema kompajliranom programu. Osim toga, isti program COBOL može se prevesti na jezike različitih računala s različitim setovima opreme.

SOL. Digitalno modeliranje kao efikasna istraživačka metoda dobija sve veću popularnost među stručnjacima koji se bave analizom i projektovanjem složenih sistema.

Vrlo često sistemski specijalista ima poteškoća u pisanju programa koji simulira rad sistema koji proučava. Razlog za to može biti ekstremna složenost sistema koje je gotovo nemoguće matematički opisati. Problemi ovog tipa obiluju, posebno, u praksi kreiranja instrumenata i upravljačkih sistema. Da bi se olakšalo kreiranje programa, trenutno se koriste automatski programski jezici (specijalizirani jezici za modeliranje) koji omogućavaju, uz što manje vremena utrošenog na pripremu i implementaciju zadataka na računaru, da se grade i proučavaju programi koji simuliraju rad uređaja. sistem koji se proučava.

Istovremeno, elementi specijalizovanog jezika su, po pravilu, prilično univerzalni i mogu biti . primijenjen na široku klasu simuliranih fenomena. Osim toga, specijalizovani jezici za modeliranje, u poređenju sa univerzalnim, značajno pojednostavljuju programiranje računskih i logičkih operacija koje karakterišu sistem koji se modelira. Istovremeno, veza između postavljača problema i programera je pojednostavljena. To se postiže zahvaljujući sljedećim karakteristikama specijalizovanih jezika za modeliranje:

  • sposobnost fiksiranja strukture distribucije memorije mašine između varijabli i parametara. Ova distribucija je granularnija i rafiniranija od one koja se postiže upotrebom većine jezika opšte namene;
  • prisustvo skupa instrukcija koje pojednostavljuju promjenu stanja simuliranog sistema. U većini slučajeva, ovo se provodi standardnom kontrolnom ili privremenom potprogramom koji kontrolira redoslijed implementacije potprograma;
  • prisustvo skupa instrukcija koje određuju potrebu za implementacijom određenog potprograma u određeno vrijeme;
  • prisustvo naredbi za izvođenje standardnih ili često nailazivih operacija koje se odnose na slučajne brojeve i distribucije vjerovatnoće;
  • prisustvo komandi koje pojednostavljuju dobijanje i snimanje statističkih indikatora tokom rada programa za modeliranje.

Pogledajmo neke specijalizovane jezike za algoritamsko modeliranje.

Univerzalni jezik za modeliranje GPSS je najčešće korišten i jednostavan je i intuitivan. Ne zahtijeva poznavanje programiranja ili mašinskih operacija. Simulacijski program je predstavljen u obliku blok dijagrama, što je posebno privlačno ne-programerima.

Algoritamski jezik SIMSCRIPT smatra se trenutno najmoćnijim jezikom za modeliranje. Zbog niza svojih jedinstvenih karakteristika, primjenjiv je na najširu klasu zadataka. Međutim, ovaj jezik je relativno složen, a dijagnostički alati za otklanjanje grešaka u programima su ograničeni. Osim toga, potencijalni korisnik ovog jezika mora poznavati FORTRAN i imati iskustvo u programiranju.

Pažnju stručnjaka uključenih u rješavanje problema modeliranja privlače specijalizirani jezici razvijeni za ove svrhe na bazi ALGOL-a. Među ovim automatskim programskim jezicima najnapredniji su SIMULA i SOL.

Primjer jednog od najuspješnijih specijaliziranih algoritamskih jezika dizajniranih za modeliranje sistema koji se diskretno mijenja je SOL jezik - Simulation Oriented Language.

SOL jezik je izgrađen na bazi univerzalnog programskog jezika ALGOL, ima istu strukturu i koristi svoje glavne elemente. Da bi opisao široku klasu procesa sa diskretnim događajima, SOL predstavlja univerzalni sistem koncepata, i stoga je u mnogo čemu veoma sličan problemski orijentisanim automatskim programskim jezicima, kao što su ALGOL ili FORTRAN. Međutim, SOL jezik ima osnovne karakteristike koje ga razlikuju od ovih jezika: SOL pruža mehanizam za modeliranje asinhronih paralelnih procesa, pogodne notacije za slučajne elemente unutar aritmetičkih izraza i automatska sredstva za prikupljanje statističkih podataka o komponentama simuliranog sistema. S druge strane, mnoge karakteristike problematično orijentiranih jezika opće namjene se ne koriste u SOL-u ne zato što su nekompatibilne s njim, već zato što unose velike komplikacije u njegov dizajn bez proširenja njegovih mogućnosti. Principi na kojima se zasniva konstrukcija jezika i pisanje programa za modeliranje u njemu omogućavaju izgradnju modela složenih sistema u lako čitljivom obliku.

PL/I. Naziv jezika dolazi od engleskih riječi Programming Language/One.

PL/I jezik se pojavio nakon stvaranja niza vrlo naprednih jezika i, naravno, ovi jezici prethodnici su imali značajan utjecaj na njegovu strukturu. Dakle, zadržava blok strukturu programa iz ALGOL-a, mogućnost dinamičke alokacije memorije, postoji aparat za pozivanje procedura, metoda za određivanje formata koji se koriste u FORTRAN-u, itd. Ali ima mnogo novih mogućnosti. Jezik je pogodan za modeliranje, rješavanje logičkih problema, proučavanje logičkih kola, rješavanje problema u realnom vremenu i razvoj softverskih sistema. Moguće je koristiti različite vrste podataka (binarni, decimalni, simbolički, kompleksni brojevi, matrice, itd.), ali je te podatke vrlo teško organizirati u nizove, tabele, tekstove, upitnike, ormare za arhiviranje itd. Postoji širok spektar standardnih funkcija i procedura. PL/I jezik je razvio uspješan operativni sistem koji kontrolira sve procese unosa, izlaza i razmjene informacija između glavnog uređaja i uređaja za skladištenje podataka. Sve ove karakteristike ostavljaju utisak veoma zagušenog jezika. Treba imati na umu i nedostatke: opis jezika je nezadovoljavajući, nije formalizovan.

PL/I je višenamjenski programski jezik namijenjen ne samo za ekonomsko i naučno-tehničko programiranje, već i za rad programiranja u realnom vremenu i za kreiranje programskih sistema.

Jedan od glavnih ciljeva pri razvoju jezika bio je postizanje modularnosti, odnosno mogućnost korištenja već prevedenih programa u glavnom programu kao zasebnih modula bez ponovnog prevođenja. Uzeta je u obzir potreba da se osigura što veća jednostavnost i lakoća pisanja programa. Istovremeno, potreba za sastavljanjem opštih i detaljnih logičkih dijagrama programa i dalje ostaje, ali uz odgovarajuće iskustvo u programiranju u PL/I jeziku, možete izbjeći veliki i zamoran posao povezan s pisanjem programa na strojnom jeziku.

U jeziku PL/I, svakom deskriptoru varijable, svakoj pojašnjavajućoj konstrukciji-dodatku i svakoj specifikaciji dato je „podrazumevano tumačenje (princip). To znači da kad god jezik pruža nekoliko karakteristika, a programer nije naveo nijednu, kompajler primjenjuje „podrazumevanu interpretaciju“, tj. preuzima neke od karakteristika koje su u jeziku predviđene za ovaj slučaj. Mogućnosti koje se podrazumevaju za svaku konstrukciju u jeziku su one koje će programeru najverovatnije trebati.

Programi na PL/I jeziku su napisani u slobodnoj formi; Programer sam može razviti oblike snimanja programa koji su mu potrebni. Istovremeno je omogućen pristup svim sredstvima računarskog sistema.

Izjave programa napisane na PL/I jeziku se kombinuju u „blokove“. Blokovi obavljaju važne funkcije: definiraju opseg varijabli i drugih imena, tako da se isto ime u različitim blokovima može koristiti u različite svrhe; omogućavaju vam da dodijelite memorijske ćelije za varijable samo za vrijeme trajanja datog bloka i oslobodite ih za upotrebu u druge svrhe kada blok prestane da radi.

RPG. RPG jezik je dizajniran da automatizuje programiranje zadataka i obradu ekonomskih informacija. Sadržaj ovih zadataka uglavnom je ograničen na sljedeće procese: održavanje datoteka (tj. organiziranje, pohranjivanje, prilagođavanje i ažuriranje), sortiranje datoteka, sastavljanje i štampanje različitih računovodstvenih dokumenata, kao što su liste, izvodi, tabele, rezimei, izvještaji itd. Po pravilu, proračuni zauzimaju mali dio ukupnog obima rješavanja problema. Prilikom rješavanja takvih problema prikladno je koristiti RPG-ove, posebno u fazi sastavljanja i izdavanja izvještaja. U ovom slučaju pretpostavlja se da su ulazne datoteke korištene za pripremu izvještaja kreirane i sortirane na druge načine.

RPG vam omogućava da izvršite neke proračune (obično jednostavne i standardne) na ulaznim podacima, generirate izvještaj i odštampate ga. Ulazni podaci se mogu uneti sa kartice, magnetne trake ili memorijskih uređaja sa direktnim pristupom. Osim kreiranja izvještaja, RPG vam omogućava ispravljanje i ažuriranje ulaznih datoteka, kao i kreiranje novih datoteka. RPG ima alate koji vam omogućavaju obavljanje operacija sa tabelama (na primjer, traženje potrebnog elementa tablice i prikazivanje tablice), kao i alate za organiziranje povezivanja RPG programa sa programima napisanim na drugim jezicima ​​koristi se za rješavanje istog problema.

Karakteristika jezika je da programer ne mora opisati redoslijed operacija za rješavanje problema (algoritam problema), već samo na posebnim obrascima mora opisati ulazne podatke koji se koriste za kreiranje izvještaja, proračune koji se vrše na tim podacima , i format izvještaja.

Na osnovu ovih informacija, RPG prevodilac generiše radni program, a zatim kreirani program obrađuje ulazne fajlove i ispisuje traženi izveštaj.

Priprema izvještaja pomoću RPG-a sastoji se od sljedećih glavnih koraka: definiranje podataka o zadatku i način njihove obrade; izrada početnog programa; perforacija originalnog programa; dobijanje programa rada; izvršenje programa rada.

Prije nego što napišete program za određeni zadatak, potrebno je izvršiti njegovu analizu. Potrebno je odrediti ulazne podatke, format i vrstu zapisa ulaznih podataka, polja zapisa koja se koriste i njihov položaj, način obrade podataka, broj i vrstu zbroja koji se izračunavaju, format štampanog izvještaja i ostali izlazni podaci.

Nakon što se utvrde ulazni i izlazni podaci zadatka i način njihove obrade, potrebno je te podatke opisati na odgovarajućim RPG obrascima. Postoji nekoliko tipova RPG obrazaca, od kojih je svaki dizajniran za snimanje određenih informacija. Obrasci za opis ulaznih podataka navode sve ulazne datoteke, opisuju strukturu i karakteristične karakteristike svih vrsta zapisa u svakoj datoteci i lokaciju polja koja se koriste u zapisima. Obrazac za proračun pokazuje koju obradu ulaznih podataka treba izvršiti. Obrazac za opis izlaza opisuje format potrebnog izvještaja i drugih izlaznih datoteka. Obrazac za opis datoteke i obrazac za dodatne informacije ukazuju na karakteristike datoteka koje se koriste u programu (ulaz, izlaz, tabela, itd.). Početni program je informacija naznačena na RPG obrascima za rješavanje datog problema.

Nakon pisanja programa na odgovarajućim obrascima, tekst programa se perforira na kartice.

Da biste dobili radni program, prvo morate prevesti izvorni program. Da bi se to postiglo, neke kontrolne kartice se dodaju izvornim programskim karticama, kao što su kontrolna kartica prevodioca RG1G i kartice kontrolnih operatera - TASK CONTROL, neophodne za rad RPG prevodioca. Nakon prijevoda, rezultirajući modul se može uređivati ​​pomoću EDITOR-a. Kao rezultat uređivanja dobija se program (modul za učitavanje) spreman za izvršenje, koji se naziva radnim programom. Kompilacija i uređivanje su neophodni za izradu željenog izvještaja.

Radni program se može izvršiti odmah nakon emitovanja i montaže ili u bilo koje drugo vrijeme. Radnički program čita ulazne datoteke pripreme, obrađuje ih i kao rezultat proizvodi izvještaj i druge izlazne datoteke.

ALGAMS. Algoritamski jezik ALGAMS je namenjen mašinama srednje snage; bio je zasnovan na podskupu jezika ALGOL-60.

Važan problem koji se rješava u ALGAMS-u je uvođenje input-output procedura. ALGAMS je proširio skup standardnih funkcija, moguće je koristiti i bibliotečke potprograme. ALGAMS uključuje alate koji vam omogućavaju da naznačite moguću segmentaciju programa, takozvane identifikatore dijelova, kao i alate koji omogućavaju efikasno korištenje bafer memorije računala opisivanjem nekih nizova posebnim identifikatorima.

Ulazni izraz se sastoji od INPUT identifikatora iza kojeg slijedi lista stvarnih parametara, zatvorenih u zagradama. Prvi parametar specificira broj kanala kroz koji se unose podaci, preostali stvarni parametri su jednostavne varijable, identifikatori niza ili indeksirane varijable.

Prilikom unosa teksta, uzastopnim elementima niza počevši od navedenog ulaznog objekta dodjeljuju se cjelobrojne vrijednosti koje odgovaraju uzastopnim znakovima ulaznog niza u smislu procedure=TEXT. Procedura = TEKST je definiran na sljedeći način:<оператор текст>::=TEXT (<строка>, <переменная с индексами>).

Identifikator ulazne procedure je riječ OUTPUT. Operator ima četiri tipa: operator broja, logički operator, tekstualni operator i operator rasporeda. Izlazni izraz se sastoji od OUTPUT identifikatora iza kojeg slijedi lista stvarnih parametara, zatvorenih u zagradama. Prvi stvarni parametar procedure specificira broj izlaznog kanala, drugi parametar specificira format izlaznih podataka, a svi ostali specificiraju izlazne objekte. Postoje alati za uređivanje prilikom štampanja informacija.

BASIE K. Naziv jezika dolazi od engleskih riječi Beginners all Purpose Symbolic Instructioncode. Široku popularnost stekao je zbog svoje jednostavnosti, lakoće učenja i velikih mogućnosti za rješavanje širokog spektra problema. U mnogim mini računarima ovaj jezik je usvojen kao glavni govorni jezik. BASIC jezik je programski jezik. Pogodan je za rješavanje manjih naučnih i tehničkih problema, kako po broju izvedenih operacija tako i po količini ulaznih i rezultirajućih podataka. Najvažnija karakteristika jezika je da je prilagođen za implementaciju korak po korak. To znači da nakon svake promjene izvornog teksta BASIC programa nije moguće ponovo prevesti cijeli program, već samo one njegove iskaze koji su promijenjeni. Mogućnost korak-po-korak implementacije BASIC jezika omogućava vam da smanjite troškove kompjuterskog vremena za ponovno prevođenje. Ovo vam, zauzvrat, omogućava da ubrzate ciklus otklanjanja grešaka toliko da postaje preporučljivo otklanjanje grešaka u BASIC programima u režimu dijaloga.

Pored mogućnosti akumulacije velikih programa koji se sastoje od prenumeriranih operatora BASIC jezika, predviđene su i takozvane direktne komande, odnosno one koje se izvršavaju odmah nakon što se unesu sa konzole programera (sa teletipa). U direktnom komandnom režimu, ne mogu se koristiti samo administrativne direktive kao što su RUN - početak izvršavanja, LIST - štampanje teksta, SAVE - čuvanje teksta programa u biblioteci, BYE - završetak radne sesije; bilo koji BASIC operator unet bez serijskog broja se izvršava u direktnom komandnom modu. Ovo posebno omogućava da se vrednosti varijabli ispisuju i menjaju u bilo kom trenutku tokom izvršavanja programa.

Funkcionalna riječ Radnja koju treba izvršiti

ŠTAMPAJ Ispiši tekst poruke stavljen u navodnike, ili vrijednost aritmetičkog izraza (nakon što ga procijeni), ili vrijednosti varijabli

INPUT Unesite brojeve sa konzole programera i pošaljite ih navedenim varijablama

LET Dodijeli varijablu vrijednosti izraza

IDI NA Idite na izvršenje operatora sa datim brojem

AKO ako je navedeni uslov ispunjen, onda je potrebno izvršiti radnju navedenu u ovoj naredbi, u suprotnom preći na izvršenje sljedećeg izraza

PODACI Podaci; ova izjava se ne izvršava. Opisuje blok podataka za otklanjanje grešaka (brojeva). Kolekcija blokova podataka za otklanjanje grešaka formira niz podataka za otklanjanje grešaka

END Kraj programa

Dakle, šema kompilacije korak po korak u kombinaciji sa načinom direktnog komandovanja omogućava vam da efikasno otklanjate greške u BASIC programima u režimu dijaloga.

BASIC program se sastoji od iskaza, od kojih svaki počinje funkcionalnom riječju. Servisna riječ određuje tip operatora i prirodu radnji koje se izvode tokom njegovog izvršavanja.

Prilikom rješavanja mnogih zadataka potrebno je podatke prikazati u obliku tabela. Koristeći mogućnosti nekih operatora BASIC jezika, možete generirati tabele u različitim formatima.

21. vijek je vrijeme kada je znanje o informacijama najvažnija konkurentska prednost u bilo kojoj oblasti. Međutim, neće donijeti nikakvu korist ako nije izražena na jeziku razumljivom onima kojima je namijenjena ili ako nema prevodioca koji bi mogao prenijeti njegovo značenje primaocu.

Trenutno na Zemlji živi oko 2000 ljudi. Njihova odlika, prije svega, je jezik.

Pored govornih (prirodnih) jezika, čovečanstvo je stvorilo mnoge veštačke jezike. Svaki od njih je dizajniran za rješavanje određenih problema.

Takvi znakovni sistemi uključuju formalne jezike, čiji su primjeri prikazani u nastavku.

Definicije

Prije svega, hajde da formulišemo šta je jezik. Ova riječ se obično razumije kao znakovni sistem koji se koristi za uspostavljanje komunikacije između ljudi i spoznaje.

Osnova većine i umjetnih i prirodnih jezika je abeceda.

To je skup simbola koji se koriste za sastavljanje riječi i fraza.

Jezik karakteriše:

  • skup znakova koji se koriste;
  • pravila za sastavljanje "riječi", "fraza" i "tekstova" od njih;
  • skup pravila (sintaktičkih, pragmatičkih i semantičkih) za upotrebu sastavljenih konstrukcija.

Karakteristike prirodnih jezika

Kao što je već spomenuto, svi jezici se konvencionalno dijele na umjetne i prirodne. Postoje mnoge razlike među njima.

Prirodni jezici uključuju govorne jezike. Njihove karakteristike uključuju, između ostalog:

  • dvosmislenost većine riječi;
  • postojanje sinonima i homonima;
  • prisustvo više naziva za isti predmet;
  • postoje izuzeci od skoro svih pravila.

Sve ove karakteristike su glavne razlike između prirodnih znakovnih sistema i formalnih jezika. Primjeri nejasnoća u riječima i izjavama svima su poznati. Dakle, riječ “eter”, ovisno o kontekstu, može značiti i supstancu i radio ili televizijsko emitiranje.

Glavne funkcije govornih jezika su:

  • komunikacija;
  • kognitivna aktivnost;
  • izražavanje emocija;
  • uticaj na sagovornika (dopisnika, ako je u pitanju prepiska).

Karakteristike vještačkih jezika

Umjetne jezike stvaraju ljudi za posebne svrhe ili za određene grupe ljudi.

Jedna od glavnih karakteristika umjetnih jezika je nedvosmislena definicija njihovog vokabulara, kao i pravila za dodjeljivanje značenja i formiranje izraza.

Formalni jezici i gramatike

Jezik, bio prirodan ili vještački, može postojati samo ako ima skup specifičnih pravila. Istovremeno, treba osigurati dosljedan, kompaktan i tačan prikaz odnosa i svojstava predmetne oblasti koja se proučava. Ako su strogo formulisani, onda kažu da je to jezik. Primjeri ovakvih znakovnih sistema su programski jezici, iako, striktno govoreći, oni radije zauzimaju određenu međupoziciju (vidi dolje).

Šema za izgradnju formalnog sistema znakova je sljedeća:

  • odabire se abeceda (skup početnih znakova);
  • navedena su pravila za konstruisanje izraza (sintakse) jezika.

Područje primjene

Formalna logika, programiranje itd.) koriste se u procesu naučnog istraživanja. Oni su bolji od prirodnih u prezentiranju znanja i sredstvo su objektivnije i preciznije razmjene informacija.

Formalni jezici uključuju sve poznate sisteme matematičkih i hemijskih simbola, Morzeovu azbuku, notne zapise itd.

Osim toga, formalni programski jezici se široko koriste. Njihov brzi razvoj započeo je sredinom 20. stoljeća, u vezi s pojavom kompjuterske tehnologije.

Jezik formalne logike

Osnova svakog programskog jezika je matematička. On se, pak, oslanja na znakovni sistem formalne logike.

Kao nauku, logiku je stvorio Aristotel. Takođe je razvio pravila za transformaciju iskaza koja čuvaju njihovu istinitost bez obzira na sadržaj pojmova uključenih u ove izjave.

Formalna logika se bori s „nedostacima“ prirodnih jezika povezanih s dvosmislenošću nekih iskaza itd. U tu svrhu operacije s mislima zamjenjuju se radnjama sa znakovima formalnog jezika. Ovo eliminiše svaku nesigurnost i omogućava vam da tačno utvrdite istinitost izjave.

Karakteristike programskih jezika

Kao što je već pomenuto, uz određene rezerve mogu se klasifikovati kao formalni.

S potonjim ih spajaju mnoga sintaktička pravila, a s prirodnim neke ključne riječi i konstrukcije.

Kreiranje programskog jezika zahtijeva definiranje skupa valjanih simbola i ispravnih jezičkih programa i značenja svakog ispravnog programa. Ako se prvi zadatak može riješiti putem formalizacije, u slučaju drugog ovi pristupi ne funkcioniraju.

Mnogi važeći znakovi u programskim jezicima su znakovi koji se mogu kucati na tastaturi. Oni predstavljaju prvi dio ASCII tablice kodiranja.

Gramatičari

Programski jezici, kao i svaki drugi, imaju gramatiku. Ovaj termin se odnosi na opis metode sastavljanja rečenica. Gramatike su opisane na različite načine. U slučaju programskih jezika, to su pravila koja su specificirana uređenim parovima nizova dva tipa simbola: onih koji definiraju sintaktičke konstrukcije i semantičkih ograničenja. Kada definišu gramatike, prvo formalno navode pravila za građenje sintaktičkih konstrukcija, a zatim definišu semantičke u nekom od prirodnih jezika.

Pravila se bilježe u grafičkom obliku pomoću posebnih dijagrama. U početku je ovaj pristup korišten pri kreiranju Pascal jezika. Međutim, tada se počeo naširoko koristiti u drugima.

Klasifikacija programskih jezika

Trenutno ih ima nekoliko hiljada, zajedno sa „dijalektima“. Oni se dijele na proceduralne i deklarativne. U jezicima prvog tipa transformacija podataka je specificirana opisom redoslijeda radnji koje se na njima izvode, dok se u drugom - odnosima. Postoje i druge klasifikacije. Na primjer, programski jezici se dijele na funkcionalne, proceduralne, objektno orijentirane i logičke. Ako problemu pristupimo striktno, onda nijedna klasifikacija ne može biti objektivna. Uostalom, značajan dio programskih jezika ima mogućnosti formalnih sistema nekoliko tipova odjednom. Vremenom će se ivice verovatno još više zamutiti.

Sada možete odgovoriti na pitanje: "Koje formalne jezike znate?" Naučnici ih nastavljaju usavršavati kako bi omogućili rješavanje različitih praktičnih i teorijskih problema koji se trenutno smatraju nerješivim.

Programiranje je čitava nauka koja vam omogućava da kreirate kompjuterske programe. Uključuje ogroman broj različitih operacija i algoritama koji čine jedan programski jezik. Dakle, šta je to i koji su različiti programski jezici? Članak daje odgovore, a također pruža preglednu listu programskih jezika.

Istoriju nastanka i promjene programskih jezika treba proučavati zajedno s istorijom razvoja kompjuterskih tehnologija, jer su ti koncepti direktno povezani jedni s drugima. Bez programskih jezika bilo bi nemoguće kreirati bilo kakav program za rad računara, što znači da bi kreiranje računara postalo besmislena vežba.

Prvi mašinski jezik izumio je 1941. Konrad Zuse, koji je izumitelj analitičke mašine. Nešto kasnije, 1943. godine, Howard Aiken je stvorio Mark 1 mašinu, sposobnu da čita uputstva na nivou mašinskog koda.

Pedesetih godina prošlog veka počela je potražnja za razvojem softvera, a mašinski jezik nije mogao da obradi velike količine koda, pa je stvoren novi način komunikacije sa računarima. "Assembler" je prvi mnemonički jezik koji je zamijenio strojne upute. S godinama se lista programskih jezika samo povećava, jer opseg računarske tehnologije postaje širi.

Klasifikacija programskih jezika

Trenutno postoji više od 300 programskih jezika. Svaki od njih ima svoje karakteristike i pogodan je za određeni zadatak. Svi programski jezici mogu se podijeliti u nekoliko grupa:

  • Aspektno orijentisan (glavna ideja je odvajanje funkcionalnosti za povećanje efikasnosti softverskih modula).
  • Strukturno (bazirano na ideji stvaranja hijerarhijske strukture pojedinačnih programskih blokova).
  • Logički (zasnovan na teoriji aparata matematičke logike i pravilima rezolucije).
  • Objektno orijentisan (u takvom programiranju više se ne koriste algoritmi, već objekti koji pripadaju određenoj klasi).
  • Multi-paradigma (kombinujte nekoliko paradigmi, a programer sam odlučuje koji jezik će koristiti u datom slučaju).
  • Funkcionalni (glavni elementi su funkcije koje mijenjaju svoju vrijednost u zavisnosti od rezultata proračuna izvornih podataka).

Programiranje za početnike

Mnogi se pitaju šta je programiranje? U suštini, to je način komunikacije sa računarom. Zahvaljujući programskim jezicima, možemo dodijeliti određene zadatke različitim uređajima kreiranjem posebnih aplikacija ili programa. Prilikom proučavanja ove nauke u početnoj fazi, najvažnije je odabrati odgovarajuće (za vas interesantne) programske jezike. Spisak za početnike je dat u nastavku:

  • Basic je izumljen 1964. godine, pripada porodici jezika visokog nivoa i koristi se za pisanje aplikativnih programa.
  • Python je prilično jednostavan za naučiti zbog svoje jednostavne, čitljive sintakse, ali prednost je u tome što se može koristiti za kreiranje i običnih desktop programa i web aplikacija.
  • Pascal je jedan od najstarijih jezika (1969) stvoren za podučavanje učenika. Njegova moderna modifikacija je strogo tipizirana i strukturirana, ali Pascal je potpuno logičan jezik koji je razumljiv na intuitivnom nivou.

Ovo nije potpuna lista programskih jezika za početnike. Postoji ogroman broj sintaksa koje je lako razumjeti i koje će sigurno biti tražene u narednim godinama. Svako ima pravo da samostalno odabere pravac koji će mu biti zanimljiv.

Početnici imaju priliku da ubrzaju svoje učenje programiranja i njegovih osnova zahvaljujući posebnim alatima. Glavni pomoćnik je integrisano razvojno okruženje za programe i aplikacije Visual Basic (“Visual Basic” je takođe programski jezik koji je naslijedio stil Basic jezika iz 1970-ih).

Nivoi programskih jezika

Svi formalizirani jezici namijenjeni kreiranju, opisivanju programa i algoritama za rješavanje problema na računarima podijeljeni su u dvije glavne kategorije: programski jezici niskog nivoa (lista je data u nastavku) i visokog nivoa. Razgovarajmo o svakom od njih posebno.

Jezici niskog nivoa su dizajnirani da kreiraju mašinske instrukcije za procesore. Njihova glavna prednost je u tome što koriste mnemoničke zapise, odnosno umjesto niza nula i jedinica (iz binarnog brojevnog sistema), kompjuter pamti značajnu skraćenu riječ iz engleskog jezika. Najpoznatiji jezici niskog nivoa su „Assembler“ (postoji nekoliko podtipova ovog jezika, od kojih svaki ima mnogo zajedničkog, ali se razlikuje samo po skupu dodatnih direktiva i makroa), CIL (dostupan na .Net-u). platforma) i JAVA bytecode.

Programski jezici visokog nivoa: lista

Jezici visokog nivoa stvoreni su za praktičnost i veću efikasnost aplikacija, oni su sušta suprotnost jezicima niskog nivoa. Njihova karakteristična karakteristika je prisustvo semantičkih konstrukcija koje sažeto i koncizno opisuju strukture i algoritme programa. U jezicima niskog nivoa njihov opis u mašinskom kodu bio bi predugačak i nerazumljiv. Jezici visokog nivoa su nezavisni od platforme. Umjesto toga, prevodioci obavljaju funkciju prevodioca: prevode tekst programa u elementarne strojne instrukcije.

Sljedeća lista programskih jezika: C ("C"), C# ("C-sharp"), "Fortran", "Pascal", Java ("Java") - spada među najčešće korištene sintakse visokog nivoa. Ima sljedeća svojstva: ovi jezici rade sa složenim strukturama, podržavaju nizove tipova podataka i operacije sa I/O informacijama datoteke, a također imaju prednost što je mnogo lakši za rad zbog čitljivosti i razumljive sintakse.

Najčešće korišteni programski jezici

U principu, možete napisati program na bilo kojem jeziku. Pitanje je: da li će raditi efikasno i bez greške? Zato biste trebali odabrati najprikladnije programske jezike za rješavanje raznih problema. Lista po popularnosti može se opisati na sljedeći način:

  • OOP jezici: Java, C++, Python, PHP, VisualBasic i JavaScript;
  • grupa strukturnih jezika: Basic, Fortran i Pascal;
  • multi-paradigma: C#, Delphi, Curry i Scala.

Opseg programa i aplikacija

Izbor jezika na kojem je napisan određeni program u velikoj mjeri ovisi o području njegove primjene. Tako, na primjer, za rad sa samim hardverom računala (pisanje drajvera i pratećih programa), najbolja opcija bi bila C (“C”) ili C++, koji su uključeni u glavne programske jezike (pogledajte listu iznad) . A da biste razvili mobilne aplikacije, uključujući igre, trebali biste odabrati Java ili C# (“C-sharp”).

Ako još niste odlučili u kojem smjeru ćete raditi, preporučujemo da počnete učiti sa C ili C++. Imaju vrlo jasnu sintaksu i jasnu strukturnu podjelu na klase i funkcije. Osim toga, znajući C ili C++, lako možete naučiti bilo koji drugi programski jezik.