Ce tipuri de programatori există. Tipuri de limbaje de programare

Programare procedurală (imperativă) este o reflectare a arhitecturii computerelor tradiționale. Un program într-un limbaj de programare procedural constă dintr-o secvență de operatori (instrucțiuni) care specifică procedura de rezolvare a unei probleme. Principalul este operatorul de atribuire, care servește la schimbarea conținutului zonelor de memorie. Conceptul de memorie ca un depozit de valori, al cărui conținut poate fi actualizat prin declarații de program, este fundamental în programarea imperativă. Un limbaj de programare procedural permite programatorului să definească fiecare pas în procesul de rezolvare a unei probleme. Particularitatea acestor limbaje de programare este că sarcinile sunt împărțite în pași și rezolvate pas cu pas. Programarea imperativă este cea mai potrivită pentru sub-sarcini mici, unde viteza de execuție pe computerele moderne este foarte importantă.

Limbajele de programare procedurală includ: Ada, Basic (versiuni de la Quick Basic la Visual Basic), C, COBOL, Fortran, Modula- 2, Pascal, PL / 1, Rapier, REXX.

Programare structurată- metodologia de dezvoltare software, care se bazează pe prezentarea programului sub forma unei structuri ierarhice de blocuri construite din trei tipuri de structuri de bază: execuție secvențială, ramificare și buclă.

Programare orientată pe obiecte este o metodologie de programare care se bazează pe reprezentarea unui program ca o colecție de obiecte, fiecare dintre acestea fiind o implementare a unei anumite clase (tip de date de un tip special), iar clasele formează o ierarhie bazată pe principiile moștenirii.

Obiectele înseamnă unirea datelor și procedurilor care le prelucrează într-un singur întreg. Obiectele pot schimba mesaje între ele. Când obiectul primește un mesaj, se lansează gestionarul corespunzător, altfel numit metodă... Obiectul are un container asociativ care vă permite să primiți, prin mesaj, metoda sa de procesare a acestuia. În plus, obiectul are un obiect strămoș. Dacă nu se găsește nicio metodă de gestionare a mesajului, mesajul va fi redirecționat către obiectul părinte. Această structură în ansamblu (tabel de manipulatori + strămoși), din motive de eficiență, este alocată într-un obiect separat numit clasă a acestui obiect. Obiectul în sine va avea o referință la obiectul care reprezintă clasa sa. Obiectele interacționează exclusiv prin trimiterea de mesaje reciproc.

Este important să evidențiați următoarele trei proprietăți principale ale obiectelor.

Incapsulare (protecția datelor)- un mecanism care integrează date și metode care manipulează aceste date și le protejează pe ambele de interferențe exterioare.


Moştenire este procesul prin care un obiect poate moșteni proprietățile unui alt obiect și să le adauge trăsături unice. Relația copil-strămoș pe clase se numește moștenire.

Polimorfism este o proprietate care face posibilă înlocuirea unui obiect cu un alt obiect cu o structură de clasă similară. Prin urmare, dacă în orice scenariu de interacțiune cu obiectul înlocuiți un obiect arbitrar cu altul care poate procesa aceleași mesaje, scenariul va fi de asemenea implementat.

Programare declarativă... Accentul în programarea declarativă este pe ce să facem, nu cum să o facem (în limbaje imperative). Principalul lucru aici este formularea exactă a problemei, iar alegerea și aplicarea algoritmului necesar pentru soluționarea acesteia este problema sistemului de executare, dar nu și a programatorului. De exemplu, paginile web HTML sunt declarative prin faptul că descriu ce ar trebui să conțină pagina, nu modul în care pagina este afișată pe ecran. Această abordare diferă de limbajele de programare imperative, care necesită programatorului să specifice un algoritm pentru execuție.

Există două ramuri ale programării declarative: funcțională, bazată pe conceptul matematic al unei funcții care nu își schimbă mediul, spre deosebire de funcțiile din limbaje procedurale care permit efecte secundare și logice, în care programele sunt exprimate ca formule ale logica matematică și un computer pentru rezolvarea problemei.încearcă să deducă consecințe logice din acestea.

Programare logică bazată pe logica matematică. Dar cel mai faimos limbaj de programare logică este Prolog. Programul PROLOGUE conține două componente: fapte și reguli. Faptele reprezintă datele cu care funcționează programul, iar totalitatea faptelor constituie baza de date PROLOGUE, care este, de fapt, o bază de date relațională. Operația principală efectuată pe date este o operație de potrivire, numită și operație de unificare sau reconciliere.

Ca și în alte limbaje declarative, atunci când lucrează cu acesta, programatorul descrie situația (reguli și fapte) și formulează obiectivul (interogare), permițând interpretului PROLOGUE să găsească o soluție la această problemă. Interpretul PROLOGUE este înțeles ca un mecanism pentru rezolvarea unei probleme folosind limbajul PROLOG. Un program PROLOG este un set de fapte și (posibil) reguli. Dacă un program conține doar fapte, atunci acesta se numește bază de date. Dacă conține și reguli, atunci termenul bază de cunoștințe este adesea folosit.

Spre deosebire de programele scrise în limbaje procedurale, care prescriu secvența de pași pe care trebuie să o efectueze un computer pentru a rezolva o problemă, în PROLOG programatorul descrie fapte, reguli, relații între ele și, de asemenea, solicită problema. Cea mai tipică aplicație a PROLOGUL este sistemul expert.

Întrebări de auto-testare

1. Ce este un program? Ce se înțelege prin interpret?

2. Ce este codul mașinii?

3. Ce este un traducător? Enumerați tipurile de traducători.

4. Cum funcționează interpretul? Care sunt avantajele sale?

5. Care este avantajul compilatoarelor?

6. Ce componente sunt incluse în sistemul de programare integrat?

7. Ce se înțelege prin structură de date, care este clasificarea unei structuri de date?

8. Ce se înțelege prin matrice de date și ce operațiuni pot fi efectuate cu acestea?

9. Care sunt algoritmii pentru sortarea matricilor?

10. Care este scopul subrutinelor?

11. Pentru ce este o bibliotecă de rutine?

12. Ce tipuri de programare există?

Literatură

1. Stavrovsky A.B., Karnaukh T.A. Primii pași către programare. Ghid de auto-studiu. - M.: Williams, 2006 .-- 400 p.

2. Okulov S. Fundamentele programării Editor: Binom. Laborator de cunoștințe, 2008. - 383 p.

3. Kantsedal S.А. Bazele algoritmizării și programării. - M.: Forum, 2008. - 351 p.

4.httn // www myfreesoft ru / default-windows-nroprams html - programe Windows standard

5.httn // khni-iin mink kharkiv edu / lihrary / datastr / hook / nrt01 html # lb11 - modele și structuri de date

6.httn: //www.intuit.ru/denartment/se/nhmsu/11/3.html#sect5 - modele și structuri de date

7.http: //inf.1sentemher.ru/2007/15/00.htm - enciclopedia unui profesor de informatică

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

9.httn // inroc ru / narallel-nroPramminP / lection-5 / - sortare heap.

Limbaj de programare- un sistem formal de semne conceput pentru a descrie algoritmi într-o formă convenabilă pentru interpret (de exemplu, un computer). Un limbaj de programare definește un set de reguli lexicale, sintactice și semantice utilizate la compunerea unui program de calculator. Permite programatorului să stabilească exact la ce evenimente va reacționa computerul, cum vor fi stocate și transmise datele și, de asemenea, ce acțiuni ar trebui să fie efectuate asupra acestora în diferite circumstanțe.

De la crearea primelor mașini programabile, omenirea a inventat deja mai mult de două mii și jumătate de limbaje de programare. În fiecare an, numărul lor este completat cu altele noi. Unele limbi sunt cunoscute doar de un număr mic de dezvoltatori proprii, altele devin cunoscute de milioane de oameni. Programatorii profesioniști folosesc uneori mai mult de o duzină de limbaje de programare diferite în munca lor.

Creatorii de limbi interpretează conceptul în mod diferit limbaj de programare... Printre locurile comune recunoscute de majoritatea dezvoltatorilor se numără următoarele:

· Funcţie: un limbaj de programare este destinat scrierii de programe de calculator care sunt utilizate pentru a transmite instrucțiuni către un computer pentru efectuarea unui anumit proces de calcul și organizarea controlului dispozitivelor individuale.

· Sarcină: un limbaj de programare diferă de limbajele naturale prin faptul că este conceput pentru a transmite comenzi și date de la o persoană la un computer, în timp ce limbajele naturale sunt utilizate numai pentru ca oamenii să comunice între ei. În principiu, este posibilă generalizarea definiției „limbajelor de programare” - este un mod de a transmite comenzi, ordine, un ghid clar de acțiune; în timp ce limbile umane servesc și la schimbul de informații.

· Execuţie: un limbaj de programare poate utiliza construcții speciale pentru a defini și manipula structurile de date și pentru a controla procesul de calcul.

3. Etape de rezolvare a problemei pe computer.

Cea mai eficientă aplicare a VT a fost găsită în calculele care necesită multă muncă în cercetările științifice și în calculele inginerești. La rezolvarea unei probleme pe un computer, rolul principal aparține în continuare unei persoane. Mașina își îndeplinește sarcinile numai în conformitate cu programul dezvoltat. rolul omului și al mașinii este ușor de înțeles dacă procesul de rezolvare a unei probleme este împărțit în etapele enumerate mai jos.

Formularea problemei. Această etapă constă în formularea semnificativă (fizică) a problemei și determinarea soluțiilor finale.

Construirea unui model matematic. Modelul trebuie să descrie corect (în mod adecvat) legile de bază ale procesului fizic. Construirea sau selecția unui model matematic dintre cele existente necesită o înțelegere profundă a problemei și cunoașterea secțiunilor relevante ale matematicii.

Dezvoltarea Cupei Mondiale. Deoarece un computer poate efectua doar cele mai simple operații, acesta „nu înțelege” afirmația problemei, chiar și într-o formulare matematică. Pentru a o rezolva, trebuie găsită o metodă numerică care să permită reducerea problemei la un algoritm de calcul. În fiecare caz specific, este necesar să alegeți o soluție adecvată dintre cele standard deja dezvoltate.

Dezvoltarea algoritmului. Procesul de rezolvare a unei probleme (proces de calcul) este scris sub forma unei secvențe de operații aritmetice și logice elementare care duc la rezultatul final și se numește algoritmul pentru rezolvarea problemei.

Programare. Algoritmul pentru rezolvarea problemei este scris într-un limbaj ușor de înțeles de mașină sub forma unei secvențe de operații definite cu precizie - un program. Procesul este de obicei efectuat folosind un limbaj intermediar, iar traducerea acestuia este efectuată de mașină în sine și de sistemul său.

Depanarea programului. Programul compilat conține tot felul de erori, inexactități și tipăriri greșite. Depanarea include erori de control al programului, diagnosticare (căutare și determinarea conținutului) și eliminarea acestora. Programul este testat prin rezolvarea problemelor de control (test) pentru a obține încredere în fiabilitatea rezultatelor.

Calcule.În această etapă, datele inițiale pentru calcule sunt pregătite și calculul se efectuează conform programului de depanare. în același timp, pentru a reduce forța de muncă manuală pentru procesarea rezultatelor, formele convenabile de emitere a rezultatelor pot fi utilizate pe scară largă sub formă de text și informații grafice într-o formă ușor de înțeles pentru o persoană.

Analiza rezultatelor. Rezultatele calculului sunt analizate cu atenție, se întocmește documentația științifică și tehnică.

4. Pentru ce sunt limbajele de programare?

Procesul de lucru al unui computer constă în executarea unui program, adică un set de comenzi bine definite într-o ordine bine definită. Forma de mașină a instrucțiunii, constând din zerouri și unele, indică ce acțiune ar trebui să fie efectuată de procesorul central. Aceasta înseamnă că, pentru a spune computerului o succesiune de acțiuni pe care trebuie să le efectueze, trebuie să specificați o secvență de coduri binare ale comenzilor corespunzătoare. Programele de cod pentru mașini constau în mii de instrucțiuni. Scrierea unor astfel de programe este dificilă și plictisitoare. Programatorul trebuie să-și amintească combinația de zerouri și unele din codul binar al fiecărui program, precum și codurile binare ale adreselor de date utilizate la executarea acestuia. Este mult mai ușor să scrieți un program într-un anumit limbaj mai aproape de limbajul uman natural și să încredințați computerului opera de traducere a acestui program în coduri de mașină. Acesta este modul în care limbajele s-au dezvoltat special pentru a scrie programe - limbaje de programare.

Există multe limbaje de programare disponibile. De fapt, oricare dintre ele poate fi folosită pentru a rezolva majoritatea problemelor. Programatorii cu experiență știu ce limbaj este cel mai bine să utilizeze pentru rezolvarea fiecărei probleme specifice, deoarece fiecare dintre limbaje are propriile capacități, orientarea către anumite tipuri de probleme, propriul mod de a descrie concepte și obiecte utilizate în rezolvarea problemelor.

Toate limbajele de programare pot fi împărțite în două grupuri: limbaje de nivel scăzutși limbi de nivel înalt.

Limbile de nivel inferior includ limbile de asamblare (de la engleză la asamblare - a colecta, a asambla). Limbajul asamblării folosește notația simbolică pentru comenzi ușor de înțeles și de reținut rapid. În locul unei secvențe de coduri binare de comenzi, sunt scrise denumirile lor simbolice, iar în locul adreselor de date binare utilizate la executarea comenzii, numele simbolice ale acestor date selectate de programator. Limbajul de asamblare este uneori denumit mnemocod sau autocod.

Majoritatea programatorilor folosesc limbaje de nivel înalt pentru a-și scrie programele. La fel ca un limbaj uman obișnuit, un astfel de limbaj are propriul alfabet - un set de simboluri utilizate în limbă. Așa-numitele cuvinte cheie lingvistice sunt compuse din aceste simboluri. Fiecare dintre cuvintele cheie își îndeplinește funcția, la fel ca în limba cu care suntem obișnuiți în limba noastră, cuvintele compuse din literele alfabetului unei limbi date pot îndeplini funcțiile diferitelor părți ale vorbirii. Cuvintele cheie sunt legate între ele în propoziții în conformitate cu anumite reguli sintactice ale limbajului. Fiecare propoziție definește o anumită succesiune de acțiuni care trebuie efectuate de computer.

Limbajul la nivel înalt joacă rolul de intermediar între o persoană și un computer, permițând unei persoane să comunice cu un computer într-un mod mai familiar pentru o persoană. Adesea acest limbaj vă ajută să alegeți metoda potrivită pentru rezolvarea unei probleme.

Înainte de a scrie un program într-un limbaj de nivel înalt, programatorul trebuie să compună algoritm rezolvarea problemei, adică un plan de acțiune pas cu pas care trebuie finalizat pentru a rezolva această problemă. Prin urmare, limbajele care necesită compilarea preliminară a unui algoritm sunt adesea numite limbaje algoritmice.

5. Ce limbaje de programare există

1.1 Fortran

Limbajele de programare au început să apară încă de la mijlocul anilor '50. Una dintre primele limbi de acest tip a fost limba FORTRAN (FORTRAN din FORmulaTRANslator - traducătorul formulelor), dezvoltată în 1957. Fortran este folosit pentru a descrie algoritmul pentru rezolvarea problemelor științifice și tehnice folosind un computer digital. La fel ca primele computere, acest limbaj a fost destinat în principal pentru efectuarea de calcule natural-științifice și matematice. Într-o formă îmbunătățită, acest limbaj a supraviețuit până în prezent. Printre limbajele moderne la nivel înalt, este una dintre cele mai utilizate în cercetarea științifică. Cele mai frecvente variante sunt Fortran-II, Fortran-IV, EASIC Fortran și generalizările acestora.

1.2 ALGOL

După Fortran în 1958-1960, a apărut limbajul Algol (Algol-58, Algol-60) (engleză ALGOL din ALGOrithmicLanguage - limbaj algoritmic). Algol a fost îmbunătățit în 1964-1968 - Algol-68. ALGOL a fost dezvoltat de un comitet care a inclus oameni de știință europeni și americani. Aparține limbajelor de nivel înalt și vă permite să traduceți cu ușurință formule algebrice în comenzi de program. Algol era popular în Europa, inclusiv în URSS, în timp ce Fortran comparabil era comun în Statele Unite și Canada. Algol a avut o influență vizibilă asupra tuturor limbajelor de programare dezvoltate ulterior și, în special, asupra limbajului Pascal. Acest limbaj, ca și Fortran, a fost destinat să rezolve probleme științifice și tehnice. În plus, acest limbaj a fost folosit ca mijloc de predare a elementelor de bază ale programării - arta programării.

De obicei, conceptul de Algol înseamnă limbaj ALGOL-60, in timp ce ALGOL-68 considerat ca un limbaj independent. Chiar și atunci când limbajul Algol aproape că a încetat să mai fie folosit pentru programare, a rămas în continuare limba oficială pentru publicarea algoritmilor.

1.3 Cobol

În 1959 - 1960 a fost dezvoltat limbajul Cobol (COBOL din COmmom Business Oriented Language). Este un limbaj de programare de a treia generație conceput în primul rând pentru dezvoltarea aplicațiilor de afaceri. De asemenea, Kobol a fost destinat rezolvării problemelor economice, prelucrării datelor pentru bănci, companii de asigurări și alte instituții de acest fel. Grace Hopper ( Bunicuţă Kobola).

Cobol este de obicei criticat pentru verbozitatea și greutățile sale, deoarece unul dintre scopurile creatorilor limbii a fost de a aduce construcții cât mai aproape de limba engleză. (Până acum, Cobol este considerat limbajul de programare în care au fost scrise cele mai multe linii de cod). În același timp, Cobol avea instrumente excelente pentru lucrul cu structuri de date și fișiere pentru timpul său, ceea ce asigura o viață lungă în aplicațiile de afaceri, cel puțin în Statele Unite.

1.4 Lisp

Aproape simultan cu Cobol (1959 - 1960), limbajul Lisp (LISP din LIStProcessing) a fost creat la Institutul de Tehnologie din Massachusetts. Lisp se bazează pe reprezentarea unui program printr-un sistem de liste liniare de caractere, care, în plus, sunt structura principală de date a limbajului. Lisp este considerat al doilea vechi limbaj de programare la nivel înalt după Fortran. Acest limbaj este utilizat pe scară largă pentru procesarea informațiilor simbolice și este utilizat pentru a crea software care imită activitatea creierului uman.

Orice program Lisp este format din secvență expresii(forme). Rezultatul programului este de a evalua aceste expresii. Toate expresiile sunt scrise ca liste- una dintre structurile de bază ale Lisp, astfel încât să poată fi create cu ușurință folosind limbajul în sine. Acest lucru vă permite să creați programe care modifică alte programe sau macrocomenzi, permițându-vă să extindeți semnificativ capacitățile limbii.

Principala semnificație a programului Lisp „viața” în spațiul simbolic: mișcare, creativitate, memorare, crearea de lumi noi etc. Lisp ca o metaforă a creierului, un simbol, o metaforă a semnalului: „Cum se transformă analiza biologică a semnalelor de către creier, ca factor extern - influență fizică și chimică, care este un iritant pentru organism, într-un semnal semnificativ biologic, adesea vitală, determinând tot comportamentul unei persoane sau al unui animal; și modul în care există o diviziune a diferitelor semnale în pozitive, negative și indiferente, indiferente. Semnalul este deja un concept integrator. Este un semn de identificare al unui grup, stimuli complexi , interconectat de o istorie comună și de relații cauzale. În acest complex, sistemul de stimuli, stimulul semnalului în sine este, de asemenea, un element constitutiv și, în alte circumstanțe, rolul său poate aparține unui alt stimul din complex. Semnalul concentrează toate experiența trecută a unui animal sau a unei persoane.

1.5 DE BAZĂ

La mijlocul anilor '60 (1963), limbajul BASIC a fost creat la Dartmouth College (SUA) (limba engleză BASIC din Beginner's Allpurpose Instruction Code - un cod simbolic universal pentru instrucțiuni pentru începători). În timp, pe măsură ce au început să apară alte dialecte, acest dialect „original” a devenit cunoscut sub numele de Dartmouth BASIC. Limbajul s-a bazat parțial pe Fortran II și parțial pe Algol-60, cu adăugiri care îl fac convenabil pentru partajarea timpului și, mai târziu, procesarea textului și aritmetica matricei. BASIC a fost inițial implementat pe mainframe-ul GE-265 cu suport pentru mai multe terminale. Contrar credinței populare, la momentul înființării sale, era un limbaj compilat.

BASIC a fost conceput astfel încât elevii să poată scrie programe folosind terminale de partajare a timpului. A fost creat ca o soluție la complexitatea limbilor mai vechi. A fost destinat utilizatorilor mai „simpli”, nu atât de interesați de viteza programelor, ci pur și simplu de capacitatea de a folosi un computer pentru a le rezolva problemele. Datorită simplității limbajului BASIC, mulți programatori începători își încep drumul în programarea cu acesta.

1.6 Fort

La sfârșitul anilor 60 - începutul anilor 70, a apărut limba Fort (engleza FOURTH - a patra). Acest limbaj a început să fie folosit în problemele de control al diferitelor sisteme după ce autorul său Charles Moore a scris un program conceput pentru a controla radiotelescopul Observatorului din Arizona.

O serie de proprietăți, și anume interactivitatea, flexibilitatea și ușurința dezvoltării, fac din Forth un limbaj foarte atractiv și eficient în cercetarea aplicată și dezvoltarea instrumentelor. Domeniile evidente de utilizare pentru acest limbaj sunt sistemele de control încorporate. De asemenea, găsește aplicația în programarea calculatoarelor care rulează diferite sisteme de operare.

1.7 Pascal

Limbajul Pascal, care a apărut în 1972, a fost numit după marele matematician francez din secolul al XVII-lea, inventatorul primei mașini aritmetice din lume, Blaise Pascal. Acest limbaj a fost creat de informaticianul elvețian Niklaus Wirth ca limbaj pentru predarea metodelor de programare. Pascal este un limbaj de programare de uz general.

Particularitățile limbajului sunt tastarea strictă și disponibilitatea instrumentelor de programare structurale (procedurale). Pascal a fost unul dintre primele astfel de limbi. Potrivit lui N. Wirth, limbajul ar trebui să contribuie la disciplina programării, prin urmare, alături de tastarea puternică, Pascal reduce la minimum posibilele ambiguități sintactice, iar sintaxa însăși este intuitiv clară chiar și la prima cunoaștere a limbajului.

Limbajul Pascal ne învață nu numai cum să scrieți corect un program, ci și cum să dezvoltați corect o metodă de rezolvare a unei probleme, să alegeți modalități de prezentare și organizare a datelor utilizate într-o problemă. Din 1983, limba Pascal a fost introdusă în programa de informatică a școlilor secundare din SUA.

1.8 Iadul

În 1983, limba Ada a fost creată sub auspiciile Departamentului Apărării al SUA. Limbajul este remarcabil prin faptul că o mulțime de erori pot fi detectate în etapa de compilare. În plus, suportă multe aspecte ale programării care sunt adesea lăsate la mila sistemului de operare (concurență, gestionarea excepțiilor). În 1995, a fost adoptat standardul lingvistic Ada 95, care se bazează pe versiunea anterioară, adăugându-i orientare obiect și corectând unele inexactități. Ambele limbi nu sunt utilizate pe scară largă în afara proiectelor militare și a altor proiecte la scară largă (aviație, transport feroviar). Motivul principal este dificultatea învățării limbii și o sintaxă destul de greoaie.

Predecesorii imediați ai Ada sunt Pascal și derivații săi, inclusiv Euclid, Lis, Mesa, Modula și Sue. Au fost utilizate mai multe concepte din ALGOL-68, Simula, CLU și Alphard.

Principala preocupare a dezvoltatorilor Ada a fost:

· Fiabilitatea și performanța programelor;

· Programarea ca un fel de activitate umană;

· Eficiență.

Masa 1 prezintă principalele caracteristici ale limbajului Ada din punctul de vedere al abordării obiectului.

Tabelul 1. Ada.

1.9 Si

În prezent, C este un limbaj popular în rândul programatorilor (C este o literă a alfabetului englez). Limbajul C provine din două limbi - BCPL și B. În 1967, Martin Richards a dezvoltat BCPL ca limbaj pentru scrierea software-ului de sistem și a compilatoarelor. În 1970, Ken Thompson a folosit B pentru a construi versiuni timpurii ale sistemului de operare UNIX pe un computer DEC PDP-7. Atât în ​​BCPL cât și în B, variabilele nu au fost separate în tipuri - fiecare valoare a datelor a preluat un cuvânt în memorie și responsabilitatea de a distinge, de exemplu, numere întregi și numere reale a căzut în întregime pe umerii programatorului. Limbajul C a fost dezvoltat ( bazat pe B) de Dennis Ritchie de la Bell Laboratories și a fost implementat pentru prima dată în 1972 pe un computer DEC PDP-11. C a câștigat faima ca limbaj al sistemului de operare UNIX. Aproape toate sistemele de operare majore de astăzi au fost scrise în C sau C ++. După două decenii, C este disponibil pe majoritatea computerelor. Este independent de hardware. La sfârșitul anilor 70, C a evoluat în ceea ce numim „C tradițional”. În 1983, un singur standard pentru această limbă a fost stabilit de Comitetul american pentru standarde naționale pentru computere și prelucrarea informațiilor. Acest limbaj are mijloace bogate, vă permite să scrieți programe flexibile care utilizează toate capacitățile computerelor personale moderne.

1.10 Prolog

O altă limbă care este considerată limba viitorului a fost creată la începutul anilor 70 de un grup de specialiști de la Universitatea din Marsilia. Acesta este limbajul Prolog. Și-a luat numele din cuvintele „PROGRAMARE ÎN LIMBA LOGICULUI”. Acest limbaj se bazează pe legile logicii matematice. La fel ca limbajul Lisp, Prolog este utilizat în principal în cercetarea în domeniul simulării software a activității creierului uman. Spre deosebire de limbile descrise mai sus, acest limbaj nu este algoritmic. Aparține așa-numitelor descriptiv(din engleză descriptiv - descriptiv) - limbi descriptive. Un limbaj descriptiv nu necesită ca un programator să dezvolte toate etapele unei sarcini. În schimb, în ​​conformitate cu regulile unui astfel de limbaj, programatorul trebuie să descrie baza de date corespunzătoare problemei rezolvate și un set de întrebări la care să răspundă folosind datele din această bază de date.

În ultimele decenii, programarea a apărut și a suferit o dezvoltare semnificativă orientat obiect o abordare. Aceasta este o metodă de programare care imită imaginea lumii reale: informațiile utilizate pentru rezolvarea unei probleme sunt reprezentate ca un set de obiecte care interacționează. Fiecare dintre obiecte are propriile sale proprietăți și comportament. Interacțiunea obiectelor se realizează folosind transmiterea mesajelor: fiecare obiect poate primi mesaje de la alte obiecte, poate aminti informații și le poate procesa într-un anumit mod și, la rândul său, poate trimite mesaje. La fel ca în lumea reală, obiectele își stochează proprietățile și comportamentul împreună, moștenind unele dintre ele din obiectele părinte.

Ideologia orientată pe obiecte este utilizată în toate produsele software moderne, inclusiv în sistemele de operare.

Primul limbaj orientat obiect Simula -67 a fost creat ca un instrument pentru simularea funcționării diferitelor dispozitive și mecanisme. Majoritatea limbajelor de programare moderne sunt orientate pe obiecte. Printre acestea se numără cele mai recente versiuni ale limbii Turbo - Pascal , C ++, Ada alte.

Sistemele sunt acum utilizate pe scară largă programare vizuală Vizual De bază , Vizual C ++, Delphi alte. Acestea vă permit să creați pachete complexe de aplicații cu o interfață de utilizator simplă și convenabilă.

1.11 Java

Din 1995, un nou limbaj de programare orientat pe obiecte, Java, a devenit răspândit, vizând rețelele de computere și, mai presus de toate, Internetul. Sintaxa acestui limbaj este similară cu sintaxa limbajului C ++, dar aceste limbi au puțin în comun. Java este un limbaj interpretat: o reprezentare internă (bytecode) și un interpret pentru această reprezentare sunt definite pentru aceasta, care sunt deja implementate pe majoritatea platformelor. Interpretul simplifică depanarea programelor scrise în limbajul Java, asigură portabilitatea acestora pe platforme noi și adaptabilitate la medii noi. Vă permite să eliminați influența programelor scrise în limbajul Java asupra altor programe și fișiere disponibile pe noua platformă și, astfel, să asigurați siguranța la executarea acestor programe. Aceste proprietăți ale limbajului Java permit utilizarea acestuia ca principalul limbaj de programare pentru programele distribuite pe rețele (în special, pe internet).

1.12 Obiect Pascal

Object Pascal a fost creat de personalul Apple Computer (dintre care unii au contribuit la Smalltalk) împreună cu Niklaus Wirth, creatorul limbajului Pascal. Object Pascal există din 1986 și este primul limbaj de programare orientat obiect care a fost inclus în Atelierul de programare Macintosh (MPW), un mediu de dezvoltare pentru computerele Macintosh de la Apple.

Nu există metode de clasă, variabile de clasă, moștenire multiplă și metaclasă în acest limbaj. Aceste mecanisme sunt excluse în mod intenționat pentru a face limbajul ușor de învățat pentru programatorii începători de „obiecte”.

Masa 2 prezintă caracteristicile generale ale Object Pascal.

Tabelul 2. Obiect Pascal.

În ultimii ani, acest limbaj a devenit foarte popular datorită sistemului Delphi al lui Borland.

1.13 Sistem de proiectare vizuală orientată pe obiecte Delphi.

Apariția Delphi nu a putut trece neobservată în rândul multor utilizatori de computere. Evaluările experților care explorează posibilitățile acestui nou produs Borland sunt de obicei colorate cu tonuri entuziaste. Principalul avantaj al Delphi este că aici sunt implementate idei de programare vizuală. Mediul de programare vizual transformă procesul de creare a unui program într-o construcție plăcută și ușor de înțeles a unei aplicații dintr-un set mare de primitive grafice și structurale.

Sistemul Delphi vă permite să rezolvați multe probleme, în special:

· Creați aplicații complete pentru Windows cu o largă varietate de scopuri: de la pur computational și logic, la grafic și multimedia.

· Creați rapid (chiar și pentru programatorii începători) o interfață cu ferestre cu aspect profesional pentru orice aplicație.

· Creați sisteme puternice pentru lucrul cu baze de date locale și la distanță

· Creați sisteme de ajutor (fișiere .hlp) pentru aplicațiile dvs. și multe altele. dr.

Delphi este un sistem cu creștere extrem de rapidă. Prima versiune, Delphi 1.0, a fost lansată în februarie 1995, iar apoi noi versiuni au fost lansate anual.

Fiecare versiune ulterioară a Delphi a completat-o ​​pe cea anterioară. Majoritatea versiunilor Delphi sunt disponibile în mai multe versiuni: Standard - standard, Profesional - profesional, Client / Server - client / server, Întreprindere - dezvoltarea bazelor de date din domenii. Variantele diferă în principal în diferite niveluri de acces la sistemele de gestionare a bazelor de date. Ultimele opțiuni sunt Client / Server și Enterprise, care sunt cele mai puternice în acest sens.

Delphi este o combinație de mai multe tehnologii critice:

Compilator de înaltă performanță la codul mașinii

Model de componente orientat obiect

Construirea vizuală (și, prin urmare, de mare viteză) a aplicațiilor din prototipuri software

Instrumente scalabile pentru construirea bazelor de date

Structura ecranului în mediul Delphi.

După ce ați apelat Delphi în Windows, apar mai multe ferestre (Fig. 1):

Fereastra principala,

Fereastra formularului,

Fereastra inspectorului de obiecte,

Fereastra arborelui obiectului,

Fereastra codului programului.


Fig. 1. Structura ecranului în mediul Delphi.

Luați în considerare meniul grafic al sistemului Delphi situat în partea de sus a ecranului, compus din pictograme. În partea stângă a meniului grafic există o bară de instrumente. Instrumentele execută unele comenzi ale meniului principal - o astfel de duplicare este practicată adesea în mediile de instrumente. Acest panou are, în special, un buton pentru a salva un proiect pe disc, un buton pentru a deschide un proiect, un buton pentru a porni programul pentru execuție.

Următoarea parte a meniului grafic este o paletă de componente, aranjate sub formă de seturi de icoane. Colecția de kituri alcătuiește Biblioteca de componente vizuale (VCL). Există mai multe categorii de componente, fiecare dintre ele fiind asociată cu o filă diferită. Folosind Paleta de componente, vom instanția componente (sau obiecte) pe formular.

Pentru a plasa un obiect în formular, trebuie să „faceți clic” pe butonul corespunzător al paletei și apoi să faceți clic în interiorul ferestrei formularului: un obiect va fi inserat în locul specificat al formularului - o instanță a unei componente a tipul selectat.

Fereastra Inspector de obiecte este o fereastră care afișează proprietățile fie unui formular, fie ale unui obiect plasat pe un formular. În cazul nostru, componenta curentă este formularul, deci fereastra de proprietăți din figură arată proprietățile formularului.

Fereastra de proprietăți are două file - Proprietăți și Evenimente, cu ajutorul cărora puteți obține linii (câmpuri) în fereastră pentru setarea, respectiv, a proprietăților unei componente (adică a unui obiect sau a unui formular) și a răspunsului său la diverse evenimente. Proprietatea definește un atribut al componentei, cum ar fi dimensiunea unui buton sau fontul unei etichete. Un eveniment înseamnă, de exemplu, acțiuni precum apăsarea unui buton sau închiderea unei ferestre.

Fereastra arborelui obiectelor a apărut în versiunea 6 și este destinată afișării vizuale a legăturilor dintre obiectele individuale plasate pe formularul activ sau în modulul de date active.

Fereastra codului programului este destinată pentru crearea și editarea textului programului. Inițial, conține un cod sursă minim.

Proiecte Delphi. Un proiect Delphi constă din formulare, module, setări ale parametrilor proiectului, resurse etc. Toate aceste informații sunt localizate în fișiere. Multe dintre aceste fișiere sunt generate automat de Delphi atunci când creați aplicația. Resurse precum hărți de biți, pictograme și așa mai departe se găsesc în fișiere pe care le obțineți din alte surse sau le creați cu numeroasele instrumente și editori de resurse la dispoziția dumneavoastră. În plus, compilatorul generează și fișiere.

Fișierele create în timpul procesului de proiectare sunt prezentate în tabel. 3.

Partea principală a aplicației este fișierul de proiect (.dpr), care conține codul Object Pascal care pornește programul și inițializează alte module. Este creat și modificat automat de Delphi în timpul dezvoltării aplicației. Numele dat fișierului proiect în timpul procesului de salvare devine numele fișierului executabil.

Fișier proiect (.dpr) Acest fișier text este utilizat pentru a stoca informații despre formulare și module. Conține instrucțiuni pentru inițializarea și pornirea programelor pentru execuție
Fișier modul (.pas) Fiecare formular pe care îl creați are un fișier text corespunzător modulului care este utilizat pentru a stoca codul. Puteți crea module care nu au legătură cu formularele. Multe dintre funcțiile și procedurile Delphi sunt stocate în module.
Fișier formular (.dfm) Acesta este un fișier binar sau text pe care Delphi îl creează pentru a stoca informații despre formulare. Fiecare fișier formular are un fișier modul corespunzător (.pas)
Fișier Opțiuni proiect (.dfo) Acest fișier stochează setările parametrilor proiectului
Fișier de resurse (.res) Acest fișier binar conține pictograma utilizată de proiect și alte resurse.
Fișiere de rezervă (. ~ Dpr ,. ~ Dfm ,. ~ Pas) Acestea sunt, respectiv, fișiere de rezervă pentru fișierele de proiect, formular și modul. Dacă ceva este corupt fără speranță în proiect, puteți modifica extensiile acestor fișiere în consecință și, astfel, reveniți la versiunea anterioară necoruptă.
Fișier de configurare a ferestrei (.dsk) Fișierul stochează configurația tuturor ferestrelor din mediul de dezvoltare
Fișier executabil (.exe) Acesta este fișierul executabil al aplicației. Este un fișier executabil independent care nu necesită nimic altceva, cu excepția cazului în care se utilizează bibliotecile conținute în DLL, OCX etc.
Fișier obiect modul (.dcu) Acesta este un fișier modul compilat (.pas) care este conectat la fișierul executabil final.

Tabelul 3. Fișiere create în timpul procesului de proiectare.


În prezent, a fost lansată cea de-a 7-a versiune a sistemului Delphi. În timp record, a devenit unul dintre cele mai populare sisteme de programare din lume. Mulți dezvoltatori din întreaga lume sunt ferm dedicați să folosească Delphi ca instrument pentru crearea de aplicații client / server extrem de eficiente.

Arborele evoluției de programare

Figura 1 Arborele evoluției de programare

6. Bibliografie:

1. I.T. Zaretskaya, B.G. Kolodyazhny, A.N. Gurzhiy, A.Yu. Sokolov. Informatică nota 10-11. - К.: „Forum”, 2001

1. Structura ecranului în mediul Delphi (http://textbook.keldysh.ru/distant/delphi/del_2.htm)

2. Patrikeev Yu. N. „Proiectare orientată pe obiecte” (http://www.object.newmail.ru/oop1.html)

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

2. H.M. Daytel. Cum se programează în S. - M.: "Binom", 2000

3. Pagină de internet: http://ru.wikipedia.org/wiki/LISP

Manualul cuprinde două secțiuni: teoretică și practică. Partea teoretică a manualului stabilește bazele informaticii moderne ca o disciplină științifică și tehnică complexă, inclusiv studiul structurii și proprietăților generale ale informației și proceselor informaționale, principiile generale ale construirii dispozitivelor de calcul, discută despre organizarea și funcționarea informațiilor. iar rețelele de calculatoare, securitatea computerelor, prezintă conceptele cheie de algoritmizare și programare, baze de date și SGBD. Pentru a controla cunoștințele teoretice obținute, sunt oferite întrebări pentru autoexaminare și teste. Partea practică acoperă algoritmii acțiunilor de bază atunci când lucrați cu un procesor de text Microsoft Word, un editor de foi de calcul Microsoft Excel, un program pentru crearea prezentărilor Microsoft Power Point, arhivarea programelor și a programelor antivirus. Ca o consolidare a cursului practic promovat la sfârșitul fiecărei secțiuni, se propune efectuarea unei lucrări independente.

Carte:

Secțiuni de pe această pagină:

8.2. Limbaje de programare

Tipuri de programare

Progresul tehnologiei informatice a determinat procesul apariției diferitelor noi sisteme de semne pentru scrierea algoritmilor - limbaje de programare. Semnificația apariției unui astfel de limbaj este un set echipat de formule de calcul pentru informații suplimentare, care transformă acest set într-un algoritm.

Limbajele de programare sunt limbaje create artificial. Ele diferă de cele naturale printr-un număr limitat de „cuvinte” și reguli foarte stricte pentru scrierea comenzilor (operatori). Totalitatea acestor cerințe formează sintaxa unui limbaj de programare, iar semnificația fiecărei comenzi și a altor constructe de limbaj este semantica sa.

Limbajele de programare sunt limbaje formale de comunicare între o persoană și un computer, concepute pentru a descrie un set de instrucțiuni, a căror implementare oferă soluția corectă la problema cerută. Rolul lor principal este de a planifica activități de procesare a informațiilor. Orice limbaj de programare se bazează pe un sistem de concepte și, cu ajutorul său, o persoană își poate exprima gândurile.

Conexiunea dintre limbajul în care gândim / programăm și problemele și soluțiile pe care ni le putem imagina în imaginația noastră este foarte strânsă. Din acest motiv, limitarea proprietăților unui limbaj la doar scopul de a elimina erorile programatorului este periculoasă în cel mai bun caz. Ca și în cazul limbilor naturale, există un beneficiu extraordinar de a fi cel puțin bilingv. Limbajul oferă programatorului un set de instrumente conceptuale, dacă nu îndeplinesc sarcina, atunci sunt pur și simplu ignorate. De exemplu, limitările severe ale conceptului de pointer îl obligă pe programator să folosească vectori și aritmetică întreagă pentru a implementa structuri, pointeri și altele asemenea. Un design bun și un design fără erori nu pot fi garantate doar prin mijloace lingvistice.

Poate părea surprinzător, dar un anumit computer este capabil să ruleze programe scrise în propriul limbaj mașină. Există aproape la fel de multe limbaje mașini diferite pe cât există computere, dar toate sunt varietăți ale aceleiași idei - operații simple sunt efectuate la viteza fulgerului pe numerele binare.

Limbaje de programare dependente de mașină

Limbile dependente de mașină sunt limbi ale căror seturi de operatori și mijloace grafice depind în esență de caracteristicile computerului (limbaj intern, structură de memorie etc.). Aceste limbaje sunt numite limbaje de programare de nivel scăzut. Acestea sunt axate pe un anumit tip de procesor și iau în considerare particularitățile sale. Operatorii unei astfel de limbi sunt apropiați de codul mașinii și se concentrează pe instrucțiuni specifice procesorului, adică acest limbaj este dependent de mașină. Limbajul de nivel scăzut este Asamblarea. Cu ajutorul acestuia, sunt create programe foarte eficiente și compacte, deoarece dezvoltatorul are acces la toate capacitățile procesorului. Astfel de limbaje sunt folosite pentru a scrie aplicații mici de sistem, drivere de dispozitiv, biblioteci. În cazurile în care cantitatea de memorie RAM și ROM este mică (în mai mulți kilobyți), nu există nicio alternativă la asamblare. Aceste limbaje de programare vă permit să obțineți cel mai scurt și mai rapid cod de program.

Limbaje de programare independente de mașini

Limbajele independente de mașini sunt un mijloc de descriere a algoritmilor pentru rezolvarea problemelor și a informațiilor care urmează să fie procesate. Acestea sunt convenabile de utilizat pentru o gamă largă de utilizatori și nu le solicită să cunoască specificul organizării funcționării unui computer și a unui sistem de calcul.

Astfel de limbaje se numesc limbaje de programare la nivel înalt. Programele scrise în astfel de limbi sunt secvențe de enunțuri structurate conform regulilor limbajului (sarcini, segmente, blocuri etc.). Operatorii de limbă descriu acțiunile pe care trebuie să le efectueze sistemul după ce programul a fost tradus în limbajul mașinii.

Secvențele de comandă (proceduri, subrutine), utilizate adesea în programele mașinii, sunt reprezentate în limbaje de nivel înalt prin declarații separate. Programatorul a avut ocazia să nu descrie în detaliu procesul de calcul la nivelul instrucțiunilor mașinii, ci să se concentreze pe principalele caracteristici ale algoritmului.

Limbajele de programare la nivel înalt sunt mult mai apropiate și mai ușor de înțeles de oameni. Acestea nu iau în considerare particularitățile arhitecturilor specifice computerelor, adică aceste limbaje sunt independente de mașini. Acest lucru face posibilă utilizarea unui program odată scris într-un astfel de limbaj pe diferite computere.

Este posibil să scrieți programe direct în limbajul mașinii, deși acest lucru este dificil. La începutul computerizării (la începutul anilor 1950), limbajul mașinii era singurul limbaj, o persoană mai mare nu inventase până atunci. Pentru a salva programatorii din limbajul dur de programare a mașinilor, au fost create limbaje de nivel înalt (adică limbaje care nu sunt mașini), care au devenit un fel de punte de legătură între om și limbajul mașinii computerului. Limbajele la nivel înalt funcționează prin programe de traducere care injectează „cod sursă” (un hibrid de cuvinte în engleză și expresii matematice pe care le citește o mașină) și, în cele din urmă, forțează computerul să execute instrucțiunile corespunzătoare, care sunt date în limbajul mașinii.

Limbajele de programare la nivel înalt includ următoarele: Fortran, Cobol, Algol, Pascal, Basic, C, C ++, Java, HTML, Perl și altele.

Cu ajutorul unui limbaj de programare, nu se creează un program finalizat, ci doar textul acestuia care descrie un algoritm dezvoltat anterior. Pentru a obține un program de lucru, trebuie fie să traduceți automat acest text în codul mașinii și apoi să îl utilizați separat de textul sursă, fie să executați imediat comenzile de limbă specificate în textul programului. Pentru aceasta, se folosesc programe de traducere.

Există două tipuri principale de traducători (Figura 8.4): interpreți, care scanează și validează codul sursă într-un singur pas, și compilatori, care scanează codul sursă pentru a produce textul unui program de limbaj mașină, care este apoi executat separat.


Figura 8.4. Tipuri de traducători

Când utilizați compilatoare, tot codul sursă al programului este convertit în coduri de mașină și aceste coduri sunt scrise în memoria microprocesorului. Când utilizați interpretorul, codul sursă al programului este scris în memoria microprocesorului, iar traducerea se efectuează la citirea următorului operator. Bineînțeles, viteza interpreților este mult mai mică comparativ cu compilatoarele, deoarece atunci când un operator este utilizat într-o buclă, acesta este tradus de multe ori. Cu toate acestea, atunci când programați într-un limbaj la nivel înalt, cantitatea de cod care trebuie stocată în memoria internă poate fi semnificativ mai mică decât cea a codului executabil. Un alt avantaj al utilizării interpretilor este portabilitatea ușoară a programelor de la un procesor la altul.

Un avantaj des citat al implementării unui interpret este că permite „modul direct”. Modul imediat vă permite să întrebați o problemă computerului și vă returnează răspunsul imediat ce apăsați tasta ENTER. În plus, interpreții au atribute speciale care facilitează depanarea. Puteți, de exemplu, întrerupe procesarea unui program de interpretare, afișa conținutul anumitor variabile, defecta programul și apoi continuați executarea. Cu toate acestea, limbile interpretate au dezavantaje. Este necesar, de exemplu, să aveți o copie a interpretului în memorie tot timpul, în timp ce multe dintre capabilitățile interpretului și, prin urmare, capabilitățile acestuia, s-ar putea să nu fie necesare pentru executarea unui anumit program. Când execută instrucțiuni de program, interpretul trebuie mai întâi să scaneze fiecare instrucțiune pentru a citi conținutul acesteia (ce îmi cere această persoană să fac?), Și apoi să efectueze operațiunea solicitată. Operatorii în bucle sunt scanate prea mult.

Un compilator este un traducător de limbă mașină care citește textul sursă. Acesta îl evaluează în funcție de construcția sintactică a limbajului și îl traduce în limbajul mașinii. Cu alte cuvinte, compilatorul nu execută programe, ci le construiește. Interpretii nu pot fi separați de programele pe care le rulează; compilatorii își fac treaba și părăsesc scena. Când lucrați cu un limbaj de compilare, cum ar fi Turbo BASIC, va trebui să vă gândiți la programele dvs. în termeni de două faze principale ale vieții lor: perioada de compilare și perioada de rulare. Majoritatea programelor vor rula de patru până la zece ori mai rapid decât echivalenții lor de interpret. Dacă lucrați pentru a-l îmbunătăți, puteți obține o îmbunătățire a performanței de 100x. Partea inversă a monedei este că programele care își petrec cea mai mare parte a timpului jucându-se cu fișiere pe discuri sau așteptând intrarea nu vor putea demonstra o creștere impresionantă a vitezei.

Procesul de creare a unui program se numește programare.

Există mai multe tipuri de programare.

Algoritmic sau modular

Ideea principală a programării algoritmice este de a împărți un program într-o secvență de module, fiecare dintre care efectuează una sau mai multe acțiuni. Singura cerință pentru modul este că executarea acestuia începe întotdeauna cu prima comandă și se termină întotdeauna cu cea mai recentă (adică este imposibil să ajungeți la comenzile modulului din exterior și să transferați controlul de la modul la alte comenzi, ocolindu-l pe cel final).

Algoritmul în limbajul de programare selectat este scris folosind comenzi pentru descrierea datelor, calcularea valorilor și controlul secvenței de execuție a programului.

Textul programului este o secvență liniară de atribuire, buclă și instrucțiuni condiționale. În acest fel, puteți rezolva probleme nu foarte complexe și compune programe care conțin câteva sute de linii de cod. După aceea, înțelegerea textului sursă scade brusc datorită faptului că structura generală a algoritmului se pierde în spatele unor operatori de limbaj specifici care efectuează acțiuni elementare prea detaliate. Apar numeroase afirmații condiționate și buclă imbricate, logica devine complet confuză, atunci când se încearcă corectarea unei afirmații eronate, sunt introduse mai multe erori noi legate de particularitățile funcționării acestei afirmații, ale căror rezultate sunt adesea luate în considerare în diferite locuri în program.

Programare structurată

Când se creează aplicații de dimensiuni medii (câteva mii de linii de cod sursă), se folosește programarea structurată, a cărei idee este că structura programului ar trebui să reflecte structura problemei rezolvate astfel încât algoritmul soluției să fie clar vizibil din textul sursă. Pentru a face acest lucru, trebuie să aveți mijloacele necesare pentru a crea un program nu numai cu ajutorul a trei operatori simpli, ci și cu ajutorul mijloacelor care reflectă mai exact structura specifică a algoritmului. În acest scop, conceptul de subrutină a fost introdus în programare - un set de operatori care efectuează acțiunea dorită și nu depind de alte părți ale codului sursă. Programul este împărțit în multe subrutine mici (luând până la 50 de afirmații - un prag critic pentru înțelegerea rapidă a scopului subrutinei), fiecare dintre acestea efectuând una dintre acțiunile oferite de sarcina inițială. Combinând aceste subrutine, este posibil să se formeze algoritmul final nu din operatori simpli, ci din blocuri complete de cod care au o anumită sarcină semantică și puteți face referire la astfel de blocuri după nume. Se pare că subrutinele sunt noi operatori sau operații ale limbajului, definite de programator.

Abilitatea de a utiliza subrutine clasifică limbajul de programare ca limbaj procedural.

Având subrutine vă permite să proiectați și să dezvoltați o aplicație de sus în jos - această abordare se numește design de sus în jos. Mai întâi, sunt selectate mai multe subrutine care rezolvă cele mai globale sarcini (de exemplu, inițializarea datelor, partea principală și finalizarea), apoi fiecare dintre aceste module este detaliat la un nivel inferior, divizându-se, la rândul său, într-un număr mic de alte subrutine. , și acest lucru se întâmplă până când acestea până când se finalizează întreaga sarcină.

Această abordare este convenabilă prin faptul că permite unei persoane să gândească constant la nivelul subiectului, fără a se opri la operatori și variabile specifice. În plus, devine posibil ca unii să nu implementeze imediat subrutine, ci să amâne temporar până la finalizarea altor părți. De exemplu, dacă este necesar să se calculeze o funcție matematică complexă, atunci se alocă un subprogram separat pentru un astfel de calcul, dar este implementat temporar de către un operator, care atribuie pur și simplu o valoare preselectată. Când întreaga aplicație este scrisă și depanată, atunci puteți începe să implementați această funcție.

De asemenea, este important ca subprogramele mici să fie mult mai ușor de depanat, ceea ce crește semnificativ fiabilitatea generală a întregului program.

O caracteristică foarte importantă a subrutinelor este reutilizarea lor. Bibliotecile mari de rutine standard sunt furnizate cu sisteme de programare integrate care pot crește semnificativ productivitatea folosind munca altcuiva pentru a crea rutine utilizate frecvent.

Există două tipuri de subrutine - proceduri și funcții. Ele diferă prin faptul că procedura execută pur și simplu un grup de instrucțiuni, iar funcția, în plus, calculează o anumită valoare și o transferă înapoi la programul principal (returnează o valoare). Această valoare este de un anumit tip (se spune că o funcție este de așa tip).

Subrutinele îndeplinesc trei sarcini importante:

Eliminați nevoia de a repeta fragmente similare în textul programului de multe ori;

Îmbunătățiți structura programului, facilitând înțelegerea acestuia;

Creșteți rezistența la erori de programare și consecințe neprevăzute în timpul modificărilor programului.

Programare orientată pe obiecte

La mijlocul anilor 1980, a apărut o nouă direcție în programare, bazată pe conceptul de obiect. Până în acel moment, principalele limitări ale posibilității de a crea sisteme mari erau impuse de dezunitatea din programul de date și metodele de prelucrare a acestora.

Obiectele reale ale lumii înconjurătoare au trei caracteristici de bază: au un set de proprietăți, sunt capabile să schimbe aceste proprietăți în moduri diferite și reacționează la evenimentele care apar atât în ​​lumea înconjurătoare, cât și în interiorul obiectului în sine. În această formă, în limbajele de programare, conceptul de obiect este implementat ca un set de proprietăți (structuri de date caracteristice acestui obiect), metode de procesare a acestora (subrutine pentru schimbarea proprietăților) și evenimente la care acest obiect poate reacționa și care, de regulă, duc la modificarea proprietăților obiectului.

Apariția posibilității de a crea obiecte în programe are un impact calitativ asupra productivității programatorilor. Volumul maxim de aplicații care au devenit disponibile pentru crearea de către un grup de 10 programatori a crescut la milioane de linii de cod în câțiva ani, în timp ce în același timp a fost posibil să se obțină o fiabilitate ridicată a programului și, important, reutilizarea creată anterior obiecte în alte sarcini.

Obiectele pot avea aceeași structură și diferă numai în ceea ce privește valorile proprietății. În astfel de cazuri, un nou tip este creat în program pe baza unei singure structuri de obiect. Se numește o clasă și fiecare obiect specific care are structura acestei clase se numește o instanță a clasei.

Un limbaj de programare orientat obiect este caracterizat prin trei proprietăți principale:

1. Incapsulare - combinarea datelor cu metodele dintr-o singură clasă;

Generații de limbaje de programare

Necesitatea programării a apărut chiar înainte de calculatoarele programabile. Se știe că, din secolul al XVIII-lea, de exemplu, au existat războaie de țesut programate cu scânduri de lemn, în care s-au făcut găuri în locurile potrivite.

Dezvoltarea programării a fost promovată de ideea lui John Von Neumann, publicată în 1945, în care descria un computer în care programul în sine este stocat în memorie împreună cu datele.

Limbajul de programare de prima generație este codul mașinii. Codul mașinii constă în instrucțiuni pe care le poate executa un computer (procesor) (precum și date care aparțin acelor instrucțiuni). Când programează în codul mașinii, programatorul a trebuit să își scrie programul în cod binar, astfel încât procesorul să îl poată înțelege și executa. În esență, o astfel de programare necesită o bună cunoaștere și înțelegere a hardware-ului, deoarece în procesul de programare este necesar să știți ce poate face procesorul, unde sunt amplasate dispozitivele I / O și, de asemenea, cum să comunicați cu acestea. Și cât timp se va petrece în această sau acea operație. Astfel, codul mașinii este foarte strâns cuplat cu hardware-ul pe care va rula programul corespunzător. Până în prezent, codul mașinii nu a dispărut de pe computere, toate acțiunile la un nivel scăzut (nivel hardware) apar încă în codul mașinii, adică Indiferent de limbajul de programare în care este scris programul, acesta este în cele din urmă transformat în cod de mașină pe care hardware-ul îl poate înțelege.

Limbile de asamblare sunt considerate limbi de a doua generație. În cazul codului mașinii, toate programările au avut loc în cod binar și, prin urmare, a citit și a depanat foarte mult timp. Când programați în limbaj de asamblare, instrucțiunile sunt prezentate unei persoane într-o formă ușoară. Programarea în sine este foarte similară cu programarea în codul mașinii, deoarece instrucțiunile sunt aceleași ca și în codul mașinii (doar într-o formă diferită - sub formă de cuvinte). Un program scris în limbaj de asamblare este ceva de genul următor:

MOV AL, 19

ADĂUGAȚI AL, 4

OUT 2

Această bucată de cod atribuie valoarea registrului AL 19 (de obicei, valorile sunt reprezentate prin numere în sistem hexazecimal), adaugă numărul 4 la valoarea registrului AL și apoi trimite numărul 2 la ieșirea 2. Programul scris este tradus din asamblare în codul mașinii și după aceea procesorul își poate începe execuția ...

Limbile de asamblare și codul mașinii sunt considerate limbi de nivel scăzut.

Limbajele de programare a treia generație sunt deja numite limbaje de nivel înalt. Astfel de limbaje de programare nu sunt foarte legate de hardware. Aceasta înseamnă că programatorul nu mai trebuie să cunoască foarte precis structura și caracteristicile hardware-ului, ci poate fi relativ independent de hardware, după care acest program este convertit cu ajutorul unor instrumente diferite într-o formă pe care hardware-ul o poate înțelege . Mai precis, modul în care se face acest lucru va fi descris mai târziu.

Majoritatea limbajelor de programare cunoscute și utilizate se numără printre limbajele celei de-a treia generații, de exemplu:

FORTRAN (IBM Mathematical FORmula TRANslating System) este un limbaj de programare dezvoltat în anii 1950 în scopuri științifice și de calcul matematic.

COBOL (COmmon Business Oriented Language) - Limbaj de programare orientat pe obiecte, creat în 1959, în principal pentru scrierea de programe care satisfac nevoile afacerii.

BASIC (Codul de instrucțiuni pentru toate scopurile pentru începători) - Un limbaj dezvoltat în 1963, care a fost inițial creat astfel încât inginerii să poată efectua diverse simulări pe computere.

Pascal - Un limbaj de programare creat în anii 1970 care a fost creat pentru a preda programarea.

C - numele provine din faptul că acest limbaj se bazează în principal pe limbajul numit B. A fost creat pentru scrierea sistemelor de operare (multe sisteme de operare compatibile UNIX sunt scrise în acest limbaj), a fost de mult unul dintre cele mai populare limbaje de programare .

C ++ este orientat pe obiecte C.

Java este un limbaj de programare dezvoltat pe baza C ++.

Visual Basic, Delphi, Python, C # sunt toate limbaje de a treia generație. Multe limbaje de programare a treia generație sunt mai tinere (mai noi) decât unele limbaje de a patra și a cincea generație.

Limbajele de programare din generația 4 sunt concepute pentru a le face ușor de învățat și de utilizat. Aceste limbi tind să fie non-procedurale axate pe o singură aplicație. Un exemplu de limbaj de programare de a patra generație este SQL (Structured Query Language). Spune mai multe despre „ce să faci” și mai puțin despre „cum să faci”. Limbile de generația a cincea au fost create pentru dezvoltarea sistemelor de inteligență artificială și pentru rezolvarea problemelor legate de acest subiect.

Tipuri de bază ale limbajelor de programare.

Spre deosebire de generațiile de limbaje de programare, tipurile de bază descriu modul în care un limbaj poate fi programat. Principalele tipuri de bază includ: limbaje de programare procedurale, funcționale și orientate obiect.

În limbajele de programare procedurală, limbajul de programare descrie acțiunile și ordinea executării acestora, precum și aceste acțiuni sunt împărțite în grupuri (subrutine). La rândul său, procedurile generează structuri de cod care pot fi refolosite. În limbajele de programare funcționale, întreaga soluție este descrisă folosind funcții. În limbajele de programare orientate obiect, problema este rezolvată folosind funcții și structuri de date descrise în clase (English Class). Din fiecare clasă, puteți crea un obiect care va avea un set de proprietăți și / sau metode.

Proprietățile sunt valori pe care un obiect le poate conține și care pot afecta comportamentul unui obiect. De exemplu, pe baza clasei „fereastră consolă”, puteți crea un obiect „consolă1” care va fi vizibil pentru utilizator ca o singură fereastră consolă. Acest obiect are unele proprietăți (afișate, ascunse, lățime, înălțime, culoarea textului în fereastra consolei, culoarea de fundal etc.), modificând aceste proprietăți, în acest caz particular, puteți schimba aspectul obiectului.

În același exemplu, obiectul poate avea unele metode, de exemplu, referindu-se la metoda corespunzătoare, puteți scrie un text în fereastra consolei, puteți citi textul introdus de utilizator într-o variabilă etc.

Al doilea exemplu este clasa „variabilă text”, creând un obiect „ProstoText” bazat pe această clasă, creând o variabilă text, a cărei proprietate principală este valoarea textului stocat, dar de fapt, acest obiect are mai multe proprietăți (de exemplu , lungimea valorii textului stocat). De asemenea, variabila text trebuie să aibă un anumit set de metode (schimbați caracterele valorii stocate în minuscule, majuscule, eliminați unele caractere etc.).

Prin urmare, prin descrierea claselor și manipularea obiectelor, este posibil să compuneți programe foarte complexe și să efectuați diverse acțiuni.

Limbi interpretate și compilate

Înainte ca un computer să poată executa un program scris într-un limbaj de nivel înalt, acesta trebuie „tradus” într-o limbă pe care computerul o poate înțelege, adică. Codul mașinii. Acest proces de traducere se numește traducere, iar software-ul pentru traducători se numește traducător. Traducătorii sunt împărțiți în două clase: compilatori și interpreți.

Compilarea este atunci când un program în codul mașinii (numit compilator) convertește un alt program scris într-un limbaj de programare în cod mașină. După aceea, se execută codul de mașină rezultat al programului. Exemple de limbi compilate includ C, Fortran, Pascal.

Interpretarea este că programul din codul mașinii (interpretor) scrie fișierul programului în memoria internă și începe să îl execute linie cu linie. Un exemplu este vechiul limbaj BASIC.

Interpretarea unui program este de aproximativ 10-200 de ori mai lentă decât executarea codului compilat. În schimb, depanarea (eliminarea erorilor din program) a unui program interpretat este de obicei mai ușoară decât în ​​cazul unui program tradus. În unele cazuri adecvate și cu disponibilitatea instrumentelor la îndemână, aceste diferențe pot fi mult mai mici. Un bun exemplu este Java cu cod care este optimizat și compilat în nivelul mediu, care este tradus în timpul rulării de către compilatorul Just-in-Time pentru a se potrivi hardware-ului specific.

În principiu, un program scris în orice limbă poate fi interpretat și compilat.

În acest moment, există multe direcții în programare. Toată lumea poate găsi ceva pe placul lor, dar pentru asta trebuie să știi exact ce vei face în domeniul tău.

Dezvoltare de aplicații web

Această direcție este axată pe dezvoltarea de aplicații web (cu alte cuvinte, site-uri, dar în prezent site-urile au o funcționalitate atât de bogată încât pot fi numite aplicații cu drepturi depline).

Programarea web poate fi împărțită în backend (scrierea scripturilor de pe server - PHP, Python, Ruby) și frontend (dezvoltarea interfeței utilizator - Javascript, HTML, CSS).

Dezvoltarea aplicațiilor desktop

Dezvoltare software pentru diverse sisteme de operare. Toată varietatea de software pe care o folosim în viața de zi cu zi. Dacă doriți să scrieți propriul procesor foto, player audio sau editor de text, atunci acesta este locul pentru dvs.

Dezvoltarea aplicațiilor server

Acestea sunt diverse servere de jocuri (Dotka dvs. preferat, CS: GO), servicii IM (parte a serverului Skype, ICQ, MSN), baze de date bancare.

Dezvoltarea de aplicații mobile

O mulțime de aplicații Java. VK, Viber, Yandex.Maps, traducători, e-reader.

Programare încorporată

O ramură interesantă de programare pentru diverse electrocasnice: aspiratoare, frigidere, mașini de spălat, jucători, navigatoare, cântare electronice. Acesta implică dezvoltări științifice folosind limbaje specializate, cum ar fi MATLAB.

Programare sistem

Scrierea diferitelor drivere pentru hardware, programarea „nucleului” sistemelor de operare. Apropo, crearea de compilatoare și interpreți pentru limbaje de programare este, de asemenea, inclusă aici.

Dezvoltarea jocului

O industrie gigantică. Aceasta include dezvoltarea de jocuri pentru PC-uri, console și dispozitive mobile.

Programarea olimpiada și rezolvarea problemelor

Programarea în diferite limbaje „impracticabile” și nu comune (Pascal, Delphi) pentru a rezolva unele probleme originale care necesită o abordare non-standard, ingeniozitate și IQ peste 160.

Programare pentru produse contabile și financiare

„1C: Enterprise”. Toată contabilitatea din Rusia este legată de acest produs. Dar nu este suficient să cunoaștem doar limba în sine; este important să înțelegem elementele de bază ale contabilității. Plusul este că e multă muncă și nu vei rămâne fără pâine.

Programarea bazei de date

Direcție serioasă. Dacă doriți să dezvoltați baze de date capabile să stocheze miliarde de linii de informații despre toți utilizatorii VKontakte sau Facebook și, în același timp, să nu încetinească - sunteți aici.

Ştiinţă

Știință și asta spune totul. Rețele neuronale, modelarea structurii ADN, lansarea prin satelit, simulare Big Bang.

Apropo, recent pe site-ul NASA a fost publicată știrea despre căutarea unui programator în „străvechiul” limbaj Fortran, care are mai mult de 60 de ani. Un programator a fost nevoit să dezvolte programe pentru controlul sondelor automate Voyager 1 și Voyager 2, software-ul pentru care fusese scris în Assembler, Fortran și COBOL în anii 1970. Nu știi niciodată ce cunoștințe ți-ar putea fi de folos.