Koje vrste programera postoje. Vrste programskih jezika

Proceduralno (imperativno) programiranje odraz je arhitekture tradicionalnih računara. Program u proceduralnom programskom jeziku sastoji se od niza operatora (instrukcija) koji specificiraju postupak rješavanja problema. Glavni je operator dodjeljivanja, koji služi za promjenu sadržaja memorijskih područja. Koncept memorije kao spremišta vrijednosti, čiji se sadržaj može ažurirati programskim izrazima, temelj je imperativnog programiranja. Proceduralni programski jezik omogućava programeru da definira svaki korak u procesu rješavanja problema. Posebnost takvih programskih jezika je u tome što se zadaci dijele na korake i rješavaju korak po korak. Imperativno programiranje je najpogodnije za male podzadaće gdje je brzina izvođenja na modernim računarima vrlo važna.

Proceduralni programski jezici uključuju: Ada, Basic (verzije od Quick Basic do Visual Basic), C, COBOL, Fortran, Modula- 2, Pascal, PL / 1, Rapier, REXX.

Strukturirano programiranje- metodologija razvoja softvera, koja se zasniva na predstavljanju programa u obliku hijerarhijske strukture blokova izgrađenih od tri tipa osnovnih struktura: sekvencijalno izvršavanje, grananje i petlja.

Objektno orijentisano programiranje je metodologija programiranja koja se temelji na predstavljanju programa kao zbirke objekata, od kojih je svaki implementacija određene klase (tip podataka posebne vrste), a klase čine hijerarhiju zasnovanu na principima nasljeđivanja.

Objekti znače uniju podataka i postupaka koji ih obrađuju u jednu cjelinu. Objekti mogu međusobno razmjenjivati ​​poruke. Kada objekt primi poruku, pokreće se odgovarajući rukovatelj, inače nazvan metoda... Objekt ima asocijativni spremnik koji vam omogućuje da putem poruke primite svoj način obrade. Osim toga, objekt ima objekt predak. Ako se ne pronađe metoda za obradu poruke, poruka će biti proslijeđena roditeljskom objektu. Ova struktura u cjelini (tablica rukovalaca + preci), iz razloga efikasnosti, izdvaja se u zaseban objekt tzv razred ovog objekta. Sam objekt će imati referencu na objekt koji predstavlja njegovu klasu. Objekti komuniciraju isključivo slanjem poruka jedni drugima.

Važno je istaknuti tri glavna svojstva objekata.

Inkapsulacija (zaštita podataka)- mehanizam koji integrira podatke i metode kojima se manipulira tim podacima i štiti oboje od vanjskog uplitanja.


Nasljeđivanje je proces kojim jedan objekt može naslijediti svojstva drugog objekta i dodati im jedinstvene osobine. Odnos dijete-predak na klasama naziva se nasljeđivanje.

Polimorfizam je svojstvo koje omogućuje zamjenu objekta drugim objektom slične strukture klase. Stoga, ako u bilo kojem scenariju interakcije objekta zamijenite proizvoljni objekt drugim koji može obraditi iste poruke, scenarij će se također implementirati.

Deklarativno programiranje... Naglasak u deklarativnom programiranju je na tome šta treba učiniti, a ne kako to učiniti (na imperativnim jezicima). Ovdje je glavna stvar tačna formulacija problema, a izbor i primjena potrebnog algoritma za njegovo rješavanje je problem izvršnog sistema, ali ne i programera. Na primjer, HTML web stranice su deklarativne jer opisuju šta bi stranica trebala sadržavati, a ne kako se stranica prikazuje na ekranu. Ovaj pristup se razlikuje od imperativnih programskih jezika koji zahtijevaju od programera da navede algoritam za izvršavanje.

Postoje dvije grane deklarativnog programiranja: funkcionalne, zasnovane na matematičkom konceptu funkcije koja ne mijenja svoje okruženje, za razliku od funkcija u proceduralnim jezicima koje dopuštaju nuspojave, i logičke, u kojima se programi izražavaju kao formule matematičke logike , i računar za rješavanje problema, pokušava iz njih izvesti logičke posljedice.

Logičko programiranje zasnovan na matematičkoj logici. Ali najpoznatiji logički programski jezik je Prolog. Program PROLOGUE sadrži dvije komponente: činjenice i pravila. Činjenice su podaci s kojima program radi, a ukupnost činjenica čini bazu podataka PROLOGUE, koja je, u stvari, relacijska baza podataka. Glavna operacija izvedena nad podacima je operacija podudaranja, koja se naziva i operacija objedinjavanja ili usklađivanja.

Kao i kod drugih deklarativnih jezika, programer pri radu s njim opisuje situaciju (pravila i činjenice) i formulira cilj (upit), dopuštajući tumaču PROLOGUE da za njega pronađe rješenje problema. Tumač PROLOGUE shvaćen je kao mehanizam za rješavanje problema pomoću jezika PROLOGUE. Program PROLOGUE je skup činjenica i (moguće) pravila. Ako program sadrži samo činjenice, naziva se baza podataka. Ako sadrži i pravila, tada se često koristi izraz baza znanja.

Za razliku od programa napisanih na proceduralnim jezicima, koji propisuju redoslijed koraka koje računalo mora izvesti da bi riješio problem, u PROLOGU -u programer opisuje činjenice, pravila, odnose među njima, kao i zahtjeve u vezi s problemom. Najtipičnija primjena PROLOGUE -a su ekspertski sistemi.

Pitanja za samotestiranje

1. Šta je program? Šta znači izvođač?

2. Šta je mašinski kod?

3. Šta je prevodilac? Navedite vrste prevodilaca.

4. Kako radi tumač? Koje su njegove prednosti?

5. Koja je prednost kompajlera?

6. Koje su komponente uključene u integrirani sistem programiranja?

7. Šta se podrazumeva pod strukturom podataka, koja je klasifikacija strukture podataka?

8. Šta se podrazumeva pod nizovima podataka i koje operacije se sa njima mogu izvesti?

9. Koji su algoritmi za sortiranje nizova?

10. Koja je svrha potprograma?

11. Čemu služi biblioteka rutina?

12. Koje vrste programiranja postoje?

Književnost

1. Stavrovsky A.B., Karnaukh T.A. Prvi koraci u programiranju. Vodič za samostalno učenje. - M.: Williams, 2006.- 400 str.

2. Okulov S. Osnove programiranja Izdavač: Binom. Laboratorija znanja, 2008.- 383 str.

3. Kantsedal S.A. Osnove algoritmizacije i programiranja. - M.: Forum, 2008.- 351 str.

4.httn // www myfreesoft ru / default-windows-nroprams html-standardni Windows programi

5.httn // khni -iin mink kharkiv edu / lihrary / datastr / hook / nrt01 html # lb11 - modeli i strukture podataka

6.httn: //www.intuit.ru/denartment/se/nhmsu/11/3.html#sect5 - modeli i strukture podataka

7.http: //inf.1sentemher.ru/2007/15/00.htm - enciklopedija nastavnika informatike

8.http: //www.delnhi.int.ru/articles/119/ - potprogrami.

9.httn // inroc ru / narallel-nroPramminP / lection-5 /-sortiranje hrpe.

Programski jezik- formalni sistem znakova dizajniran da opiše algoritme u obliku koji je pogodan za izvođača (na primjer, računar). Programski jezik definira skup leksičkih, sintaktičkih i semantičkih pravila koja se koriste pri sastavljanju računarskog programa. Omogućava programeru da odredi na koje će događaje računalo reagirati, kako će se podaci pohraniti i prenijeti, kao i koje radnje treba izvršiti na njima u različitim okolnostima.

Od stvaranja prvih programabilnih mašina, čovječanstvo je već izumilo više od dvije i po hiljade programskih jezika. Svake godine njihov se broj nadopunjuje novim. Neki jezici su poznati samo malom broju njihovih programera, drugi postaju poznati milionima ljudi. Profesionalni programeri ponekad u svom radu koriste više desetina različitih programskih jezika.

Kreatori jezika tumače koncept različito programski jezik... Među uobičajenim mjestima koja prepoznaje većina programera su sljedeći:

· Funkcija: programski jezik je namijenjen za pisanje računarskih programa koji se koriste za prenošenje instrukcija računaru za izvođenje određenog računarskog procesa i organizaciju kontrole pojedinačnih uređaja.

· Zadatak: programski jezik razlikuje se od prirodnih jezika po tome što je dizajniran za prijenos naredbi i podataka od osobe do računara, dok se prirodni jezici koriste samo za međusobnu komunikaciju ljudi. U principu, moguće je generalizirati definiciju "programskih jezika" - to je način prenošenja naredbi, naredbi, jasan vodič za akciju; dok ljudski jezici služe i za razmjenu informacija.

· Izvođenje: programski jezik može koristiti posebne konstrukcije za definiranje i manipulaciju strukturama podataka i kontrolu procesa računanja.

3. Faze rješavanja problema na računaru.

Najefikasnija primjena VT-a pronađena je u radno intenzivnim proračunima u naučnim istraživanjima i inženjerskim proračunima. Pri rješavanju problema na računaru glavna uloga i dalje pripada osobi. Mašina izvršava svoje zadatke samo prema razvijenom programu. ulogu čovjeka i mašine lako je razumjeti ako je proces rješavanja problema podijeljen na dolje navedene faze.

Formulacija problema. Ova faza se sastoji od suštinske (fizičke) formulacije problema i utvrđivanja konačnih rješenja.

Izgradnja matematičkog modela. Model bi trebao ispravno (na odgovarajući način) opisati osnovne zakone fizičkog procesa. Konstrukcija ili odabir matematičkog modela od postojećih zahtijeva duboko razumijevanje problema i poznavanje relevantnih dijelova matematike.

Razvoj Svjetskog prvenstva. Budući da računalo može izvesti samo najjednostavnije operacije, ono "ne razumije" iskaz problema, čak ni u matematičkoj formulaciji. Da bi se to riješilo, mora se pronaći numerička metoda koja omogućava da se problem svede na neki računski algoritam. U svakom konkretnom slučaju potrebno je izabrati odgovarajuće rješenje od već razvijenih standardnih.

Razvoj algoritma. Proces rješavanja problema (računski proces) zapisan je u obliku niza elementarnih aritmetičkih i logičkih operacija koje vode do konačnog rezultata i naziva se algoritam za rješavanje problema.

Programiranje. Algoritam za rješavanje problema napisan je na jeziku razumljivom mašini u obliku precizno definiranog niza operacija - programa. Proces se obično izvodi pomoću nekog srednjeg jezika, a njegovo prevođenje vrši sama mašina i njen sistem.

Otklanjanje grešaka u programu. Sastavljeni program sadrži sve vrste grešaka, netočnosti i pogrešnih otisaka. Otklanjanje grešaka uključuje kontrolu programa, dijagnostiku (pretraživanje i utvrđivanje sadržaja) grešaka i njihovo uklanjanje. Program se testira rješavanjem kontrolnih (testnih) problema kako bi se steklo povjerenje u pouzdanost rezultata.

Proračuni. U ovoj fazi se pripremaju početni podaci za proračune i proračun se vrši prema otklonjenom programu. istovremeno, kako bi se smanjio ručni rad na obradi rezultata, mogu se naširoko koristiti prikladni oblici izdavanja rezultata u obliku tekstualnih i grafičkih informacija u obliku razumljivom osobi.

Analiza rezultata. Rezultati proračuna pažljivo se analiziraju, sastavlja se naučna i tehnička dokumentacija.

4. Čemu služe programski jezici?

Proces rada računara sastoji se u izvršavanju programa, odnosno skupa dobro definisanih komandi u dobro definisanom redosledu. Mašinski oblik instrukcije, koji se sastoji od nula i jedinica, pokazuje kakvu bi radnju trebao izvršiti centralni procesor. To znači da, kako biste računaru rekli niz akcija koje mora izvršiti, morate navesti niz binarnih kodova odgovarajućih naredbi. Programi mašinskog koda sastoje se od hiljada instrukcija. Pisanje takvih programa je teško i dosadno. Programer mora zapamtiti kombinaciju nula i jedinica binarnog koda svakog programa, kao i binarne kodove adresa podataka korištenih u njegovom izvođenju. Mnogo je lakše napisati program na nekom jeziku bližem prirodnom ljudskom jeziku i povjeriti računaru posao prevođenja ovog programa u mašinske kodove. Tako su jezici nastali posebno za pisanje programa - programskih jezika.

Dostupno je mnogo različitih programskih jezika. Zapravo, bilo koji od njih može se koristiti za rješavanje većine problema. Iskusni programeri znaju koji je jezik bolje koristiti za rješavanje svakog određenog problema, jer svaki od jezika ima svoje sposobnosti, orijentaciju na određene vrste problema, svoj način opisivanja pojmova i objekata koji se koriste pri rješavanju problema.

Svi programski jezici mogu se podijeliti u dvije grupe: jezici niskog nivoa i jezici na visokom nivou.

Jezici niskog nivoa uključuju asemblerske jezike (od engleskog toassemble - za prikupljanje, sastavljanje). Asemblerski jezik koristi simboličku notaciju za naredbe koje se lako razumiju i brzo pamte. Umjesto niza binarnih kodova naredbi, ispisuju se njihove simbolične oznake, a umjesto adresa binarnih podataka koje se koriste pri izvršavanju naredbe, simbolička imena ovih podataka koje je programer odabrao. Asemblerski jezik se ponekad naziva mnemokod ili autokod.

Većina programera koristi jezike na visokom nivou za pisanje svojih programa. Kao i običan ljudski jezik, takav jezik ima svoju abecedu - skup simbola koji se koriste u jeziku. Takozvane jezičke ključne riječi sastoje se od ovih simbola. Svaka od ključnih riječi obavlja svoju funkciju, baš kao i na jeziku na koji smo navikli u svom jeziku, riječi sastavljene od slova abecede određenog jezika mogu obavljati funkcije različitih dijelova govora. Ključne riječi povezane su jedna s drugom u rečenicama prema određenim sintaktičkim pravilima jezika. Svaka rečenica definira određeni slijed radnji koje računar mora izvesti.

Jezik na visokom nivou igra ulogu posrednika između osobe i računara, omogućavajući osobi da komunicira sa računarom na njemu poznatiji način. Često vam ovaj jezik pomaže da odaberete pravu metodu za rješavanje problema.

Pre nego što napiše program na jeziku visokog nivoa, programer mora da komponuje algoritam rješavanje problema, odnosno korak-po-korak akcijski plan koji se mora dovršiti da bi se riješio ovaj problem. Stoga se često pozivaju jezici koji zahtijevaju prethodno sastavljanje algoritma algoritamski jezici.

5. Koji programski jezici postoje

1.1 Fortran

Programski jezici počeli su se pojavljivati ​​već sredinom 50-ih. Jedan od prvih jezika ove vrste bio je jezik FORTRAN (FORTRAN iz FORmulaTRANslator - prevodilac formula), razvijen 1957. godine. Fortran se koristi za opisivanje algoritma za rješavanje naučnih i tehničkih problema pomoću digitalnog računara. Baš kao i prvi računari, ovaj jezik je bio namijenjen uglavnom za izvođenje prirodno-naučnih i matematičkih proračuna. U poboljšanom obliku, ovaj je jezik preživio do našeg vremena. Među modernim jezicima na visokom nivou, jedan je od najčešće korištenih u naučnim istraživanjima. Najčešće varijante su Fortran-II, Fortran-IV, EASICFortran i njihove generalizacije.

1.2 ALGOL

Nakon Fortrana 1958-1960, pojavio se algolski jezik (Algol-58, Algol-60) (engleski ALGOL iz ALGOrithmicLanguage-algoritamski jezik). Algol je poboljšan 1964-1968-Algol-68. ALGOL je razvio odbor koji je uključivao evropske i američke naučnike. Pripada jezicima visokog nivoa i omogućava vam jednostavno prevođenje algebarskih formula u programske naredbe. Algol je bio popularan u Evropi, uključujući i SSSR, dok je uporedni Fortran bio uobičajen u Sjedinjenim Državama i Kanadi. Algol je imao zapažen utjecaj na sve kasnije razvijene programske jezike, a posebno na jezik Pascal. Ovaj jezik, poput Fortrana, bio je namijenjen rješavanju naučnih i tehničkih problema. Osim toga, ovaj se jezik koristio kao sredstvo poučavanja osnovama programiranja - umjetnosti programiranja.

Obično koncept Algola znači jezik ALGOL-60, dok ALGOL-68 smatra se nezavisnim jezikom. Čak i kada se jezik Algol gotovo prestao koristiti za programiranje, ostao je službeni jezik za objavljivanje algoritama.

1.3 Cobol

1959. - 1960. razvijen je Cobol jezik (engleski COBOL iz COmmom Business Oriented Language). To je programski jezik treće generacije namijenjen prvenstveno razvoju poslovnih aplikacija. Također, Kobol je bio namijenjen rješavanju ekonomskih problema, obradi podataka za banke, osiguravajuća društva i druge institucije ove vrste. Grace Hopper ( baka Kobola).

Cobol se obično kritizira zbog njegove opsežnosti i glomaznosti, budući da je jedan od ciljeva tvorca jezika bio približiti konstrukcije što je moguće bliže engleskom jeziku. (Do sada se Cobol smatra programskim jezikom u kojem je napisano najviše redova koda). U isto vrijeme, Cobol je za svoje vrijeme imao odlične alate za rad sa strukturama podataka i datotekama, što je osiguralo dug život u poslovnim aplikacijama, barem u Sjedinjenim Državama.

1.4 Lisp

Gotovo istovremeno s Cobolom (1959. - 1960.), na Tehnološkom institutu Massachusetts nastao je jezik Lisp (LISP iz LIStProcessing). Lisp se temelji na predstavljanju programa sistemom linearnih lista znakova, koji su, osim toga, glavna struktura podataka jezika. Lisp se smatra drugim najstarijim programskim jezikom na visokom nivou nakon Fortrana. Ovaj se jezik široko koristi za obradu simboličkih informacija i koristi se za stvaranje softvera koji oponaša aktivnosti ljudskog mozga.

Svaki program Lisp sastoji se od niza izrazi(obrasci). Rezultat programa je evaluacija ovih izraza. Svi izrazi su napisani kao liste- jedna od osnovnih struktura Lispa, pa se lako mogu stvoriti korištenjem samog jezika. Ovo vam omogućava da kreirate programe koji menjaju druge programe ili makroe, omogućavajući vam da značajno proširite mogućnosti jezika.

Glavni smisao Lisp programa "život" u simboličkom prostoru: kretanje, kreativnost, pamćenje, stvaranje novih svjetova itd. Lisp kao metafora mozga, simbol, signalna metafora: "Kako se biološka analiza signala mozga, kao vanjski faktor - fizički i hemijski utjecaj, koji iritira tijelo, pretvara u biološki značajan signal, često od vitalnog značaja, određujući sve ponašanje osobe ili životinje; i kako postoji podjela različitih signala na pozitivne, negativne i ravnodušne, ravnodušne. Signal je već integrativni koncept. To je identifikacijski znak grupe, složeni podražaji , međusobno povezani zajedničkom istorijom i uzročno -posljedičnim vezama. U ovom kompleksu, sistemu nadražaja, sam signalni stimulus je također sastavni element, a pod drugim okolnostima njegova uloga može pripadati drugom stimulusu iz kompleksa. Signal koncentrira sve prošlo iskustvo životinje ili osobe.

1.5 BASIC

Sredinom 60-ih (1963), BASIC jezik (BASIC iz početnog univerzalnog koda uputstava) stvoren je na Dartmouth Collegeu (SAD). Vremenom, kako su se počeli pojavljivati ​​i drugi dijalekti, ovaj "izvorni" dijalekt postao je poznat kao Dartmouth BASIC. Jezik se djelomično temeljio na Fortranu II, a dijelom na Algolu-60, s dodacima koji su ga činili pogodnim za dijeljenje vremena, a kasnije i za obradu teksta i matričnu aritmetiku. BASIC je izvorno implementiran na glavnom računaru GE-265 s podrškom za više terminala. Suprotno uvriježenom mišljenju, u vrijeme svog nastanka bio je kompilirani jezik.

BASIC je dizajniran tako da studenti mogu pisati programe koristeći terminale za dijeljenje vremena. Nastao je kao rješenje za složenost starijih jezika. Namijenjen je "jednostavnijim" korisnicima, koji nisu toliko zainteresirani za brzinu programa, već jednostavno za mogućnost korištenja računara za rješavanje svojih problema. Zbog jednostavnosti jezika BASIC, mnogi programeri početnici započinju svoj put u programiranju s njim.

1.6 Fort

Krajem 60 -ih - početkom 70 -ih godina pojavio se jezik Fort (engleski ČETVRTI - četvrti). Ovaj se jezik počeo koristiti u problemima upravljanja različitim sistemima nakon što je njegov autor Charles Moore u njemu napisao program osmišljen za upravljanje radio teleskopom opservatorije Arizona.

Brojna svojstva, naime interaktivnost, fleksibilnost i lakoća razvoja, čine Forth vrlo privlačnim i učinkovitim jezikom za primijenjena istraživanja i razvoj alata. Očigledna upotreba ovog jezika su ugrađeni kontrolni sistemi. Takođe pronalazi primenu u programiranju računara sa različitim operativnim sistemima.

1.7 Pascal

Jezik Pascal, koji se pojavio 1972. godine, dobio je ime po velikom francuskom matematičaru iz 17. stoljeća, izumitelju prve aritmetičke mašine na svijetu, Blaiseu Pascalu. Ovaj jezik je stvorio švicarski informatičar Niklaus Wirth kao jezik za podučavanje programskim metodama. Pascal je programski jezik opće namjene.

Posebnosti jezika su strogo kucanje i dostupnost strukturnih (proceduralnih) programskih alata. Paskal je bio jedan od prvih takvih jezika. Prema N. Wirthu, jezik bi trebao pridonijeti disciplini programiranja, stoga su, uz snažno kucanje, u Pascalu moguće sintaksičke nejasnoće svedene na minimum, a sama sintaksa je intuitivno jasna čak i pri prvom upoznavanju jezika.

Jezik Pascal ne uči samo kako pravilno napisati program, već i kako pravilno razviti metodu za rješavanje problema, odabrati načine predstavljanja i organiziranja podataka koji se koriste u problemu. Od 1983. jezik Pascal uveden je u nastavni plan i program informatike u američkim srednjim školama.

1.8 Pakao

Godine 1983. jezik Ada je stvoren pod pokroviteljstvom američkog Ministarstva odbrane. Jezik je izuzetan po tome što se u fazi kompilacije može otkriti mnogo grešaka. Osim toga, podržava mnoge aspekte programiranja koji su često prepušteni na milost i nemilost operativnog sistema (istovremenost, rukovanje iznimkama). Godine 1995. usvojen je jezički standard Ada 95, koji se nadovezuje na prethodnu verziju, dodajući joj objektnu orijentaciju i ispravljajući neke netočnosti. Oba ova jezika se ne koriste široko izvan vojnih i drugih velikih projekata (avijacija, željeznički transport). Glavni razlog su poteškoće u učenju jezika i prilično glomazna sintaksa.

Neposredni prethodnici Ade su Pascal i njegovi derivati, uključujući Euklida, Lisa, Mesu, Modulu i Sue. Korišteno je nekoliko koncepata iz ALGOL-68, Simula, CLU i Alphard.

Glavna briga programera Ada bila je:

· Pouzdanost i performanse programa;

· Programiranje kao vrsta ljudske aktivnosti;

· Efikasnost.

Tablica 1 prikazuje glavne karakteristike jezika Ada sa stanovišta objektnog pristupa.

Tabela 1. Ada.

1.9 Si

Trenutno je C popularan jezik među programerima (C je slovo engleske abecede). Jezik C potječe iz dva jezika- BCPL i B. 1967. Martin Richards je razvio BCPL kao jezik za pisanje sistemskog softvera i kompajlera. Ken Thompson je 1970. godine koristio B za stvaranje ranih verzija UNIX operativnog sistema na DEC PDP-7 računaru. I u BCPL -u i u B varijable nisu bile podijeljene u tipove - svaka vrijednost podataka zauzimala je jednu riječ u memoriji, a odgovornost za razlikovanje, na primjer, cijelih i stvarnih brojeva u potpunosti je pala na pleća programera. Jezik C je razvijen ( zasnovano na B) Dennisa Ritchieja iz Bell Laboratories i prvi put je implementirano 1972. na računaru DEC PDP-11. C je stekao slavu kao jezik UNIX OS -a. Gotovo svi glavni operativni sistemi danas su napisani na C ili C ++. Nakon dvije decenije, C je dostupan na većini računara. Krajem 70 -ih C je evoluirao u ono što nazivamo "tradicionalni C". 1983. godine američki Komitet za nacionalne standarde za računare i obradu informacija uspostavio je jedinstveni standard za ovaj jezik. Ovaj jezik ima bogata sredstva, omogućava vam pisanje fleksibilnih programa koji koriste sve mogućnosti modernih personalnih računara.

1.10 Prolog

Još jedan jezik koji se smatra jezikom budućnosti stvorila je početkom 70 -ih grupa stručnjaka sa Univerziteta u Marseilleu. Ovo je jezik Prolog. Ime je dobio po riječima "PROGRAMIRANJE NA JEZIKU LOGIKE". Ovaj jezik je zasnovan na zakonima matematičke logike. Poput jezika Lisp, Prolog se uglavnom koristi u istraživanjima u području softverske simulacije aktivnosti ljudskog mozga. Za razliku od gore opisanih jezika, ovaj jezik nije algoritamski. Pripada tzv opisni(od engleskog descriptive - deskriptivni) - opisni jezici. Za opisni jezik nije potrebno da programer razvije sve faze zadatka. Umjesto toga, u skladu s pravilima takvog jezika, programer mora opisati bazu podataka koja odgovara problemu koji se rješava, te skup pitanja na koja treba odgovoriti pomoću podataka iz ove baze podataka.

Posljednjih decenija programiranje se pojavilo i doživjelo je značajan razvoj objektno orijentisana pristup. Ovo je metoda programiranja koja oponaša sliku stvarnog svijeta: informacije koje se koriste za rješavanje problema predstavljene su kao skup interaktivnih objekata. Svaki od objekata ima svoja svojstva i ponašanje. Interakcija objekata vrši se prijenosom poruka: svaki objekt može primati poruke od drugih objekata, pamtiti informacije i obrađivati ​​ih na određeni način te, zauzvrat, slati poruke. Baš kao u stvarnom svijetu, objekti skladište svoja svojstva i ponašanje zajedno, nasljeđujući neke od njih od svojih roditeljskih objekata.

Objektno orijentirana ideologija koristi se u svim modernim softverskim proizvodima, uključujući operativne sisteme.

Prvi objektno orijentisani jezik Simula -67 nastao je kao alat za simulaciju rada različitih uređaja i mehanizama. Većina modernih programskih jezika je objektno orijentisana. Među njima su i najnovije verzije jezika Turbo - Pascal , C ++, Ada i drugi.

Sistemi su sada u širokoj upotrebi vizuelno programiranje Vizuelno Osnovno , Vizuelno C ++, Delphi i drugi. Omogućuju vam stvaranje složenih aplikacijskih paketa s jednostavnim i prikladnim korisničkim sučeljem.

1.11 Java

Od 1995. godine, novi objektno orijentisani programski jezik, Java, postao je široko rasprostranjen, ciljajući na računarske mreže i prije svega na Internet. Sintaksa ovog jezika je slična sintaksi jezika C ++, ali ti jezici imaju malo zajedničkog. Java je interpretirani jezik: za nju su definirani interni prikaz (bajt kod) i tumač za ovu predstavu, koji su već implementirani na većini platformi. Tumač pojednostavljuje otklanjanje grešaka u programima napisanim na Java jeziku, osigurava njihovu prenosivost na nove platforme i prilagodljivost novim okruženjima. Omogućuje vam da isključite utjecaj programa napisanih na Java jeziku na druge programe i datoteke dostupne na novoj platformi, te na taj način osigurate sigurnost pri izvršavanju ovih programa. Ova svojstva Java jezika omogućuju mu da se koristi kao glavni programski jezik za programe distribuirane preko mreža (posebno preko Interneta).

1.12 Objekat Pascal

Object Pascal kreiralo je osoblje Apple Computer -a (od kojih su neki bili saradnici Smalltalka) sa Niklausom Wirthom, tvorcem jezika Pascal. Object Pascal postoji od 1986. godine i prvi je objektno orijentisan programski jezik koji je uključen u radionicu programera Macintosh-a (MPW), razvojno okruženje za Apple-ove Macintosh računare.

U ovom jeziku ne postoje metode klasa, varijable klasa, više nasljeđivanja i metaklase. Ovi mehanizmi su namjerno isključeni kako bi se olakšalo učenje jezika programerima "objektima" početnicima.

Tablica 2 prikazuje opće karakteristike objekta Pascal.

Tabela 2. Objekat Pascal.

Poslednjih godina ovaj jezik je postao veoma popularan zahvaljujući Borlandovom Delphi sistemu.

1.13 Sistem vizuelnog objektno orijentisanog dizajna Delphi.

Pojava Delphija nije mogla proći nezapaženo među brojnim korisnicima računara. Ocjene stručnjaka koji istražuju mogućnosti ovog novog Borland proizvoda obično su ispunjene entuzijazmom. Glavna prednost Delphija je što se ovdje primjenjuju ideje vizualnog programiranja. Vizuelno programsko okruženje pretvara proces stvaranja programa u ugodnu i lako razumljivu konstrukciju aplikacije od velikog skupa grafičkih i strukturnih primitiva.

Delphi sistem vam omogućava da riješite mnoge probleme, posebno:

· Kreirajte potpune aplikacije za Windows različitih namjena: od čisto računskih i logičkih, do grafičkih i multimedijskih.

· Brzo stvorite (čak i za programere početnike) interfejs sa prozorima profesionalnog izgleda za bilo koju aplikaciju.

· Kreirati moćne sisteme za rad s lokalnim i udaljenim bazama podataka

· Kreirajte sisteme pomoći (.hlp datoteke) za svoje aplikacije i više. dr.

Delphi je sistem koji se izuzetno brzo razvija. Prva verzija, Delphi 1.0, objavljena je u februaru 1995. godine, a zatim su nove verzije izlazile svake godine.

Svaka naredna verzija Delphi -a nadopunjavala je prethodnu.Većina verzija Delphi -a dostupna je u nekoliko verzija: Standardna - standardna, Profesionalna - profesionalna, Klijent / Server - klijent / server, Preduzeće - razvoj baza podataka predmetnih područja. Varijante se razlikuju uglavnom po različitim nivoima pristupa sistemima za upravljanje bazama podataka. Potonje opcije su Client / Server i Enterprise, koje su u tom pogledu najmoćnije.

Delphi je kombinacija nekoliko kritičnih tehnologija:

Prevodilac visokih performansi u mašinski kod

Objektno orijentisani model komponente

Vizuelna (i, stoga, brza) izgradnja aplikacija od softverskih prototipova

Skalabilni alati za izgradnju baza podataka

Struktura ekrana u Delphi okruženju.

Nakon što pozovete Delphi, na Windowsima se pojavljuje nekoliko prozora (slika 1):

Glavni prozor,

Prozor obrasca,

Prozor inspektora objekata,

Prozor stabla objekata,

Prozor programskog koda.


Slika 1. Struktura ekrana u Delphi okruženju.

Razmotrite grafički meni Delphi sistema koji se nalazi pri vrhu ekrana, sastavljen od ikona.Na lijevoj strani grafičkog menija nalazi se traka sa alatkama. Alati izvršavaju neke naredbe glavnog izbornika - takvo se dupliciranje često prakticira u okruženjima alata. Ovaj panel ima, posebno, gumb za spremanje projekta na disk, gumb za otvaranje projekta, gumb za pokretanje programa za izvršavanje.

Sljedeći dio grafičkog izbornika je paleta komponenti, raspoređenih u obliku skupova ikona. Kolekcija kompleta čini biblioteku vizuelnih komponenti (VCL). Postoji nekoliko kategorija komponenti, od kojih je svaka povezana s drugom karticom. Koristeći paletu komponenti, instancirat ćemo komponente (ili objekte) na obrascu.

Da biste postavili objekt u obrazac, morate "kliknuti" na odgovarajuće dugme palete, a zatim kliknuti unutar prozora obrasca: objekt će biti umetnut na navedeno mjesto obrasca - instanca komponente komponente odabranu vrstu.

Prozor Inspector Object je prozor koji prikazuje svojstva bilo obrasca ili objekta postavljenog na obrazac. U našem slučaju, trenutna komponenta je obrazac, pa prozor svojstava na slici prikazuje svojstva obrasca.

Prozor svojstava ima dvije kartice - Svojstva i Događaji, pomoću kojih možete dobiti redove (polja) u prozoru za postavljanje, odnosno svojstava komponente (tj. Objekta ili obrasca) i njen odgovor na različite događaji. Svojstvo definira atribut komponente, kao što je veličina gumba ili font oznake. Događaj znači, na primjer, radnje poput klika na dugme ili zatvaranja prozora.

Prozor stabla objekata pojavio se u verziji 6 i namijenjen je za vizualni prikaz veza između pojedinačnih objekata postavljenih na aktivnom obrascu ili u aktivnom modulu podataka.

Prozor programskog koda namijenjen je kreiranju i uređivanju programskog teksta. U početku sadrži minimalni izvorni kod.

Delphi projekti. Delphi projekt se sastoji od obrazaca, modula, postavki parametara projekta, resursa itd. Sve ove informacije nalaze se u datotekama. Mnoge od ovih datoteka Delphi automatski generira kada sastavite aplikaciju. Resursi kao što su bitmape, ikone itd. Nalaze se u datotekama koje nabavljate iz drugih izvora ili stvarate s brojnim alatima i uređivačima resursa koji su vam na raspolaganju. Osim toga, kompajler takođe generiše datoteke.

Datoteke nastale u procesu dizajna prikazane su u tablici. 3.

Glavni dio aplikacije je datoteka projekta (.dpr) koja sadrži kod Object Pascal koji pokreće program i inicijalizira ostale module. Delphi ga automatski kreira i menja tokom razvoja aplikacija. Ime dato datoteci projekta tokom procesa spremanja postaje ime izvršne datoteke.

Datoteka projekta (.dpr) Ova tekstualna datoteka koristi se za spremanje podataka o obrascima i modulima. Sadrži naredbe za pokretanje i pokretanje programa za izvršavanje
Datoteka modula (.pas) Svaki obrazac koji kreirate ima odgovarajuću tekstualnu datoteku modula koja se koristi za spremanje koda. Možete kreirati module koji nisu povezani s obrascima. Mnoge Delphi funkcije i procedure pohranjene su u module.
Datoteka obrasca (.dfm) Ovo je binarna ili tekstualna datoteka koju Delphi stvara za pohranu podataka o obrascima. Svaka datoteka obrasca ima odgovarajuću datoteku modula (.pas)
Datoteka sa opcijama projekta (.dfo) Ova datoteka pohranjuje postavke parametara projekta
Datoteka resursa (.res) Ova binarna datoteka sadrži ikonu koju koristi projekt i druge resurse.
Sigurnosne kopije datoteka (. ~ Dpr ,. ~ Dfm ,. ~ Pas) To su datoteke sigurnosne kopije za projekt, obrasce i datoteke modula. Ako je nešto beznadno oštećeno u projektu, možete u skladu s tim promijeniti ekstenzije ovih datoteka i tako se vratiti na prethodnu neoštećenu verziju.
Datoteka za konfiguraciju prozora (.dsk) Datoteka pohranjuje konfiguraciju svih prozora razvojnog okruženja
Izvršna datoteka (.exe) Ovo je izvršna datoteka aplikacije. To je samostalna izvršna datoteka koja ne zahtijeva ništa drugo, osim ako ne koristi biblioteke sadržane u DLL-ovima, OCX-ovima itd.
Objektna datoteka modula (.dcu) Ovo je kompajlirana datoteka modula (.pas) koja je povezana u konačnu izvršnu datoteku.

Tablica 3. Datoteke nastale u procesu projektiranja.


Trenutno je objavljena sedma verzija Delphi sistema. U rekordnom roku postao je jedan od najpopularnijih programskih sistema na svijetu. Mnogi programeri širom svijeta čvrsto su posvećeni korištenju Delphi -a kao alata za stvaranje visoko efikasnih klijent / server aplikacija.

Programiranje evolucijskog stabla

Slika 1 Programiranje stabla evolucije

6. Bibliografija:

1. I.T. Zaretskaya, B.G. Kolodyazhny, A.N. Gurzhiy, A.Yu. Sokolov. Informatika 10-11 razred. - K.: "Forum", 2001

1. Struktura ekrana u Delphi okruženju (http://textbook.keldysh.ru/distant/delphi/del_2.htm)

2. Patrikeev Yu. N. "Objektno orijentisani dizajn" (http://www.object.newmail.ru/oop1.html)

3. S. Nemnyugin, L. Perkolab "Studying TurboPascal" - SPb.: Peter, 2002.

2. H.M. Daytel. Kako programirati u S. - M.: "Binom", 2000

3. Internet stranica: http://ru.wikipedia.org/wiki/LISP

Udžbenik se sastoji od dva dijela: teorijskog i praktičnog. Teorijski dio udžbenika postavlja osnove moderne informatike kao složene naučne i tehničke discipline, uključujući proučavanje strukture i općih svojstava informacija i informacijskih procesa, općih principa izgradnje računalnih uređaja, razmatra organizaciju i funkcioniranje informacija i računarske mreže, računarska sigurnost, predstavlja ključne koncepte algoritama i programiranja, baza podataka i DBMS -a. Za kontrolu stečenog teorijskog znanja nude se pitanja za samoispitivanje i testove. Praktični dio obuhvaća algoritme osnovnih radnji pri radu s uređivačem teksta Microsoft Word, uređivačem proračunskih tablica Microsoft Excel, programom za kreiranje Microsoft Power Point prezentacija, arhiviranjem programa i antivirusnim programima. Kao konsolidacija položenog praktičnog predmeta na kraju svakog odjeljka, predlaže se izvođenje samostalnog rada.

Knjiga:

Odjeljci na ovoj stranici:

8.2. Programski jezici

Vrste programiranja

Napredak računarske tehnologije odredio je proces nastanka niza novih znakovnih sistema za pisanje algoritama - programskih jezika. Značenje pojavljivanja takvog jezika je opremljeni skup računskih formula za dodatne informacije, koji ovaj skup pretvara u algoritam.

Programski jezici su umjetno stvoreni jezici. Razlikuju se od prirodnih po ograničenom broju "riječi" i vrlo strogim pravilima za pisanje naredbi (operatora). Ukupnost takvih zahtjeva čini sintaksu programskog jezika, a značenje svake naredbe i drugih jezičnih konstrukcija je njena semantika.

Programski jezici su formalni jezici komunikacije između osobe i računara, osmišljeni da opišu skup instrukcija čija implementacija daje ispravno rješenje traženog problema. Njihova glavna uloga je planiranje aktivnosti obrade informacija. Svaki programski jezik zasnovan je na sistemu koncepata i uz njegovu pomoć osoba može izraziti svoje misli.

Veza između jezika na kojem razmišljamo / programiramo i problema i rješenja koja možemo zamisliti u svojoj mašti vrlo je bliska. Iz tog razloga, ograničavanje svojstava jezika samo na cilj uklanjanja grešaka programera u najboljem je slučaju opasno. Kao i sa prirodnim jezicima, ogromna je korist što ste barem dvojezični. Jezik pruža programeru skup konceptualnih alata, ako ne ispune zadatak, jednostavno se zanemaruju. Na primjer, ozbiljna ograničenja koncepta pokazivača primoravaju programera da koristi vektore i cijelu aritmetiku za implementaciju struktura, pokazivača i slično. Dobar dizajn i dizajn bez grešaka ne mogu se jamčiti isključivo jezičkim sredstvima.

Možda se čini iznenađujućim, ali određeni računar je sposoban da pokreće programe napisane na svom mašinskom jeziku. Postoji gotovo isto toliko različitih mašinskih jezika koliko i računara, ali svi su oni iste sorte - jednostavne operacije se izvode munjevitom brzinom na binarnim brojevima.

Mašinski zavisni programski jezici

Mašinski zavisni jezici su jezici čiji skupovi operatora i slikovnih sredstava u suštini zavise od karakteristika računara (unutrašnji jezik, struktura memorije itd.). Ovi jezici se nazivaju programski jezici niskog nivoa. Fokusirani su na određenu vrstu procesora i uzimaju u obzir njegove posebnosti. Operateri takvog jezika bliski su mašinskom kodu i fokusirani su na specifične upute procesora, odnosno ovaj jezik ovisi o stroju. Jezik niskog nivoa je Assembly. Uz njegovu pomoć stvaraju se vrlo učinkoviti i kompaktni programi jer programer ima pristup svim mogućnostima procesora. Takvi se jezici koriste za pisanje malih sistemskih aplikacija, upravljačkih programa uređaja, biblioteka. U slučajevima kada je količina RAM -a i ROM -a mala (u području od nekoliko kilobajta), nema alternative asembleru. Upravo ti programski jezici omogućuju vam da dobijete najkraći i najbrži programski kod.

Mašinski nezavisni programski jezici

Mašinski nezavisni jezici su sredstvo za opisivanje algoritama za rješavanje problema i informacija koje treba obraditi. Pogodni su za upotrebu za širok krug korisnika i ne zahtijevaju od njih da znaju specifičnosti organizacije rada računara i računarskog sistema.

Takvi jezici nazivaju se programski jezici visokog nivoa. Programi napisani na takvim jezicima su nizovi iskaza strukturiranih prema pravilima jezika (zadaci, segmenti, blokovi itd.). Operatori jezika opisuju radnje koje sistem mora izvršiti nakon što je program preveden na mašinski jezik.

Komandne sekvence (procedure, potprogrami), koje se često koriste u mašinskim programima, predstavljene su u jezicima na visokom nivou zasebnim izrazima. Programer je dobio priliku da ne opiše detaljno proces računanja na nivou mašinskih instrukcija, već da se fokusira na glavne karakteristike algoritma.

Programski jezici na visokom nivou su ljudima mnogo bliži i razumljiviji. Ne uzimaju u obzir posebnosti specifičnih računarskih arhitektura, odnosno ti su jezici neovisni o strojevima. To omogućava korištenje programa jednom napisanog na takvom jeziku na različitim računarima.

Moguće je pisati programe direktno na mašinskom jeziku, iako je to teško. U osvit kompjuterizacije (ranih 1950 -ih), mašinski jezik je bio jedini jezik, veći čovjek do tada nije izumio. Da bi se programeri spasili od oštrog mašinskog programskog jezika, stvoreni su jezici na visokom nivou (tj. Ne-mašinski jezici), koji su postali svojevrsni most povezivanja između čovjeka i mašinskog jezika računara. Jezici na visokom nivou rade putem translacionih programa koji ubacuju "izvorni kod" (hibrid engleskih riječi i matematičkih izraza koje mašina čita) i na kraju prisiljavaju računar da izvršava odgovarajuće instrukcije date u mašinskom jeziku.

Programski jezici visokog nivoa uključuju sljedeće: Fortran, Cobol, Algol, Pascal, Basic, C, C ++, Java, HTML, Perl i druge.

Uz pomoć programskog jezika ne stvara se gotov program, već samo njegov tekst koji opisuje prethodno razvijeni algoritam. Da biste dobili radni program, morate ili automatski prevesti ovaj tekst u mašinski kod, a zatim ga koristiti odvojeno od izvornog teksta, ili odmah izvršiti jezičke komande navedene u tekstu programa. U tu svrhu koriste se prevoditeljski programi.

Postoje dvije glavne vrste prevoditelja (slika 8.4): tumači, koji skeniraju i provjeravaju izvorni kod u jednom koraku, te kompajleri, koji skeniraju izvorni kod kako bi proizveli tekst programa na mašinskom jeziku, koji se zatim zasebno izvršava.


Slika 8.4. Vrste prevodilaca

Prilikom korištenja kompajlera, sav izvorni kod programa pretvara se u strojne kodove, a ti se kodovi zapisuju u memoriju mikroprocesora. Prilikom korištenja tumača, izvorni kod programa se zapisuje u memoriju mikroprocesora, a prevođenje se vrši kada se pročita sljedeći operator. Naravno, brzina tumača je mnogo manja u odnosu na kompajlere, jer kada se operator koristi u petlji, on se prevodi mnogo puta. Međutim, pri programiranju na jeziku visoke razine, količina koda koju je potrebno pohraniti u internu memoriju može biti znatno manja od one izvršnog koda. Još jedna prednost korištenja tumača je lako prenošenje programa s jednog procesora na drugi.

Jedna od često citiranih prednosti implementacije tumača je ta što omogućava "direktni način rada". Neposredni način rada omogućuje vam da postavite problem računaru i vraća vam odgovor čim pritisnete tipku ENTER. Osim toga, tumači imaju posebne atribute koji olakšavaju otklanjanje grešaka. Možete, na primjer, prekinuti obradu programa tumača, prikazati sadržaj određenih varijabli, pregledati program, a zatim nastaviti izvođenje. Međutim, tumačeni jezici imaju nedostatke. Na primjer, potrebno je imati kopiju prevodioca u memoriji cijelo vrijeme, dok mnoge mogućnosti tumača, a time i njegove mogućnosti, možda neće biti potrebne za izvršavanje određenog programa. Prilikom izvršavanja programskih naredbi, tumač mora prvo skenirati svaku naredbu kako bi pročitao njen sadržaj (šta ta osoba od mene traži?), A zatim izvršiti traženu operaciju. Operatori u petlji se previše skeniraju.

Prevodilac je prevodilac mašinskog jezika koji čita izvorni tekst. On ga ocjenjuje prema sintaksičkoj konstrukciji jezika i prevodi u mašinski jezik. Drugim riječima, kompajler ne izvršava programe, već ih gradi. Tumači se ne mogu odvojiti od programa koje pokreću; kompajleri rade svoj posao i napuštaju scenu. Kada radite sa kompajlirajućim jezikom kao što je Turbo BASIC, morat ćete razmišljati o svojim programima u smislu dvije glavne faze njihovog života: perioda kompilacije i perioda izvođenja. Većina programa će raditi četiri do deset puta brže od njihovih ekvivalenata tumača. Ako radite na poboljšanju, možete postići 100 puta poboljšanje performansi. Druga strana medalje je da programi koji većinu svog vremena provode petljajući po datotekama na diskovima ili čekajući unos neće moći pokazati impresivno povećanje brzine.

Proces stvaranja programa naziva se programiranje.

Postoji nekoliko vrsta programiranja.

Algoritamski ili modularni

Glavna ideja algoritamskog programiranja je podijeliti program u niz modula, od kojih svaki izvodi jednu ili više radnji. Jedini zahtjev za modul je da njegovo izvršavanje uvijek započinje prvom naredbom i uvijek završava najnovijom (to jest, nemoguće je doći do naredbi modula izvana i prenijeti kontrolu s modula na druge naredbe, zaobilaženje posljednjeg).

Algoritam u odabranom programskom jeziku napisan je pomoću naredbi za opis podataka, izračunavanje vrijednosti i kontrolu redoslijeda izvođenja programa.

Programski tekst je linearni slijed dodjela, petlji i uvjetnih izraza. Na ovaj način možete riješiti ne tako složene probleme i sastaviti programe koji sadrže nekoliko stotina linija koda. Nakon toga, razumljivost izvornog teksta naglo opada zbog činjenice da se opća struktura algoritma gubi iza specifičnih jezičnih operatora koji izvode previše detaljne, elementarne radnje. Pojavljuju se brojni ugniježđeni uvjetni iskazi i petlje, logika postaje potpuno zbunjujuća, pri pokušaju ispravljanja jedne pogrešne izjave uvodi se nekoliko novih grešaka, koje se odnose na posebnosti rada ove naredbe, čiji se rezultati često uzimaju u obzir u različitim mesta u programu.

Strukturirano programiranje

Prilikom stvaranja aplikacija srednje veličine (nekoliko hiljada redova izvornog koda) koristi se strukturirano programiranje čija je ideja da struktura programa odražava strukturu problema koji se rješava tako da je algoritam rješenja jasno vidljiv iz izvornog teksta. Da biste to učinili, morate imati sredstva za kreiranje programa ne samo uz pomoć tri jednostavna operatora, već i pomoću sredstava koja preciznije odražavaju specifičnu strukturu algoritma. U tu svrhu u programiranje je uveden koncept potprograma - skup operatora koji izvode željenu radnju i ne zavise od drugih dijelova izvornog koda. Program je podijeljen na mnogo malih potprograma (uzima do 50 naredbi - kritični prag za brzo razumijevanje svrhe potprograma), od kojih svaka izvodi jednu od radnji predviđenih izvornim zadatkom. Kombinacijom ovih potprograma moguće je formirati konačni algoritam ne od jednostavnih operatora, već od cjelovitih blokova koda koji imaju određeno semantičko opterećenje, a na takve se blokove možete pozvati po imenu. Ispostavilo se da su potprogrami novi operatori ili operacije jezika, koje je definirao programer.

Sposobnost korištenja potprograma klasificira programski jezik kao proceduralni jezik.

Podrutine vam omogućuju da dizajnirate i razvijete aplikaciju od vrha do dna - ovaj pristup se naziva dizajn odozgo prema dolje. Prvo se dodjeljuje nekoliko potprograma koji rješavaju najsvežije zadatke (na primjer, inicijalizacija podataka, glavni dio i završetak), zatim je svaki od ovih modula detaljno razrađen na nižoj razini, a zatim se razbija u mali broj drugih potprograma, i to se događa dok se ne završi cijeli zadatak.

Ovaj pristup je zgodan po tome što omogućuje osobi da stalno razmišlja na nivou predmeta, bez zaustavljanja na specifičnim operatorima i varijablama. Osim toga, nekima postaje moguće da odmah ne implementiraju potprograme, već privremeno odgode dok se drugi dijelovi ne dovrše. Na primjer, ako postoji potreba za izračunavanjem složene matematičke funkcije, tada se dodjeljuje zasebna potprogram za takav izračun, ali je privremeno provodi jedan operator, koji jednostavno dodjeljuje unaprijed odabranu vrijednost. Kada je cijela aplikacija napisana i ispravljana pogreškama, tada možete započeti s implementacijom ove funkcije.

Također je važno da se male podprograme mnogo lakše otklanjaju pogreške, što značajno povećava ukupnu pouzdanost cijelog programa.

Vrlo važna karakteristika potprograma je njihova ponovna upotreba. Velike biblioteke standardnih rutina opremljene su integriranim programskim sistemima, koji mogu značajno povećati produktivnost korištenjem tuđeg rada za stvaranje često korištenih rutina.

Postoje dvije vrste potprograma - procedure i funkcije. Razlikuju se po tome što postupak jednostavno izvršava grupu naredbi, a funkcija, osim toga, izračunava neku vrijednost i prenosi je nazad u glavni program (vraća vrijednost). Ova vrijednost je određenog tipa (za funkciju se kaže da je takve i takve vrste).

Podprogrami izvode tri važna zadatka:

Uklonite potrebu za ponavljanjem sličnih fragmenata u tekstu programa više puta;

Poboljšati strukturu programa, čineći ga lakšim za razumijevanje;

Povećajte otpornost na programske greške i nepredviđene posljedice tokom izmjena programa.

Objektno orijentisano programiranje

Sredinom osamdesetih godina prošlog stoljeća pojavio se novi pravac u programiranju, zasnovan na konceptu objekta. Do tada su glavna ograničenja mogućnosti stvaranja velikih sistema bila nametnuta nejedinstvom u programu podataka i metodama njihove obrade.

Pravi objekti okolnog svijeta imaju tri osnovne karakteristike: imaju skup svojstava, sposobni su promijeniti ta svojstva na različite načine i reagirati na događaje koji se dešavaju kako u okolnom svijetu, tako i unutar samog objekta. U ovom obliku u programskim jezicima koncept objekta je implementiran kao skup svojstava (strukture podataka karakteristične za ovaj objekt), metode njihove obrade (potprogrami za promjenu svojstava) i događaji na koje ovaj objekt može reagirati i koje po pravilu dovode do promjene svojstava objekta.

Pojava mogućnosti stvaranja objekata u programima ima kvalitativan utjecaj na produktivnost programera. Maksimalni broj aplikacija koje su postale dostupne za izradu od 10 programera povećao se na milijune redaka koda u nekoliko godina, dok je istovremeno bilo moguće postići visoku pouzdanost programa i, što je važno, ponovno koristiti prethodno stvorene objekata u drugim zadacima.

Objekti mogu imati istu strukturu i razlikovati se samo u vrijednostima svojstava. U takvim slučajevima, novi tip se stvara u programu na temelju jedne strukture objekata. Zove se klasa, a svaki određeni objekt koji ima strukturu ove klase naziva se instanca klase.

Objektno orijentisani programski jezik karakterišu tri glavna svojstva:

1. Enkapsulacija - kombiniranje podataka s metodama u jednoj klasi;

Generacije programskih jezika

Potreba za programiranjem pojavila se čak i prije programabilnih računara. Poznato je da na primjer od 18. stoljeća postoje razboji programirani drvenim daskama u kojima su na pravim mjestima napravljene rupe.

Razvoj programiranja potaknula je ideja Johna Von Neumanna, objavljena 1945. godine, u kojoj je opisao računar u kojem je sam program pohranjen u memoriji zajedno s podacima.

Programski jezik prve generacije je mašinski kod. Mašinski kod sastoji se od instrukcija koje računar (procesor) može izvršiti (kao i podataka koji pripadaju tim uputstvima). Prilikom programiranja u mašinskom kodu, programer je morao napisati svoj program u binarnom kodu kako bi ga procesor mogao razumjeti i izvršiti. U suštini, takvo programiranje zahtijeva dobro poznavanje i razumijevanje hardvera, jer je u procesu programiranja potrebno znati šta procesor može raditi, gdje se nalaze ulazno-izlazni uređaji, kao i kako s njima komunicirati. koliko će vremena biti potrošeno na ovu ili onu operaciju. Stoga je strojni kod vrlo čvrsto povezan s hardverom na kojem će se pokrenuti odgovarajući program. Danas mašinski kod nije nestao sa računara, sve radnje na niskom nivou (hardverski nivo) i dalje se dešavaju u mašinskom kodu, tj. Na kojem god programskom jeziku je program napisan, on se na kraju pretvara u mašinski kod koji hardver može razumjeti.

Asemblerski jezici smatraju se jezicima druge generacije. U slučaju mašinskog koda, sve programiranje odvijalo se u binarnom kodu, pa je kao takvo čitanje i otklanjanje grešaka oduzimalo mnogo vremena. Prilikom programiranja na asemblerskom jeziku, uputstva se prezentiraju osobi u razumljivom obliku. Samo programiranje je vrlo slično programiranju u mašinskom kodu, jer su upute iste kao u mašinskom kodu (samo u drugom obliku - u obliku riječi). Program napisan na asemblerskom jeziku je otprilike ovako:

MOV AL, 19

DODAJ AL, 4

OUT 2

Ovaj dio koda dodjeljuje vrijednost AL registra 19 (obično su vrijednosti predstavljene brojevima u heksadecimalnom sistemu), dodaje broj 4 vrijednosti AL registra i zatim šalje broj 2 na izlaz 2. Pisani program se prevodi iz asemblera u mašinski kod i nakon toga procesor može započeti njegovo izvršavanje ...

Asemblerski jezici i mašinski kod smatraju se jezicima niskog nivoa.

Programski jezici treće generacije već se nazivaju jezicima visokog nivoa. Takvi programski jezici nisu baš hardverski povezani. To znači da programer više ne mora znati vrlo precizno strukturu i karakteristike hardvera, već može biti relativno neovisan o hardveru, nakon čega se ovaj program uz pomoć različitih alata pretvara u oblik koji hardver može razumjeti . Preciznije, kako se to radi bit će opisano kasnije.

Većina poznatih i korištenih programskih jezika spada među jezike treće generacije, na primjer:

FORTRAN (IBM -ov matematički FORmula TRANslating System) je programski jezik razvijen 1950 -ih za matematičko računarstvo i naučne svrhe.

COBOL (COmmon Business Oriented Language) - Objektno orijentisan programski jezik, stvoren 1959. godine, uglavnom za pisanje programa koji zadovoljavaju poslovne potrebe.

BASIC (Univerzalni univerzalni simbolički kod za početnike) - jezik razvijen 1963. godine, koji je prvobitno stvoren kako bi inženjeri mogli izvoditi različite simulacije na računarima.

Pascal - Programski jezik stvoren 1970 -ih koji je stvoren za podučavanje programiranja.

C - naziv dolazi od činjenice da se ovaj jezik uglavnom temeljio na jeziku pod nazivom B. Stvoren je za pisanje operativnih sistema (mnogi UNIX kompatibilni operativni sistemi napisani su na ovom jeziku), dugo je bio jedan od najpopularnijih programskih jezika .

C ++ je objektno orijentisan C.

Java je programski jezik razvijen na bazi C ++.

Visual Basic, Delphi, Python, C # su svi jezici treće generacije. Mnogi programski jezici treće generacije mlađi su (noviji) od nekih jezika četvrte i pete generacije.

Programski jezici generacije 4 osmišljeni su tako da ih čine lakim za učenje i upotrebu. Ovi jezici obično nisu proceduralno usmjereni na jednu aplikaciju. Primjer programskog jezika četvrte generacije je SQL (Structured Query Language). Govori više o „šta učiniti“, a manje o „kako to učiniti“. Jezici pete generacije stvoreni su za razvoj sistema umjetne inteligencije i za rješavanje problema vezanih za ovu temu.

Osnovne vrste programskih jezika.

Za razliku od generacija programskih jezika, osnovni tipovi opisuju kako se jezik može programirati. Glavni osnovni tipovi uključuju: proceduralne, funkcionalne i objektno orijentisane programske jezike.

U proceduralnim programskim jezicima programski jezik opisuje radnje i redoslijed njihovog izvođenja, a također su te radnje podijeljene u grupe (potprogrami). Postupci zauzvrat tvore kodne strukture koje se mogu ponovno koristiti. U funkcionalnim programskim jezicima cijelo rješenje je opisano pomoću funkcija. U objektno orijentisanim programskim jezicima problem se rešava korišćenjem funkcija i struktura podataka opisanih u klasama (English Class). Iz svake klase možete stvoriti objekt koji će imati skup svojstava i / ili metoda.

Svojstva su vrijednosti koje objekt može sadržavati i koje mogu utjecati na ponašanje objekta. Na primjer, na osnovu klase "console window", možete stvoriti "console1" objekt koji će biti vidljiv korisniku kao jedan prozor konzole. Ovaj objekt ima neka svojstva (prikazano, skriveno, širinu, visinu, boju teksta u prozoru konzole, boju pozadine itd.), Promjenom ovih svojstava možete promijeniti izgled objekta u ovom konkretnom slučaju.

U istom primjeru, objekt može imati neke metode, na primjer, pozivanjem na odgovarajuću metodu, možete napisati neki tekst u prozor konzole, pročitati tekst koji je korisnik unio u neku varijablu itd.

Drugi primjer je klasa "tekstualna varijabla", stvarajući objekt "ProstoText" na osnovu ove klase, stvarajući jednu tekstualnu varijablu, čije je glavno svojstvo pohranjena tekstualna vrijednost, ali zapravo ovaj objekt ima više svojstava ( na primjer, dužina pohranjene tekstualne vrijednosti). Također, tekstualna varijabla mora imati određeni skup metoda (promijeniti znakove pohranjene vrijednosti u mala, velika, izbrisati neke znakove itd.).

Stoga je opisom klasa i manipulacijom objektima moguće sastaviti vrlo složene programe i izvesti različite radnje.

Tumačeni i sastavljeni jezici

Prije nego što računar može izvršiti program napisan na jeziku visokog nivoa, mora se "prevesti" na jezik koji računar može razumjeti, tj. mašinski kod. Ovaj proces prevođenja naziva se prevođenje, a softver za prevodioce naziva se prevodilac. Prevodioci su podeljeni u dve klase: kompajleri i tumači.

Kompilacija je kada program u mašinskom kodu (nazvan kompajler) pretvara drugi program napisan u programskom jeziku u mašinski kod. Nakon toga se izvršava rezultirajući strojni kod programa. Primjeri prevedenih jezika uključuju C, Fortran, Pascal.

Tumačenje je da program u mašinskom kodu (interpreter) zapisuje programsku datoteku u internu memoriju i počinje da je izvršava red po red. Primjer je stari OSNOVNI jezik.

Tumačenje programa je oko 10-200 puta sporije od izvršavanja prevedenog koda. Nasuprot tome, otklanjanje grešaka (uklanjanje grešaka iz programa) interpretiranog programa obično je lakše nego u slučaju prevedenog programa. U nekim prikladnim slučajevima i uz dostupnost alata pri ruci, ove razlike mogu biti mnogo manje. Dobar primjer je Java, sa optimiziranim kodom i kompajliranjem na srednjem nivou, koji se prevodi u vrijeme izvođenja od strane kompajlera Just-in-Time kako bi odgovarao određenom hardveru.

U principu, program napisan na bilo kojem jeziku može se tumačiti i sastavljati.

Trenutno postoji mnogo pravaca u programiranju. Svako može pronaći nešto po svom ukusu, ali za to morate znati šta ćete tačno raditi na svom polju.

Razvoj web aplikacija

Ovaj smjer je usmjeren na razvoj web aplikacija (drugim riječima, web stranice, ali trenutno web stranice imaju toliko bogatu funkcionalnost da se mogu nazvati punopravnim aplikacijama).

Web programiranje se može podijeliti na pozadinsko (pisanje skripti na strani servera - PHP, Python, Ruby) i prednje (razvoj korisničkog interfejsa - Javascript, HTML, CSS).

Razvoj desktop aplikacija

Razvoj softvera za različite operativne sisteme. Sva raznolikost softvera koji koristimo u svakodnevnom životu. Ako želite napisati vlastiti fotoprocesor, audio player ili uređivač teksta, ovo je mjesto za vas.

Razvoj serverskih aplikacija

To su različiti serveri igara (vaša omiljena Dotka, CS: GO), IM usluge (serverska strana Skypea, ICQ, MSN), bankarske baze podataka.

Razvoj mobilnih aplikacija

Mnogo Java aplikacija. VK, Viber, Yandex.Mape, prevodioci, e-čitači.

Ugrađeno programiranje

Zanimljiva grana programiranja za razne kućanske aparate: usisivače, frižidere, mašine za pranje rublja, igrače, navigatore, elektroničke vage. Uključuje naučni razvoj koristeći specijalizirane jezike kao što je MATLAB.

Sistemsko programiranje

Pisanje raznih upravljačkih programa za hardver, programiranje "kernela" operativnih sistema. Usput, ovdje je uključeno i stvaranje kompajlera i tumača za programske jezike.

Razvoj igara

Ogromna industrija. Ovo uključuje razvoj igara za računare, konzole i mobilne uređaje.

Olimpijsko programiranje i rješavanje problema

Programiranje na različitim "nepraktičnim", a ne uobičajenim jezicima (Pascal, Delphi) za rješavanje nekih izvornih problema koji zahtijevaju nestandardni pristup, domišljatost i IQ iznad 160.

Programiranje za računovodstvo i finansijske proizvode

"1C: Preduzeće". Sve računovodstvo u Rusiji vezano je za ovaj proizvod. Ali nije dovoljno poznavati samo jezik, važno je razumjeti osnove računovodstva. Plus je što ima puno posla i nećete ostati bez kruha.

Programiranje baze podataka

Ozbiljan smjer. Ako želite razviti baze podataka sposobne pohraniti milijarde redaka informacija o svim korisnicima VKontaktea ili Facebooka, a istovremeno ne usporiti - tu ste.

Nauka

Nauka i to sve govori. Neuronske mreže, modeliranje strukture DNK, lansiranje satelita, simulacija Velikog praska.

Inače, nedavno je NASA -ina web stranica objavila vijest o potrazi za programatorom na "drevnom" fortran jeziku, starom više od 60 godina. Programer je morao razviti programe za upravljanje automatskim sondama Voyager 1 i Voyager 2, softver za koji su pisani u Assembleru, Fortranu i COBOL -u još 1970 -ih. Nikad ne znate koje bi vam znanje moglo dobro doći.