Mis tüüpi programmeerijad on olemas. Programmeerimiskeelte tüübid

Protseduuriline (kohustuslik) programmeerimine on traditsiooniliste arvutite arhitektuuri peegeldus. Protseduurilise programmeerimiskeele programm koosneb operaatorite jadast (juhised), mis määravad probleemi lahendamise korra. Peamine neist on määramisoperaator, mis muudab mälualade sisu. Mälu kui väärtuste säilitaja kontseptsioon, mille sisu saab programmi avalduste abil uuendada, on hädavajaliku programmeerimise põhialus. Protseduuriline programmeerimiskeel võimaldab programmeerijal probleemi lahendamise iga etapi määratleda. Selliste programmeerimiskeelte eripära on see, et ülesanded jaotatakse sammude kaupa ja lahendatakse samm -sammult. Imperatiivne programmeerimine sobib kõige paremini väikesteks alamülesanneteks, kus kaasaegsete arvutite täitmise kiirus on väga oluline.

Protseduurilised programmeerimiskeeled on järgmised: Ada, Basic (versioonid Quick Basicust Visual Basicuni), C, COBOL, Fortran, Modulaar- 2, Pascal, PL / 1, Rapier, REXX.

Struktureeritud programmeerimine- tarkvaraarenduse metoodika, mis põhineb programmi esitlusel plokkide hierarhilise struktuuri kujul, mis on ehitatud kolme tüüpi põhistruktuuridest: järjestikune täitmine, hargnemine ja tsükkel.

Objektile orienteeritud programmeerimine on programmeerimismetoodika, mis põhineb programmi esitamisel objektide kogumina, millest igaüks on teatud klassi rakendus (eritüüpi andmetüüp) ja klassid moodustavad pärimispõhimõtetel põhineva hierarhia.

Objektid tähendavad andmete ja nende töötlemise protseduuride ühendamist ühtseks tervikuks. Objektid saavad omavahel sõnumeid vahetada. Kui objekt saab teate, käivitatakse vastav käitleja, muidu kutsutakse meetod... Objektil on assotsiatiivne konteiner, mis võimaldab teil sõnumiga saada selle töötlemise meetodi. Lisaks on objektil esivanema objekt. Kui sõnumi käsitlemiseks ei leita ühtegi meetodit, edastatakse teade emaobjektile. See struktuur tervikuna (käitlejate ja esivanemate tabel) on tõhususe huvides eraldatud eraldi objektiks klassi sellest objektist. Objektil endal on viide selle klassi esindavale objektile. Objektid suhtlevad eranditult üksteisele sõnumite saatmisega.

Oluline on esile tuua objektide järgmised kolm peamist omadust.

Kapseldamine (andmekaitse)- mehhanism, mis ühendab andmeid ja neid andmeid manipuleerivaid meetodeid ning kaitseb mõlemaid väliste häirete eest.


Pärand on protsess, mille käigus üks objekt võib pärida teise objekti omadusi ja lisada neile ainulaadseid jooni. Lapse ja esivanema suhet klassides nimetatakse pärandiks.

Polümorfism on omadus, mis võimaldab objekti asendada teise sarnase klassistruktuuriga objektiga. Seega, kui asendate suvalise objekti interaktsiooni stsenaariumi korral suvalise objekti teisega, mis suudab samu sõnumeid töödelda, rakendatakse ka stsenaarium.

Deklaratiivne programmeerimine... Deklaratiivse programmeerimise rõhk on sellel, mida teha, mitte kuidas seda teha (imperatiivsetes keeltes). Peamine on siin probleemi täpne sõnastamine ning selle lahendamiseks vajaliku algoritmi valik ja rakendamine on käivitussüsteemi, kuid mitte programmeerija probleem. Näiteks HTML -i veebilehed on deklaratiivsed, kuna need kirjeldavad, mida leht peaks sisaldama, mitte seda, kuidas leht ekraanil kuvatakse. See lähenemisviis erineb kohustuslikest programmeerimiskeeltest, mis nõuavad programmeerijalt täitmise algoritmi määramist.

Deklaratiivse programmeerimise harusid on kaks: funktsionaalne, mis põhineb funktsiooni matemaatilisel kontseptsioonil, mis ei muuda oma keskkonda, erinevalt protseduurikeelte funktsioonidest, mis lubavad kõrvaltoimeid, ja loogiline, kus programmid on väljendatud matemaatilise loogika valemitena ja arvuti probleemi lahendamiseks. püüab neist loogilisi tagajärgi järeldada.

Loogiline programmeerimine põhineb matemaatilisel loogikal. Kuid kõige kuulsam loogika programmeerimiskeel on Prolog. Programm PROLOGUE sisaldab kahte komponenti: fakte ja reegleid. Faktid on andmed, millega programm töötab, ja faktide kogu moodustab PROLOGUE andmebaasi, mis on tegelikult relatsiooniline andmebaas. Põhiline andmetega tehtav toiming on sobitamistoiming, mida nimetatakse ka ühendamis- või ühildamistoiminguks.

Nagu teistegi deklaratiivsete keelte puhul, kirjeldab programmeerija sellega töötades olukorda (reegleid ja fakte) ning sõnastab eesmärgi (päringu), võimaldades PROLOGUE tõlgil selle jaoks probleemile lahenduse leida. PROLOGUE tõlki mõistetakse kui mehhanismi probleemi lahendamiseks PROLOGUE keelt kasutades. Programm PROLOGUE on faktide ja (võimalik) reeglite kogum. Kui programm sisaldab ainult fakte, nimetatakse seda andmebaasiks. Kui see sisaldab ka reegleid, kasutatakse sageli mõistet teadmistebaas.

Erinevalt menetluskeeltes kirjutatud programmidest, mis näevad ette toimingute jada, mida arvuti peab probleemi lahendamiseks tegema, kirjeldab programmeerija PROLOGUE -s fakte, reegleid, nendevahelisi suhteid ja ka probleemi kohta esitatavaid taotlusi. PROLOGUE kõige tüüpilisem rakendus on ekspertsüsteemid.

Enesetesti küsimused

1. Mis on programm? Mida tähendab esineja?

2. Mis on masinakood?

3. Mis on tõlkija? Loetlege tõlkijate tüübid.

4. Kuidas tõlk töötab? Millised on selle eelised?

5. Mis on kompilaatorite eelis?

6. Millised komponendid kuuluvad integreeritud programmeerimissüsteemi?

7. Mida mõeldakse andmestruktuuri all, milline on andmestruktuuri klassifikatsioon?

8. Mida mõeldakse andmemassiivide all ja milliseid toiminguid saab nendega teha?

9. Millised on massiivide sorteerimise algoritmid?

10. Mis on alamprogrammide eesmärk?

11. Milleks on rutiinide kogu?

12. Mis tüüpi programmeerimine on olemas?

Kirjandus

1. Stavrovski A.B., Karnaukh T.A. Esimesed sammud programmeerimisel. Iseõppimise juhend. - M.: Williams, 2006.- 400 lk.

2. Okulov S. Programmeerimise alused Kirjastaja: Binom. Teadmistelabor, 2008 .-- 383 lk.

3. Kantsedal S.А. Algoritmimise ja programmeerimise alused. - M.: Foorum, 2008.- 351 lk.

4.httn // www myfreesoft ru / default-windows-nroprams html-Windowsi standardprogrammid

5.httn // khni -iin mink Kharkiv edu / lihrary / datastr / hook / nrt01 html # lb11 - mudelid ja andmestruktuurid

6.httn: //www.intuit.ru/denartment/se/nhmsu/11/3.html#sect5 - mudelid ja andmestruktuurid

7.http: //inf.1sentemher.ru/2007/15/00.htm - informaatikaõpetaja entsüklopeedia

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

9.httn // inroc ru / narallel-nroPramminP / lection-5 /-hunnikute sorteerimine.

Programmeerimiskeel- ametlik märgisüsteem, mis on loodud algoritmide kirjeldamiseks esinejale mugavas vormis (näiteks arvuti). Programmeerimiskeel määratleb arvutiprogrammi koostamisel kasutatavate leksikaalsete, süntaktiliste ja semantiliste reeglite kogumi. See võimaldab programmeerijal täpselt määrata, millistele sündmustele arvuti reageerib, kuidas andmeid salvestatakse ja edastatakse ning milliseid toiminguid tuleks nendega erinevates olukordades teha.

Alates esimeste programmeeritavate masinate loomisest on inimkond leiutanud juba üle kahe ja poole tuhande programmeerimiskeele. Igal aastal täiendatakse nende arvu uutega. Mõned keeled on teada vaid vähestele nende enda arendajatele, teised saavad teada miljonitele inimestele. Professionaalsed programmeerijad kasutavad mõnikord oma töös rohkem kui tosinat erinevat programmeerimiskeelt.

Keeleloojad tõlgendavad seda mõistet erinevalt programmeerimiskeelt... Enamiku arendajate poolt tunnustatud levinumad kohad on järgmised:

· Funktsioon: programmeerimiskeel on ette nähtud arvutiprogrammide kirjutamiseks, mida kasutatakse juhiste edastamiseks arvutisse konkreetse arvutusprotsessi läbiviimiseks ja üksikute seadmete juhtimise korraldamiseks.

· Ülesanne: programmeerimiskeel erineb loomulikest keeltest selle poolest, et see on loodud käskude ja andmete edastamiseks inimeselt arvutisse, samas kui loomulikke keeli kasutatakse ainult inimeste omavaheliseks suhtlemiseks. Põhimõtteliselt on võimalik "programmeerimiskeelte" definitsiooni üldistada - see on käskude, korralduste edastamise viis, selge tegevusjuhend; samas kui inimkeeli kasutatakse ka teabe vahetamiseks.

· Täitmine: programmeerimiskeel saab kasutada spetsiaalseid konstruktsioone andmestruktuuride määratlemiseks ja nendega manipuleerimiseks ning arvutusprotsessi juhtimiseks.

3. Probleemi lahendamise etapid arvutis.

VT kõige tõhusam rakendus on leitud töömahukates arvutustes teaduslikes uuringutes ja tehnilistes arvutustes. Arvutis probleemi lahendades kuulub peamine roll ikkagi inimesele. Masin täidab oma ülesandeid ainult vastavalt väljatöötatud programmile. inimese ja masina rollist on lihtne aru saada, kui probleemi lahendamise protsess on jagatud allpool loetletud etappideks.

Probleemi sõnastamine. See etapp seisneb probleemi sisulises (füüsilises) sõnastamises ja lõpplahenduste määramises.

Matemaatilise mudeli loomine. Mudel peaks õigesti (adekvaatselt) kirjeldama füüsilise protsessi põhiseadusi. Matemaatilise mudeli koostamine või valimine olemasolevate seast nõuab probleemi sügavat mõistmist ja vastavate matemaatikaosade tundmist.

MM -i areng. Kuna arvuti suudab sooritada ainult kõige lihtsamaid toiminguid, ei saa ta isegi matemaatilises sõnastuses probleemilahendusest aru. Selle lahendamiseks tuleb leida numbriline meetod, mis võimaldab probleemi taandada mõnele arvutusalgoritmile. Igal konkreetsel juhul on vaja valida sobiv lahendus juba välja töötatud standardlahenduste hulgast.

Algoritmi väljatöötamine.Ülesande lahendamise protsess (arvutusprotsess) on kirjutatud elementaarsete aritmeetiliste ja loogiliste toimingute jada kujul, mis viib lõpptulemuseni ja mida nimetatakse probleemi lahendamise algoritmiks.

Programmeerimine. Probleemi lahendamise algoritm on kirjutatud masinale arusaadavas keeles täpselt määratletud toimingute jada - programmi kujul. Protsess viiakse tavaliselt läbi mõne vahekeele abil ja selle tõlkimise teostab masin ise ja selle süsteem.

Programmi silumine. Koostatud programm sisaldab igasuguseid vigu, ebatäpsusi ja trükivigu. Silumine hõlmab programmi juhtimist, diagnostika (sisu otsimine ja määramine) vigu ja nende kõrvaldamist. Programmi testitakse lahendades kontrolli (testi) ülesandeid, et saada usaldus tulemuste usaldusväärsuse suhtes.

Arvutused. Selles etapis koostatakse arvutuste lähteandmed ja arvutused viiakse läbi vastavalt silutud programmile. samal ajal saab tulemuste töötlemiseks käelise töö vähendamiseks laialdaselt kasutada mugavaid tulemuste väljastamise vorme teksti ja graafilise teabe kujul inimesele arusaadaval kujul.

Tulemuste analüüs. Arvutamistulemusi analüüsitakse hoolikalt, koostatakse teaduslik ja tehniline dokumentatsioon.

4. Milleks on programmeerimiskeeled?

Arvuti tööprotsess seisneb programmi täitmises, see tähendab täpselt määratletud käskude kogumis täpselt määratletud järjekorras. Käsu masinavorm, mis koosneb nullidest ja üksikutest, näitab, millist toimingut keskprotsessor peaks tegema. See tähendab, et selleks, et öelda arvutile toimingute jada, mida see peab täitma, peate määrama vastavate käskude binaarkoodide jada. Masinkoodiprogrammid koosnevad tuhandetest juhistest. Selliste programmide kirjutamine on raske ja tüütu. Programmeerija peab meeles pidama iga programmi binaarkoodi nullide ja ainsate kombinatsiooni, samuti selle täitmisel kasutatud andmeaadresside kahendkoode. Palju lihtsam on kirjutada programm mõnes keeles loomulikule inimkeelele lähemale ja usaldada arvutile selle programmi masinkoodideks tõlkimise töö. Nii tekkisid keeled spetsiaalselt programmide kirjutamiseks - programmeerimiskeeled.

Saadaval on palju erinevaid programmeerimiskeeli. Tegelikult saab ükskõik millist neist kasutada enamiku probleemide lahendamiseks. Kogenud programmeerijad teavad, millist keelt on iga konkreetse probleemi lahendamiseks parem kasutada, kuna igal keelel on oma võimalused, orienteeritus teatud tüüpi probleemidele, oma viis probleemide lahendamisel kasutatavate mõistete ja objektide kirjeldamiseks.

Kõik programmeerimiskeeled võib jagada kahte rühma: madala taseme keeled ja kõrgetasemelised keeled.

Madala taseme keelte hulka kuuluvad kokkupanekukeeled (inglise keelest kokkupanekuni - kogumiseks, kokkupanekuks). Assamblee keel kasutab käskude jaoks sümboolset tähistust, mida on lihtne mõista ja kiiresti meelde jätta. Käskude binaarsete koodide jada asemel kirjutatakse nende sümboolsed tähised ja käsu täitmisel kasutatavate binaarsete andmeaadresside asemel programmeerija valitud nende andmete sümboolsed nimed. Koostamiskeelt nimetatakse mõnikord mnemokoodiks või autokoodiks.

Enamik programmeerijaid kasutab oma programmide kirjutamiseks kõrgetasemelisi keeli. Nagu tavalisel inimkeelel, on ka sellisel keelel oma tähestik - keeles kasutatavate sümbolite komplekt. Nendest sümbolitest koosnevad nn keele märksõnad. Iga märksõna täidab oma ülesannet, nii nagu meie keeles harjunud keeles, võivad antud keele tähestiku tähtedest koosnevad sõnad täita erinevate kõneosade funktsioone. Märksõnad on üksteisega lausetega seotud vastavalt keele teatud süntaktilistele reeglitele. Iga lause määratleb teatud toimingute jada, mida arvuti peab tegema.

Kõrgetasemeline keel mängib vahendaja rolli inimese ja arvuti vahel, võimaldades inimesel suhelda arvutiga inimesele tuttavamal viisil. Sageli aitab see keel valida probleemi lahendamiseks sobiva meetodi.

Enne programmi kirjutamist kõrgetasemelises keeles peab programmeerija komponeerima algoritm probleemi lahendamine, see tähendab samm-sammuline tegevuskava, mis tuleb selle probleemi lahendamiseks täita. Seetõttu nimetatakse sageli keeli, mis nõuavad algoritmi eelnevat koostamist algoritmilised keeled.

5. Millised programmeerimiskeeled on olemas

1.1 Fortran

Programmeerimiskeeled hakkasid ilmuma juba 50ndate keskel. Üks esimesi seda tüüpi keeli oli FORTRANi keel (FORTRAN from FORmulaTRANslator - valemite tõlkija), mis töötati välja 1957. aastal. Fortranit kasutatakse algoritmi kirjeldamiseks teaduslike ja tehniliste probleemide lahendamiseks digitaalarvuti abil. Nagu esimesed arvutid, oli ka see keel mõeldud peamiselt loodusteaduste ja matemaatiliste arvutuste tegemiseks. Täiustatud kujul on see keel säilinud meie ajani. Kaasaegsete kõrgetasemeliste keelte hulgas on see üks enim kasutatud teaduslikes uuringutes. Kõige tavalisemad variandid on Fortran-II, Fortran-IV, EASICFortran ja nende üldistused.

1.2 ALGOL

Pärast Fortranit aastatel 1958-1960 ilmus algoli keel (Algol-58, Algol-60) (inglise keel ALGOL alates ALGOrithmicLanguage-algoritmikeel). Algolit täiustati aastatel 1964-1968-Algol-68. ALGOLi töötas välja komitee, kuhu kuulusid Euroopa ja Ameerika teadlased. See kuulub kõrgetasemelistesse keeltesse ja võimaldab teil hõlpsasti tõlkida algebralisi valemeid programmi käskudeks. Algol oli populaarne Euroopas, sealhulgas NSV Liidus, samasugune Fortran oli levinud USA -s ja Kanadas. Algol oli märgatav mõju kõigile hiljem väljatöötatud programmeerimiskeeltele ja eriti Pascali keelele. See keel, nagu Fortran, oli mõeldud teaduslike ja tehniliste probleemide lahendamiseks. Lisaks kasutati seda keelt programmeerimise aluste - programmeerimiskunsti - õpetamise vahendina.

Tavaliselt tähendab Algoli mõiste keelt ALGOL-60, samas ALGOL-68 peetakse iseseisvaks keeleks. Isegi siis, kui algoli keel programmeerimiseks peaaegu lakkas, jäi see ikkagi algoritmide avaldamise ametlikuks keeleks.

1.3 Cobol

Aastatel 1959 - 1960 töötati välja kooboli keel (inglise keeles COBOL alates COmmom Business Oriented Language). See on kolmanda põlvkonna programmeerimiskeel, mis on mõeldud peamiselt ärirakenduste arendamiseks. Samuti oli Kobol ette nähtud majandusprobleemide lahendamiseks, pankade, kindlustusseltside ja muude sedalaadi asutuste andmete töötlemiseks. Grace Hopper ( vanaema Kobola).

Tavaliselt kritiseeritakse Cobolit selle paljusõnalisuse ja kohmakuse pärast, kuna keele loojate üks eesmärk oli viia konstruktsioonid inglise keelele võimalikult lähedale. (Siiani peetakse Cobolit programmeerimiskeeleks, millesse kirjutati kõige rohkem koodiridu). Samas oli Cobol oma aja kohta suurepärased tööriistad andmestruktuuride ja failidega töötamiseks, mis tagas ärirakendustes pika eluea, vähemalt Ameerika Ühendriikides.

1.4 Lisp

Peaaegu samaaegselt Coboliga (1959 - 1960) loodi Massachusettsi Tehnoloogiainstituudis lispi keel (LISP from LIStProcessing). Lisp põhineb programmi esitusel lineaarsete tähemärkide loendite süsteemi abil, mis on pealegi keele peamine andmestruktuur. Lispi peetakse Fortrani järel vanuselt teiseks kõrgetasemeliseks programmeerimiskeeleks. Seda keelt kasutatakse laialdaselt sümboolse teabe töötlemiseks ja seda kasutatakse tarkvara loomiseks, mis jäljendab inimese aju tegevust.

Mis tahes Lisp -programm koosneb järjestusest väljendeid(vormid). Programmi tulemuseks on nende väljendite hindamine. Kõik väljendid on kirjutatud kujul nimekirjad- üks Lispi põhistruktuure, nii et neid saab hõlpsasti keele abil luua. See võimaldab teil luua programme, mis muudavad teisi programme või makrosid, võimaldades teil keele võimalusi oluliselt laiendada.

Lispi programmi "elu" peamine tähendus sümboolses ruumis: liikumine, loovus, meeldejätmine, uute maailmade loomine jne. Lisp kui aju metafoor, sümbol, signaalimetafoor: "Kuidas muutub aju signaalide bioloogiline analüüs kui väline tegur - füüsiline ja keemiline mõju, mis on kehale ärritav, bioloogiliselt oluliseks signaaliks, sageli elutähtis, määrates kindlaks inimese või looma käitumise; ja kuidas erinevad signaalid jagunevad positiivseks, negatiivseks ja ükskõikseks, ükskõikseks. Signaal on juba integreeriv mõiste. See on rühma identifitseerimismärk, keerulised stiimulid , mis on omavahel seotud ühise ajaloo ja põhjuslike seostega. Selles kompleksis on stiimulite süsteem, signaali stiimul ise, see on ka koostisosa ja muudel asjaoludel võib selle roll kuuluda kompleksi teisele stiimulile. Signaal koondab kõik looma või inimese varasem kogemus.

1.5 BASIC

60ndate keskel (1963) loodi Dartmouthi kolledžis (USA) BASIC keel (BASIC from Beginner's Allpurpose Instruction Code). Aja jooksul, kui hakkasid ilmnema ka teised murded, sai see "algne" murre nimeks Dartmouth BASIC. Keel põhines osaliselt Fortran II-l ja osaliselt Algol-60-l, täiendused muudavad selle aja jagamiseks mugavaks ning hiljem ka teksti töötlemiseks ja maatriksi aritmeetikaks. BASIC rakendati algselt GE-265 suurarvutis, toetades mitut terminali. Vastupidiselt levinud arvamusele oli see selle loomisel kompileeritud keel.

BASIC loodi nii, et õpilased saavad programme kirjutada aja jagamise terminalide abil. See loodi lahenduseks vanemate keelte keerukusele. See oli mõeldud "lihtsamatele" kasutajatele, keda ei huvitanud niivõrd programmide kiirus, vaid lihtsalt oskus oma probleemide lahendamiseks arvutit kasutada. BASIC -keele lihtsuse tõttu alustavad paljud algajad programmeerijad sellega programmeerimist.

1.6 Kindlus

60ndate lõpus - 70ndate alguses ilmus kindluse keel (inglise NELJAS - neljas). Seda keelt hakati kasutama erinevate süsteemide juhtimise probleemides pärast seda, kui selle autor Charles Moore kirjutas sellesse programmi, mis oli mõeldud Arizona observatooriumi raadioteleskoobi juhtimiseks.

Mitmed omadused, nimelt interaktiivsus, paindlikkus ja lihtne arendamine, muudavad Forthi väga atraktiivseks ja tõhusaks keeleks rakendusuuringuteks ja tööriistade arendamiseks. Selle keele ilmsed kasutusalad on sisseehitatud juhtimissüsteemid. Samuti leiab rakendust erinevate operatsioonisüsteemidega töötavate arvutite programmeerimisel.

1.7 Pascal

1972. aastal ilmunud Pascali keel sai oma nime 17. sajandi suure prantsuse matemaatiku, maailma esimese aritmeetikamasina Blaise Pascali leiutaja järgi. Selle keele lõi Šveitsi arvutiteadlane Niklaus Wirth programmeerimismeetodite õpetamise keelena. Pascal on üldotstarbeline programmeerimiskeel.

Keele eripära on range trükkimine ja struktuursete (protseduuriliste) programmeerimisvahendite kättesaadavus. Pascal oli üks esimesi selliseid keeli. N. Wirthi sõnul peaks keel programmeerimisdistsipliinile kaasa aitama, seetõttu on Pascalis koos tugeva trükkimisega võimalikud süntaktilised ebaselgused minimeeritud ja süntaks ise on intuitiivselt selge isegi keelega tutvumisel.

Pascali keel õpetab mitte ainult programmi korrektset kirjutamist, vaid ka seda, kuidas õigesti välja töötada probleemi lahendamise meetod, valida probleemis kasutatud andmete esitamise ja korraldamise viisid. Alates 1983. aastast on USA keskkoolide informaatika õppekavasse sisse viidud Pascali keel.

1.8 Põrgu

1983. aastal loodi Ada keel USA kaitseministeeriumi egiidi all. Keel on tähelepanuväärne selle poolest, et koostamise etapis on võimalik avastada palju vigu. Lisaks toetab see programmeerimise paljusid aspekte, mis jäetakse sageli operatsioonisüsteemi meelevalda (samaaegsus, erandite käsitlemine). 1995. aastal võeti vastu Ada 95 keelenorm, mis tugineb eelmisele versioonile, lisades sellele objektorienteerituse ja parandades mõned ebatäpsused. Mõlemat keelt ei kasutata laialdaselt väljaspool sõjalisi ja muid suuremahulisi projekte (lennundus, raudteetransport). Peamine põhjus on keele õppimise raskus ja üsna tülikas süntaks.

Ada vahetud eelkäijad on Pascal ja selle derivaadid, sealhulgas Euclid, Lis, Mesa, Modula ja Sue. Kasutati mitmeid ALGOL-68, Simula, CLU ja Alphard kontseptsioone.

Ada arendajate peamine mure oli:

· Programmide usaldusväärsus ja toimivus;

· Programmeerimine kui omamoodi inimtegevus;

· Tõhusus.

Tabel 1 näitab Ada keele põhiomadusi objektile lähenemise seisukohast.

Tabel 1. Ada.

1.9 Si

Praegu on C programmeerijate seas populaarne keel (C on inglise tähestiku täht). C keel pärineb kahest keelest- BCPL ja B. 1967. aastal töötas Martin Richards välja BCPL kui süsteemi tarkvara ja kompilaatorite kirjutamise keele. 1970. aastal kasutas Ken Thompson B-d, et luua DEC PDP-7 arvutis UNIX-i opsüsteemi varajased versioonid. Nii BCPL -is kui ka B -s ei eraldatud muutujaid tüüpideks - iga andmeväärtus võttis mälus ühe sõna ja vastutus näiteks täisarvude ja reaalarvude eristamise eest langes täielikult programmeerija õlgadele. C keel arendati välja ( põhineb B), autor Dennis Ritchie ettevõttelt Bell Laboratories ja seda rakendati esmakordselt 1972. aastal DEC PDP-11 arvutis. C saavutas kuulsuse UNIX OS -i keelena. Peaaegu kõik peamised operatsioonisüsteemid on tänapäeval kirjutatud C või C ++ keeles. Kahe aastakümne pärast on C enamikus arvutites saadaval. See on riistvarast sõltumatu. 70ndate lõpus arenes C välja traditsiooniliseks C -ks. 1983. aastal kehtestas Ameerika arvutite ja andmetöötluse riiklike standardite komitee selle keele jaoks ühtse standardi. Sellel keelel on rikkalikud vahendid, see võimaldab teil kirjutada paindlikke programme, mis kasutavad kõiki kaasaegsete personaalarvutite võimalusi.

1.10 Proloog

Veel ühe keele, mida peetakse tulevikukeeleks, lõi 70ndate alguses rühm Marseille'i ülikooli spetsialiste. See on Prologi keel. Oma nime sai see sõnadest "PROGRAMMING LOOGIKA KEELES". See keel põhineb matemaatilise loogika seadustel. Nagu lispi keelt, kasutatakse ka Prologit peamiselt inimese ajutegevuse tarkvara simulatsiooni valdkonna teadusuuringutes. Erinevalt ülalkirjeldatud keeltest ei ole see keel algoritmiline. See kuulub nn kirjeldav(inglise keelest kirjeldav - kirjeldav) - kirjeldavad keeled. Kirjeldav keel ei nõua programmeerijalt ülesande kõigi etappide väljatöötamist. Selle asemel peab programmeerija sellise keele reeglite kohaselt kirjeldama lahendatavale probleemile vastavat andmebaasi ja selle andmebaasi andmeid kasutades vastuste kogumit.

Viimastel aastakümnetel on tekkinud programmeerimine ja see on oluliselt arenenud objektile orienteeritud lähenemine. See on programmeerimismeetod, mis jäljendab tegelikku maailmapilti: probleemi lahendamiseks kasutatud teave on esitatud interakteeruvate objektide kogumina. Igal objektil on oma omadused ja käitumine. Objektide interaktsioon toimub sõnumiedastuse abil: iga objekt saab vastu võtta sõnumeid teistelt objektidelt, mäletada teavet ja seda teatud viisil töödelda ning omakorda sõnumeid saata. Nii nagu reaalses maailmas, salvestavad objektid oma omadused ja käitumise koos, pärides osa neist oma esemeobjektidelt.

Objektile orienteeritud ideoloogiat kasutatakse kõigis kaasaegsetes tarkvaratoodetes, sealhulgas operatsioonisüsteemides.

Esimene objektorienteeritud keel Simula -67 loodi vahendina erinevate seadmete ja mehhanismide toimimise simuleerimiseks. Enamik kaasaegseid programmeerimiskeeli on objektorienteeritud. Nende hulgas on keele uusimad versioonid Turbo - Pascal , C ++, Ada ja teised.

Süsteeme kasutatakse nüüd laialdaselt visuaalne programmeerimine Visuaalne Põhiline , Visuaalne C ++, Delfi ja teised. Need võimaldavad teil luua lihtsa ja mugava kasutajaliidesega keerukaid rakenduspakette.

1.11 Java

Alates 1995. aastast on levinud uus objektorienteeritud programmeerimiskeel Java, mis on suunatud arvutivõrkudele ja ennekõike Internetile. Selle keele süntaks sarnaneb C ++ keele süntaksiga, kuid neil keeltel on vähe ühist. Java on tõlgendatav keel: selle jaoks on määratletud sisemine esitus (baitkood) ja selle esitluse tõlk, mis on enamikul platvormidel juba rakendatud. Tõlk lihtsustab Java keeles kirjutatud programmide silumist, tagab nende teisaldatavuse uutele platvormidele ja kohanemisvõime uude keskkonda. See võimaldab välistada Java -keeles kirjutatud programmide mõju teistele uuel platvormil saadaolevatele programmidele ja failidele ning tagada seeläbi nende programmide täitmise ohutuse. Need Java keele omadused võimaldavad seda kasutada peamise programmeerimiskeelena võrkudes (eriti Internetis) levitatavate programmide jaoks.

1.12 Objekt Pascal

Objekti Pascali lõid Apple Computeri töötajad (mõned neist olid Smalltalki kaastöötajad) koos Pascali keele looja Niklaus Wirthiga. Objekt Pascal on olnud alates 1986. aastast ja see on esimene objektorienteeritud programmeerimiskeel, mis on kaasatud Apple'i Macintoshi arvutite arenduskeskkonda Macintosh Programmer's Workshop (MPW).

Selles keeles puuduvad klassimeetodid, klassimuutujad, mitmekordne pärimine ja metaklassid. Need mehhanismid on meelega välistatud, et hõlbustada keele õppimist algajatele "objekti" programmeerijatele.

Tabel 2 näitab objekti Pascal üldisi omadusi.

Tabel 2. Objekti Pascal.

Viimastel aastatel on see keel tänu Borlandi Delfisüsteemile väga populaarseks saanud.

1.13 Visuaalsele objektile orienteeritud disaini süsteem Delphi.

Delfi tulek ei saanud arvukate arvutikasutajate seas märkamata jääda. Selle uue Borlandi toote võimalusi uurivate ekspertide hinnangud on tavaliselt entusiastlike toonidega. Delphi peamine eelis on see, et siin rakendatakse visuaalse programmeerimise ideid. Visuaalne programmeerimiskeskkond muudab programmi loomise protsessi suureks graafiliste ja struktuuriliste primitiivide kogumiks meeldivaks ja hõlpsasti mõistetavaks rakenduse konstruktsiooniks.

Delphi süsteem võimaldab teil lahendada paljusid probleeme, eriti:

· Looge Windowsi jaoks täielikke rakendusi väga erinevatel eesmärkidel: alates puhtalt arvutuslikust ja loogilisest kuni graafilise ja multimeediumini.

· Looge kiiresti (isegi algajatele programmeerijatele) professionaalse välimusega aknaga liides igale rakendusele.

· Looge võimsad süsteemid kohalike ja kaugandmebaasidega töötamiseks

· Looge oma rakendustele ja muule abisüsteeme (.hlp -faile). dr.

Delphi on äärmiselt kiiresti kasvav süsteem. Esimene versioon Delphi 1.0 ilmus veebruaris 1995 ja seejärel ilmusid uued versioonid igal aastal.

Iga järgnev Delphi versioon täiendas eelmist. Enamik Delphi versioone on saadaval mitmes versioonis: standardne - standardne, professionaalne - professionaalne, klient / server - klient / server, ettevõte - ainevaldkondade andmebaaside arendamine. Variandid erinevad peamiselt andmebaasihaldussüsteemidele juurdepääsu eri tasanditel. Viimased võimalused on Client / Server ja Enterprise, mis on selles osas kõige võimsamad.

Delphi on mitme olulise tehnoloogia kombinatsioon:

Suure jõudlusega masina koodi koostaja

Objektile orienteeritud komponendimudel

Visuaalne (ja seega ka kiire) rakenduste loomine tarkvara prototüüpidest

Skaleeritavad tööriistad andmebaaside loomiseks

Ekraani struktuur Delfi keskkonnas.

Pärast Delphile helistamist ilmub Windowsile mitu akent (joonis 1):

Peaaken,

Vormi aken,

Objektiinspektori aken,

Objektipuu aken,

Programmi koodi aken.


Joonis 1. Ekraani struktuur Delfi keskkonnas.

Mõelge ekraani ülaosas asuvale ikoonidest koosnevale Delphi süsteemi graafilisele menüüle. Graafilise menüü vasakul küljel on tööriistariba. Tööriistad täidavad mõningaid peamenüü käske - sellist dubleerimist kasutatakse sageli tööriistakeskkondades. Sellel paneelil on eelkõige nupp projekti kettale salvestamiseks, projekti avamise nupp, programmi käivitamiseks käivitamise nupp.

Graafilise menüü järgmine osa on komponentide palett, mis on paigutatud ikoonikomplektide kujul. Komplektide kogu moodustab visuaalsete komponentide kogu (VCL). Komponente on mitu kategooriat, millest igaüks on seotud erineva vahekaardiga. Komponentide paletti kasutades vormistame vormil olevad komponendid (või objektid).

Vormi objekti paigutamiseks peate "klõpsama" paleti vastaval nupul ja seejärel klõpsama vormiaknas: objekt määratakse vormi määratud kohta - komponendi eksemplar valitud tüüpi.

Objektide inspektori aken on aken, mis kuvab vormi või vormi asetatud objekti atribuudid. Meie puhul on vormiks praegune komponent, nii et joonise atribuutide aken näitab vormi omadusi.

Atribuutide aknal on kaks vahekaarti - Atribuudid ja Sündmused, mille abil saate aknast read (väljad) vastavalt määrata komponendi (st objekti või vormi) omadused ja selle vastuse erinevatele sündmused. Atribuut määratleb komponendi atribuudi, näiteks nupu suuruse või sildi fondi. Sündmus tähendab näiteks selliseid toiminguid nagu nupu klõpsamine või akna sulgemine.

Objektipuu aken ilmus versioonis 6 ja on mõeldud aktiivsele vormile või aktiivsesse andmemoodulisse paigutatud üksikute objektide vaheliste linkide visuaalseks kuvamiseks.

Programmi koodi aken on mõeldud programmi teksti loomiseks ja redigeerimiseks. Esialgu sisaldab see minimaalset lähtekoodi.

Delfi projektid. Delphi projekt koosneb vormidest, moodulitest, projekti parameetrite sätetest, ressurssidest jne. Kogu see teave asub failides. Paljud neist failidest genereerib Delphi teie rakenduse koostamisel automaatselt. Selliseid ressursse nagu bitikaardid, ikoonid jms leiate failidest, mille saate muudest allikatest või loote paljude teie käsutuses olevate tööriistade ja ressursiredaktoritega. Lisaks genereerib kompilaator ka faile.

Kujundusprotsessi käigus loodud failid on näidatud tabelis. 3.

Rakenduse põhiosa on projektifail (.dpr), mis sisaldab objekti Pascal koodi, mis käivitab programmi ja lähtestab muud moodulid. Selle loob ja muudab Delphi automaatselt rakenduste väljatöötamise ajal. Salvestusprotsessi käigus projektifailile antud nimest saab käivitatava faili nimi.

Projektifail (.dpr) Seda tekstifaili kasutatakse vormide ja moodulite kohta teabe salvestamiseks. See sisaldab avaldusi programmide käivitamiseks ja käivitamiseks käivitamiseks
Moodulifail (.pas) Igal teie loodud vormil on vastav mooduli tekstifail, mida kasutatakse koodi salvestamiseks. Saate luua mooduleid, mis pole vormidega seotud. Paljud Delphi funktsioonid ja protseduurid on salvestatud moodulitesse.
Vormifail (.dfm) See on binaar- või tekstifail, mille Delphi loob vormide kohta teabe salvestamiseks. Igal vormifailil on vastav moodulifail (.pas)
Projekti suvandite fail (.dfo) See fail salvestab projekti parameetrite sätted
Ressursifail (.res) See binaarfail sisaldab projekti kasutatavat ikooni ja muid ressursse.
Varundusfailid (. ~ Dpr, ~ Dfm, ~ Pas) Need on vastavalt projekti, vormi ja moodulifailide varufailid. Kui projektis on midagi lootusetult rikutud, saate nende failide laiendusi vastavalt muuta ja seega naasta eelmisele rikutud versioonile.
Akna konfiguratsioonifail (.dsk) Fail salvestab arenduskeskkonna kõigi akende konfiguratsiooni
Käivitatav fail (.exe) See on rakenduse käivitatav fail. See on iseseisev käivitatav fail, mis ei nõua midagi muud, välja arvatud juhul, kui see kasutab DLL-i, OCX-i jne sisaldavaid teeke.
Mooduli objektifail (.dcu) See on kompileeritud moodulifail (.pas), mis on lingitud lõplikku käivitatavasse faili.

Tabel 3. Disainiprotsessi käigus loodud failid.


Praegu on välja antud Delphi süsteemi 7. versioon. Rekordilise ajaga on sellest saanud üks populaarsemaid programmeerimissüsteeme maailmas. Paljud arendajad üle maailma on kindlalt pühendunud Delphi kasutamisele ülitõhusate kliendi- / serverirakenduste loomise vahendina.

Evolutsioonipuu programmeerimine

Joonis 1 Evolutsioonipuu programmeerimine

6. Bibliograafia:

1. I.T. Zaretskaja, B.G. Kolodyazhny, A.N. Gurzhiy, A.Yu. Sokolov. Informaatika klass 10-11. - К.: "Foorum", 2001

1. Ekraani struktuur Delphi keskkonnas (http://textbook.keldysh.ru/distant/delphi/del_2.htm)

2. Patrikeev Yu. N. "Objektile orienteeritud disain" (http://www.object.newmail.ru/oop1.html)

3. S. Nemnyugin, L. Perkolab "TurboPascali õppimine" - SPb.: Peter, 2002.

2. H.M. Daytel. Kuidas programmeerida S. - M.: "Binom", 2000

3. Interneti -leht: http://ru.wikipedia.org/wiki/LISP

Õpik koosneb kahest osast: teoreetiline ja praktiline. Õpiku teoreetilises osas esitatakse kaasaegse informaatika kui keeruka teadusliku ja tehnilise distsipliini alused, sealhulgas teabe ja teabeprotsesside struktuuri ja üldiste omaduste uurimine, arvutusseadmete ehitamise üldpõhimõtted, kaalutakse teabe korraldamist ja toimimist ja arvutivõrgud, arvutiturve, esitab algoritmide ja programmeerimise, andmebaaside ja DBMS -i põhikontseptsioonid. Saadud teoreetiliste teadmiste kontrollimiseks pakutakse küsimusi eneseanalüüsiks ja testideks. Praktiline osa hõlmab põhitoimingute algoritme, kui töötatakse tekstitöötlusprogrammiga Microsoft Word, arvutustabeli redaktoriga Microsoft Excel, programmiga Microsoft Power Pointi esitluste loomiseks, programmide arhiveerimiseks ja viirusetõrjeprogrammidega. Iga lõigu lõpus läbitud praktilise kursuse konsolideerimiseks tehakse ettepanek teha iseseisvat tööd.

Raamat:

Selle lehe jaotised:

8.2. Programmeerimiskeeled

Programmeerimise tüübid

Arvutitehnoloogia areng on määranud mitmesuguste uute märgisüsteemide tekkimise protsessi algoritmide - programmeerimiskeelte - kirjutamiseks. Sellise keele välimuse tähendus on lisateabe jaoks varustatud arvutusvalemite komplekt, mis muudab selle hulga algoritmiks.

Programmeerimiskeeled on kunstlikult loodud keeled. Need erinevad looduslikest piiratud arvu "sõnade" ja käskude (operaatorite) kirjutamise väga rangete reeglite poolest. Selliste nõuete kogu moodustab programmeerimiskeele süntaksi ning iga käsu ja muude keelekonstruktsioonide tähendus on selle semantika.

Programmeerimiskeeled on ametlikud suhtluskeeled inimese ja arvuti vahel, mis on mõeldud juhiste kogumi kirjeldamiseks, mille rakendamine annab vajaliku probleemi õige lahenduse. Nende peamine roll on infotöötlustegevuse planeerimine. Iga programmeerimiskeel põhineb mõistete süsteemil ja selle abil saab inimene oma mõtteid väljendada.

Seos keele, milles me mõtleme / programmeerime, ning probleemide ja lahenduste vahel, mida me oma kujutluses võime ette kujutada, on väga tihe. Sel põhjusel on keele omaduste piiramine ainult programmeerijate vigade kõrvaldamise eesmärgiga parimal juhul ohtlik. Nagu loomulike keelte puhul, on vähemalt kakskeelsusest tohutu kasu. Keel pakub programmeerijale kontseptuaalsete tööriistade komplekti, kui need ülesandele ei vasta, siis neid lihtsalt ignoreeritakse. Näiteks pointeri kontseptsiooni karmid piirangud sunnivad programmeerijat kasutama vektoreid ja tervet aritmeetikat, et rakendada struktuure, näpunäiteid jms. Hea disaini ja vigadeta disaini ei saa tagada puhtalt keele abil.

See võib tunduda üllatav, kuid konkreetne arvuti on võimeline käivitama oma masinakeeles kirjutatud programme. Erinevaid masinakeeli on peaaegu sama palju kui arvuteid, kuid need kõik on sama idee variandid - lihtsaid toiminguid tehakse välgukiirusel kahendarvudega.

Masinast sõltuvad programmeerimiskeeled

Masinast sõltuvad keeled on keeled, mille operaatorite ja pildivahendite komplektid sõltuvad sisuliselt arvuti omadustest (sisekeel, mälustruktuur jne). Neid keeli nimetatakse madala taseme programmeerimiskeelteks. Nad on keskendunud teatud tüüpi protsessorile ja võtavad arvesse selle iseärasusi. Sellise keele operaatorid on masinakoodi lähedal ja keskenduvad konkreetsetele protsessori juhistele, see tähendab, et see keel sõltub masinast. Madala taseme keel on kokkupanek. Tema abiga luuakse väga tõhusad ja kompaktsed programmid, kuna arendaja saab juurdepääsu protsessori kõikidele võimalustele. Selliseid keeli kasutatakse väikeste süsteemirakenduste, seadme draiverite, raamatukogude kirjutamiseks. Juhul kui RAM -i ja ROM -i maht on väike (mitme kilobaidi ulatuses), pole assemblerile alternatiivi. Just need programmeerimiskeeled võimaldavad teil saada lühima ja kiireima programmi koodi.

Masinast sõltumatud programmeerimiskeeled

Masinast sõltumatud keeled on probleemide lahendamise algoritmide ja töödeldava teabe kirjeldamise vahend. Neid on mugav kasutada paljude kasutajate jaoks ega nõuta neilt arvuti ja arvutisüsteemi toimimise korraldamise eripära tundmist.

Selliseid keeli nimetatakse kõrgetasemelisteks programmeerimiskeelteks. Sellistes keeltes kirjutatud programmid on avaldused, mis on struktureeritud vastavalt keele reeglitele (ülesanded, segmendid, plokid jne). Keeleoperaatorid kirjeldavad toiminguid, mida süsteem peab tegema pärast programmi tõlkimist masinakeelde.

Masinaprogrammides sageli kasutatavad käsujärjed (protseduurid, alamprogrammid) on kõrgetasemelistes keeltes esindatud eraldi avaldustega. Programmeerija sai võimaluse mitte kirjeldada üksikasjalikult arvutusprotsessi masinajuhiste tasemel, vaid keskenduda algoritmi põhijoontele.

Kõrgetasemelised programmeerimiskeeled on inimestele palju lähemal ja arusaadavamad. Nad ei arvesta konkreetsete arvutiarhitektuuride iseärasusi, see tähendab, et need keeled on masinast sõltumatud. See võimaldab kasutada programmi, mis on kord sellises keeles kirjutatud, erinevates arvutites.

Programme on võimalik kirjutada otse masinakeeles, kuigi see on keeruline. Arvutimise koidikul (1950. aastate alguses) oli masinakeel ainus keel, suurem mees polnud selleks ajaks leiutanud. Programmeerijate päästmiseks karmist masina programmeerimiskeelest loodi kõrgetasemelised keeled (st mitte-masinakeeled), millest sai omamoodi ühendussild inimese ja arvuti masinakeele vahel. Kõrgetasemelised keeled töötavad tõlkeprogrammide kaudu, mis süstivad "lähtekoodi" (ingliskeelsete sõnade ja matemaatiliste väljendite hübriid, mida masin loeb) ja sunnivad lõpuks arvutit täitma sobivaid juhiseid, mis on antud masina keeles.

Kõrgetasemelised programmeerimiskeeled hõlmavad järgmist: Fortran, Cobol, Algol, Pascal, Basic, C, C ++, Java, HTML, Perl jt.

Programmeerimiskeele abil ei looda valmis programmi, vaid ainult selle teksti, mis kirjeldab varem välja töötatud algoritmi. Tööprogrammi saamiseks peate selle teksti automaatselt masinakoodiks tõlkima ja seejärel lähtetekstist eraldi kasutama või täitma kohe programmi tekstis määratud keelekäsud. Selleks kasutatakse tõlkijaprogramme.

Tõlkijaid on kahte peamist tüüpi (joonis 8.4): tõlgid, kes skaneerivad ja valideerivad lähtekoodi ühe sammuga, ja kompilaatorid, kes skaneerivad lähtekoodi, et saada masinakeelse programmi tekst, mis seejärel eraldi täidetakse.


Joonis 8.4. Tõlkijate tüübid

Kompilaatorite kasutamisel teisendatakse kogu programmi lähtekood masinakoodideks ja just need koodid kirjutatakse mikroprotsessori mällu. Tõlgi kasutamisel kirjutatakse programmi lähtekood mikroprotsessori mällu ja tõlkimine toimub järgmise operaatori lugemisel. Loomulikult on tõlkide kiirus võrreldes kompilaatoritega palju väiksem, kuna kui operaatorit kasutatakse tsüklis, tõlgitakse seda mitu korda. Kõrgetasemelises programmeerimises võib aga sisemällu salvestatava koodi hulk olla oluliselt väiksem kui käivitataval koodil. Tõlkide kasutamise teine ​​eelis on programmide lihtne teisaldatavus ühest protsessorist teise.

Tõlgi teostuse üks sageli mainitud eelis on see, et see võimaldab otsest režiimi. Vahetu režiim võimaldab teil arvutilt probleemi küsida ja tagastab teile vastuse kohe, kui vajutate sisestusklahvi. Lisaks on tõlkidel spetsiaalsed atribuudid, mis muudavad silumise lihtsamaks. Saate näiteks katkestada tõlkiprogrammi töötlemise, kuvada teatud muutujate sisu, programmi üle vaadata ja seejärel jätkata. Tõlgendatud keeltel on aga puudusi. Näiteks on vajalik, et tõlgi koopia oleks kogu aeg mälus, samas kui paljud tõlgi võimalused ja seega ka tema võimalused ei pruugi olla konkreetse programmi täitmiseks vajalikud. Programmi avalduste täitmisel peab tõlk esmalt iga avalduse sisu läbi lugema (mida see inimene minult palub?) Ja seejärel taotletud toimingu sooritama. Loopides olevaid operaatoreid skannitakse liiga palju.

Koostaja on masinakeele tõlkija, mis loeb lähteteksti. See hindab seda vastavalt keele süntaktilisele konstruktsioonile ja tõlgib selle masinakeelde. Teisisõnu, kompilaator ei täida programme, vaid ehitab neid. Tõlke ei saa nende juhitavatest programmidest eraldada; koostajad teevad oma töö ja lahkuvad sündmuskohalt. Sellise kompileerimiskeelega nagu Turbo BASIC töötades peate oma programmidele mõtlema nende kahe põhietapi osas: koostamisperiood ja käitusperiood. Enamik programme töötab neli kuni kümme korda kiiremini kui nende tõlkide vasted. Kui töötate selle parandamise nimel, saate saavutada jõudluse 100 -kordse paranemise. Mündi teine ​​külg on see, et programmid, mis veedavad suurema osa ajast kettal olevate failidega askeldades või sisendit oodates, ei suuda näidata muljetavaldavat kiiruse kasvu.

Programmi loomise protsessi nimetatakse programmeerimiseks.

Programmeerimist on mitut tüüpi.

Algoritmiline või modulaarne

Algoritmilise programmeerimise põhiidee on jagada programm moodulite jadaks, millest igaüks teeb ühe või mitu toimingut. Mooduli ainus nõue on see, et selle täitmine algab alati esimesest käsklusest ja lõpeb alati viimase käsklusega (see tähendab, et on võimatu väljastpoolt mooduli käsklusteni jõuda ja juhtimist moodulilt teistele käskudele üle kanda, lõplikust mööda minnes).

Valitud programmeerimiskeele algoritm kirjutatakse andmete kirjeldamiseks, väärtuste arvutamiseks ja programmi täitmise jada juhtimiseks kasutatavate käskude abil.

Programmi tekst on ülesannete, silmuste ja tingimuslausete lineaarne jada. Sel viisil saate lahendada mitte väga keerulisi probleeme ja koostada programme, mis sisaldavad mitusada koodirida. Pärast seda langeb algteksti arusaadavus järsult tänu sellele, et algoritmi üldine struktuur on kadunud konkreetsete keeleoperaatorite taha, kes teevad liiga üksikasjalikke elementaarseid toiminguid. Ilmub palju pesastatud tingimus- ja tsükliväiteid, loogika muutub täiesti segaseks, ühe eksliku väite parandamisel tuuakse sisse mitu uut viga, mis on seotud selle avalduse toimimise iseärasustega, mille tulemusi võetakse sageli arvesse erinevates kohad programmis.

Struktureeritud programmeerimine

Keskmise suurusega rakenduste (mitu tuhat rida lähtekoodi) loomisel kasutatakse struktureeritud programmeerimist, mille idee kohaselt peaks programmi ülesehitus peegeldama lahendatava probleemi struktuuri, nii et lahenduse algoritm oleks selgelt nähtav lähtetekstist. Selleks peavad teil olema vahendid programmi loomiseks mitte ainult kolme lihtsa operaatori abil, vaid ka vahendite abil, mis peegeldavad täpsemalt algoritmi konkreetset struktuuri. Selleks on programmeerimisse sisse viidud alamprogrammi mõiste - operaatorite kogum, mis sooritab soovitud toimingu ega sõltu muudest lähtekoodi osadest. Programm on jagatud paljudeks väikesteks alamprogrammideks (kuni 50 avaldust - kriitiline lävi alamprogrammi eesmärgi kiireks mõistmiseks), millest igaüks täidab ühe algsest ülesandest tuleneva toimingu. Neid alamprogramme kombineerides on võimalik moodustada lõplik algoritm mitte lihtsatest operaatoritest, vaid täielikest koodiplokkidest, millel on teatav semantiline koormus, ja võite viidata sellistele plokkidele nime järgi. Selgub, et alamprogrammid on programmeerija määratletud keele uued operaatorid või toimingud.

Alamprogrammide kasutamise oskus klassifitseerib programmeerimiskeele protseduurikeeleks.

Alamprogrammide olemasolu võimaldab teil rakendust ülalt alla kujundada ja arendada - seda lähenemist nimetatakse ülalt alla kujundamiseks. Esiteks eraldatakse mitu alamprogrammi, mis lahendavad kõige globaalsemad ülesanded (näiteks andmete initsialiseerimine, põhiosa ja lõpetamine), seejärel kirjeldatakse kõiki neid mooduleid madalamal tasemel, jagades need omakorda väikeseks arvuks alamprogrammideks. ja see juhtub seni, kuni kogu ülesanne on lõpule viidud.

See lähenemine on mugav selle poolest, et see võimaldab inimesel pidevalt mõelda ainetasandil, peatumata konkreetsete operaatorite ja muutujate juurde. Lisaks on mõnel võimalik mitte alamprogramme kohe rakendada, vaid ajutiselt edasi lükata, kuni muud osad on lõpetatud. Näiteks kui on vaja arvutada keerukas matemaatiline funktsioon, eraldatakse sellise arvutuse jaoks eraldi alamprogramm, kuid selle rakendab ajutiselt üks operaator, kes määrab lihtsalt eelvalitud väärtuse. Kui kogu rakendus on kirjutatud ja silutud, võite hakata seda funktsiooni rakendama.

Samuti on oluline, et väikseid alamprogramme oleks palju lihtsam siluda, mis suurendab oluliselt kogu programmi üldist usaldusväärsust.

Alamprogrammide väga oluline omadus on nende korduvkasutatavus. Suured standardrutiinide teegid on varustatud integreeritud programmeerimissüsteemidega, mis võivad oluliselt suurendada tootlikkust, kasutades kellegi teise tööd sageli kasutatavate rutiinide loomiseks.

Alamprogramme on kahte tüüpi - protseduurid ja funktsioonid. Need erinevad selle poolest, et protseduur lihtsalt täidab lausete rühma ja funktsioon arvutab lisaks teatud väärtuse ja kannab selle tagasi põhiprogrammi (tagastab väärtuse). See väärtus on teatud tüüpi (funktsiooni kohta öeldakse, et see on seda tüüpi).

Alamprogrammid täidavad kolme olulist ülesannet:

Välistada vajadus korrata sarnaseid katkendeid programmi tekstis mitu korda;

Parandage programmi struktuuri, muutes selle arusaadavamaks;

Suurendage vastupanu programmeerimisvigadele ja ettenägematutele tagajärgedele programmi muutmise ajal.

Objektile orienteeritud programmeerimine

1980. aastate keskel tekkis programmeerimises uus suund, mis põhines objekti kontseptsioonil. Kuni selle ajani kehtestasid peamised piirangud suurte süsteemide loomise võimalikkusele andmete ja nende töötlemise meetodite programmis.

Ümbritseva maailma tegelikel objektidel on kolm põhiomadust: neil on omaduste kogum, nad on võimelised neid omadusi erineval viisil muutma ja reageerivad sündmustele, mis toimuvad nii ümbritsevas maailmas kui ka objekti enda sees. Sellel kujul programmeerimiskeeltes rakendatakse objekti kontseptsiooni kui omaduste komplekti (sellele objektile iseloomulikud andmestruktuurid), nende töötlemise meetodeid (alamprogrammid atribuutide muutmiseks) ja sündmusi, millele see objekt saab reageerida ja mis reeglina muudavad objekti omadusi.

Programmides objektide loomise võimaluse tekkimine mõjutab kvalitatiivselt programmeerijate tootlikkust. Kümne programmeerijarühma loomiseks kättesaadavaks saanud rakenduste maksimaalne maht on mitme aastaga kasvanud miljonite koodiridadeni, samal ajal on olnud võimalik saavutada programmi kõrge töökindlus ja, mis kõige tähtsam, varem loodud korduvkasutamine objektid muudes ülesannetes.

Objektidel võib olla sama struktuur ja need võivad erineda ainult omaduste väärtuste poolest. Sellistel juhtudel luuakse programmis uus tüüp, mis põhineb ühe objekti struktuuril. Seda nimetatakse klassiks ja iga konkreetset objekti, millel on selle klassi struktuur, nimetatakse klassi eksemplariks.

Objektile orienteeritud programmeerimiskeelt iseloomustavad kolm peamist omadust:

1. kapseldamine - andmete kombineerimine meetoditega ühes klassis;

Programmeerimiskeelte põlvkonnad

Programmeerimisvajadus tekkis juba enne programmeeritavaid arvuteid. On teada, et näiteks alates 18. sajandist on puidust laudadega programmeeritud kangasteljed, millesse tehti augud õigetesse kohtadesse.

Programmeerimise arengut soodustas 1945. aastal avaldatud John Von Neumanni idee, milles ta kirjeldas arvutit, kus programm ise salvestatakse koos andmetega mällu.

Esimese põlvkonna programmeerimiskeel on masinakood. Masinakood koosneb juhistest, mida arvuti (protsessor) saab täita (samuti nendesse juhistesse kuuluvatest andmetest). Masinakoodis programmeerimisel pidi programmeerija kirjutama oma programmi binaarkoodina, et protsessor saaks sellest aru ja täidaks. Sisuliselt nõuab selline programmeerimine riistvara häid teadmisi ja arusaamist, sest programmeerimise käigus on vaja teada, mida protsessor suudab teha, kus sisend-väljundseadmed asuvad ja ka nendega suhelda. Ja kui palju aega sellele või teisele operatsioonile kulub. Seega on masinakood väga tihedalt seotud riistvaraga, millel vastav programm töötab. Tänaseks pole masinakood arvutitest kadunud, kõik toimingud madalal tasemel (riistvaratasandil) toimuvad endiselt masinkoodis, s.t. Ükskõik, millises programmeerimiskeeles programm on kirjutatud, muudetakse see lõpuks masinakoodiks, millest riistvara aru saab.

Assamblee keeli peetakse teise põlvkonna keelteks. Masinkoodi puhul toimus kogu programmeerimine kahendkoodina ning sellisena oli selle lugemine ja silumine väga aeganõudev. Montaažikeeles programmeerimisel esitatakse juhised inimesele arusaadaval kujul. Programmeerimine ise on väga sarnane masinakoodi programmeerimisega, sest juhised on samad mis masinakoodis (ainult erineval kujul - sõnade kujul). Assamblee keeles kirjutatud programm on umbes järgmine:

MOV AL, 19

LISA AL, 4

VÄLJAS 2

See kooditükk määrab AL -registri väärtuse 19 (tavaliselt esitatakse väärtused kuueteistkümnendsüsteemis numbritega), lisab AL -registri väärtusele numbri 4 ja saadab seejärel numbri 2 väljundile 2. Kirjutatud programm tõlgitakse assemblerist masinakoodiks ja pärast seda saab protsessor käivitada ...

Koostamiskeeli ja masinakoodi peetakse madala tasemega keelteks.

Kolmanda põlvkonna programmeerimiskeeli nimetatakse juba kõrgetasemelisteks keelteks. Sellised programmeerimiskeeled pole riistvaraga väga seotud. See tähendab, et programmeerija ei pea enam väga täpselt teadma riistvara ülesehitust ja funktsioone, vaid võib olla riistvarast suhteliselt sõltumatu, misjärel see programm teisendatakse mõne erineva tööriista abil riistvarast arusaadavaks vormiks . Täpsemalt, kuidas seda tehakse, kirjeldatakse hiljem.

Enamik tuntud ja kasutatud programmeerimiskeeli kuulub kolmanda põlvkonna keelte hulka, näiteks:

FORTRAN (IBM Mathematical FORmula TRANslating System) on programmeerimiskeel, mis töötati välja 1950ndatel matemaatilise arvutamise ja teaduslikel eesmärkidel.

COBOL (COmmon Business Oriented Language) - objektorienteeritud programmeerimiskeel, loodud 1959. aastal peamiselt ärivajadusi rahuldavate programmide kirjutamiseks.

BASIC (Beginner's All -purpose Symbolic Instruction Code) - 1963. aastal välja töötatud keel, mis loodi algselt selleks, et insenerid saaksid arvutis erinevaid simulatsioone sooritada.

Pascal - 1970ndatel loodud programmeerimiskeel, mis loodi programmeerimise õpetamiseks.

C - nimi tuleneb asjaolust, et see keel põhines peamiselt keelel B. See loodi operatsioonisüsteemide kirjutamiseks (paljud UNIX -iga ühilduvad operatsioonisüsteemid on kirjutatud selles keeles), on pikka aega olnud üks populaarsemaid programmeerimiskeeli .

C ++ on objektorienteeritud C.

Java on programmeerimiskeel, mis on välja töötatud C ++ põhjal.

Visual Basic, Delphi, Python, C # on kõik kolmanda põlvkonna keeled. Paljud kolmanda põlvkonna programmeerimiskeeled on nooremad (uuemad) kui mõned neljanda ja viienda põlvkonna keeled.

4. põlvkonna programmeerimiskeeled on loodud selleks, et neid oleks lihtne õppida ja kasutada. Need keeled kipuvad olema ühe menetluse jaoks mitteprotseduurilised. Neljanda põlvkonna programmeerimiskeele näiteks on SQL (Structured Query Language). See ütleb rohkem "mida teha" ja vähem "kuidas seda teha". Tehisintellekti süsteemide arendamiseks ja selle teemaga seotud probleemide lahendamiseks on loodud viienda põlvkonna keeli.

Programmeerimiskeelte põhitüübid.

Erinevalt põlvkondadest programmeerimiskeeltest kirjeldavad baastüübid seda, kuidas keelt saab programmeerida. Peamiste põhitüüpide hulka kuuluvad: protseduurilised, funktsionaalsed ja objektorienteeritud programmeerimiskeeled.

Protseduurilistes programmeerimiskeeltes kirjeldab programmeerimiskeel toiminguid ja nende täitmise järjekorda, samuti on need toimingud jaotatud rühmadesse (alamprogrammid). Protseduurid moodustavad omakorda koodistruktuurid, mida saab uuesti kasutada. Funktsionaalsetes programmeerimiskeeltes kirjeldatakse kogu lahendust funktsioonide abil. Objektorienteeritud programmeerimiskeeltes lahendatakse probleem klassides (inglise keele klass) kirjeldatud funktsioonide ja andmestruktuuride abil. Igast klassist saate luua objekti, millel on omaduste ja / või meetodite komplekt.

Atribuudid on väärtused, mida objekt võib sisaldada ja mis võivad mõjutada objekti käitumist. Näiteks saate klassi "konsoolaken" põhjal luua objekti "konsool1", mis on kasutajale nähtav ühe konsoolakna kujul. Sellel objektil on mõned omadused (näidatud, peidetud, laius, kõrgus, teksti värv konsoolaknas, taustavärv jne), neid omadusi muutes saate muuta antud juhul objekti välimust.

Samas näites võib objektil olla mõningaid meetodeid, näiteks vastavale meetodile viidates saate kirjutada mõne teksti konsoolaknasse, lugeda kasutaja sisestatud teksti mõnda muutujale jne.

Teine näide on klass "tekstimuutuja", luues selle klassi põhjal objekti "ProstoText", luues ühe tekstimuutuja, mille peamine omadus on salvestatud tekstiväärtus, kuid tegelikult on sellel objektil rohkem omadusi ( näiteks salvestatud tekstiväärtuse pikkus). Samuti peab tekstimuutujal olema teatud meetodite komplekt (muutke salvestatud väärtuse tähemärke väikesteks, suurtähtedeks, kustutage mõned märgid jne).

Seetõttu on klasside kirjeldamise ja objektidega manipuleerimise abil võimalik koostada väga keerukaid programme ja sooritada erinevaid toiminguid.

Tõlgendatud ja koostatud keeled

Enne kui arvuti suudab käivitada kõrgetasemelises keeles kirjutatud programmi, tuleb see "tõlkida" arvutisse arusaadavasse keelde, st. masina kood. Seda tõlkimisprotsessi nimetatakse tõlkimiseks ja tõlkija tarkvara tõlkijaks. Tõlkijad on jagatud kahte klassi: koostajad ja tõlgid.

Kompileerimine on siis, kui masinakoodis olev programm (mida nimetatakse kompilaatoriks) teisendab teise programmeerimiskeeles kirjutatud programmi masinkoodiks. Pärast seda käivitatakse programmi tulemuseks olev masinakood. Kompileeritud keelte näideteks on C, Fortran, Pascal.

Tõlgendus seisneb selles, et masinakoodis olev programm (interpretaator) kirjutab programmifaili sisemällu ja hakkab seda rida -realt täitma. Näitena võib tuua vana BASIC -keele.

Programmi tõlgendamine on umbes 10-200 korda aeglasem kui kompileeritud koodi täitmine. Seevastu tõlgendatud programmi silumine (vigade eemaldamine programmist) on tavaliselt lihtsam kui tõlgitud programmi puhul. Mõnel sobival juhul ja tööriistade olemasolul võivad need erinevused olla palju väiksemad. Hea näide on Java, mille kood on optimeeritud ja kompileeritud keskmisel tasemel, mille Just-in-Time kompilaator tõlgib käitusajal vastavalt konkreetsele riistvarale.

Põhimõtteliselt saab mis tahes keeles kirjutatud programmi tõlgendada ja kompileerida.

Praegu on programmeerimisel palju suundi. Igaüks võib endale midagi meelepärast leida, kuid selleks peate teadma, mida täpselt oma valdkonnas tegema hakkate.

Veebirakenduste arendamine

See suund on suunatud veebirakenduste (teisisõnu saitide, kuid praegu on saidid nii rikkaliku funktsionaalsusega, et neid võib nimetada täieõiguslikeks rakendusteks) arendamisele.

Veebiprogrammeerimise võib jagada taustaks (serveripoolsete skriptide kirjutamine - PHP, Python, Ruby) ja frontendiks (kasutajaliidese arendamine - Javascript, HTML, CSS).

Töölauarakenduste arendamine

Tarkvaraarendus erinevatele operatsioonisüsteemidele. Kogu tarkvara, mida me igapäevaelus kasutame. Kui soovite kirjutada oma fotoprotsessori, helipleieri või tekstiredaktori, on see koht teie jaoks.

Serveri rakenduste arendamine

Need on mitmesugused mänguserverid (teie lemmik Dotka, CS: GO), kiirsuhtlusteenused (Skype'i serveripool, ICQ, MSN), pangaandmebaasid.

Mobiilirakenduste arendamine

Palju Java -rakendusi. VK, Viber, Yandex.Maps, tõlkijad, e-lugerid.

Sisseehitatud programmeerimine

Huvitav programmeerimisharu erinevatele kodumasinatele: tolmuimejad, külmikud, pesumasinad, mängijad, navigaatorid, elektroonilised kaalud. See hõlmab teaduslikku arengut, kasutades spetsiaalseid keeli, näiteks MATLAB.

Süsteemi programmeerimine

Riistvara jaoks erinevate draiverite kirjutamine, operatsioonisüsteemide "tuuma" programmeerimine. Muide, siia kuulub ka programmeerimiskeelte jaoks kompilaatorite ja tõlkide loomine.

Mängu arendamine

Hiiglaslik tööstus. See hõlmab mängude arendamist arvutitele, konsoolidele ja mobiilseadmetele.

Olümpiaadi programmeerimine ja probleemide lahendamine

Programmeerimine erinevates "ebapraktilistes" ja mitte tavalistes keeltes (Pascal, Delphi), et lahendada mõned originaalsed probleemid, mis nõuavad mittestandardset lähenemist, leidlikkust ja IQ-d üle 160.

Raamatupidamis- ja finantstoodete programmeerimine

"1C: ettevõte". Kogu raamatupidamine Venemaal on selle tootega seotud. Kuid ainult keele enda tundmisest ei piisa, oluline on aru saada raamatupidamise põhitõdedest. Pluss on see, et tööd on palju ja sa ei jää leivata.

Andmebaasi programmeerimine

Tõsine suund. Kui soovite arendada andmebaase, mis suudavad salvestada miljardeid ridu teavet kõigi VKontakte või Facebooki kasutajate kohta ja samal ajal mitte aeglustada - olete siin.

Teadus

Teadus ja see ütleb kõik. Närvivõrgud, DNA struktuuri modelleerimine, satelliitide käivitamine, Suure Paugu simulatsioon.

Muide, hiljuti avaldas NASA veebisait uudised programmeerija otsimise kohta "iidses" Fortrani keeles, mis on üle 60 aasta vana. Programmeerijalt nõuti programmide väljatöötamist, et juhtida automaatandureid Voyager 1 ja Voyager 2, mille tarkvara oli juba 1970ndatel kirjutatud Assembleris, Fortranis ja COBOLis. Kunagi ei tea, millised teadmised võivad kasuks tulla.