Descrieți conceptul de programare. Selectarea tipului de programare

Termenul de programare se referă la procesul și arta de a crea programe de calculator folosind limbaje speciale de programare.

În sensul general al cuvântului, programarea este formalizarea unei stări predeterminate, ca răspuns la un eveniment, implementată prin intermediul matematicii sau al științelor naturii.

În sensul restrâns al cuvântului, programarea este considerată ca codificarea algoritmilor într-un anumit limbaj de programare. Într-un sens mai larg, programarea este procesul de creare a programelor, adică dezvoltarea de software.

Programarea include:

· Proiectare - dezvoltarea unui set de algoritmi

· Codare și compilare - scrierea codului sursă al unui program și convertirea acestuia în cod executabil folosind un compilator

· Testare și depanare - identificarea și eliminarea erorilor din programe

· Testarea și livrarea programelor

· Escortă

Diferite limbaje de programare acceptă diferite stiluri de programare (numite „paradigma de programare”). O parte a artei de a programa este alegerea unuia dintre limbajele care se potrivește cel mai bine problemei în cauză. Diferitele limbi necesită niveluri diferite de atenție la detalii din partea programatorului atunci când implementează un algoritm, rezultând adesea un compromis între simplitate și performanță (sau între timpul programatorului și timpul utilizatorului).

Singurul limbaj executat direct de procesor este limbajul mașină (numit și „cod mașină”). După cum am menționat deja, inițial, toți programatorii au rezolvat fiecare mic detaliu din codul mașinii, dar acum această muncă dificilă nu mai este făcută. În schimb, programatorii scriu cod sursă, iar computerul (folosind un compilator, interpret sau asamblator, despre care se va discuta mai târziu) îl traduce, în una sau mai multe etape, precizând toate detaliile, în cod mașină, gata de a fi executat pe procesor țintă. Cu toate acestea, în unele limbi, în locul codului de mașină este generat un cod binar interpretat de „mașină virtuală”, numit și cod octet. Această abordare este folosită în Forth, Lisp, Java (Capitolul 3 al rezumatului este dedicat acestui limbaj).

Acum că știm puțin despre conceptul de „programare”, putem trece la partea materială a procesului de creare a programelor. Acestea, desigur, sunt instrumente de suport tehnic (hardware) de programare - totalitatea componentelor electrice, electronice și mecanice ale sistemelor automate constituie suportul tehnic al acestora (spre deosebire de software, care este software-ul sistemelor automate). De exemplu, un computer electronic (calculator) sau computer este un set de instrumente tehnice și software bazate pe utilizarea electronicii și concepute pentru prelucrarea automată sau automată a datelor în procesul de rezolvare a problemelor informatice și de calcul.


Conceptul de limbaj de programare

Procesul de funcționare a computerului constă în executarea unui program, adică a unui set de comenzi foarte specifice într-o ordine foarte specifică. Forma de mașină a instrucțiunii, constând din zerouri și unu, indică exact ce acțiune ar trebui să efectueze procesorul central. Aceasta înseamnă că, pentru a oferi computerului o secvență de acțiuni pe care trebuie să le efectueze, trebuie să specificați o secvență de coduri binare pentru comenzile corespunzătoare. Programele de cod de mașină constau din mii de instrucțiuni. Scrierea unor astfel de programe este o sarcină dificilă și plictisitoare. Programatorul trebuie să-și amintească combinația de zerouri și unu din codul binar al fiecărui program, precum și codurile binare ale adreselor de date utilizate în execuția acestuia. Este mult mai ușor să scrieți un program într-o limbă care este mai apropiată de limbajul uman natural și să încredințați unui computer munca de traducere a acestui program în coduri de mașină. Așa au apărut limbaje concepute special pentru scrierea programelor - limbaje de programare.

Un limbaj de programare este un limbaj special în care comenzile sunt scrise pentru a controla un computer. Limbajele de programare sunt concepute pentru a facilita citirea și scrierea de către oameni pentru computere, dar ele trebuie apoi traduse (de un traducător sau interpret) în codul mașinii, care singur poate fi executat de computer. Limbajele de programare pot fi împărțite în limbaje de nivel înalt și limbaje de nivel scăzut.

Un limbaj de nivel scăzut este un limbaj de programare conceput pentru un anumit tip de computer și care reflectă codul său intern al mașinii; Limbile de nivel scăzut sunt adesea numite limbaje orientate către mașină. Ele sunt greu de convertit pentru a fi utilizate pe computere cu procesoare diferite și, de asemenea, destul de dificil de învățat, deoarece necesită o bună înțelegere a funcționării interne a computerului.

Un limbaj de nivel înalt este un limbaj de programare conceput pentru a satisface cerințele programatorului; nu depinde de codurile interne ale mașinii oricărui tip de computer. Limbile de nivel înalt sunt folosite pentru a rezolva probleme și, prin urmare, sunt adesea numite limbi orientate spre probleme. Fiecare comandă de limbaj de nivel înalt este echivalentă cu mai multe comenzi din codurile de mașină, astfel încât programele scrise în limbaje de nivel înalt sunt mai compacte decât programele similare din codurile de mașină.

Creatorii de limbaj interpretează diferit conceptul de limbaj de programare. Printre comunitățile de locuri 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 a efectua un anumit proces de calcul și pentru a organiza controlul dispozitivelor individuale.

Problemă: 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 folosite doar pentru comunicarea între oameni. În principiu, putem generaliza definiția „limbajelor de programare” - aceasta este o modalitate de transmitere a comenzilor, comenzilor, îndrumări clare pentru acțiune; întrucât limbile umane servesc și la schimbul de informații.

Execuție: Un limbaj de programare poate folosi constructe speciale pentru a defini și manipula structurile de date și pentru a controla procesul de calcul.

De la crearea primelor mașini programabile, omenirea a venit deja cu 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 folosite doar de un număr mic de dezvoltatori, în timp ce 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.

Dar crearea unui limbaj convenabil pentru scrierea programelor nu este suficientă. Fiecare limbă are nevoie de propriul traducător. Astfel de traducători sunt programe speciale de traducător.

Un traducător este un program conceput pentru a traduce un program scris într-un limbaj de programare într-un program într-un alt limbaj de programare. Procesul de traducere se numește traducere. Textele sursă și ale programelor rezultate sunt localizate în memoria computerului. Un exemplu de traducător este un compilator.

Un compilator este un program conceput pentru a traduce un program scris într-un limbaj într-un program de cod de mașină. Procesul unei astfel de traduceri se numește compilare.

Compilatorul creează rezultatul final - un program în codul mașinii. Acest program este apoi executat. Versiunea compilată a programului sursă poate fi salvată pe disc. Pentru a reexecuta programul original, compilatorul nu mai este necesar. Este suficient să încărcați versiunea compilată anterior de pe disc în memoria computerului și să o executați.

Există o altă modalitate de a combina procesele de traducere și execuția programului. Se numește interpretare. Esența procesului de interpretare este următoarea. Mai întâi este tradus în coduri de mașină, apoi este executată prima linie a programului. Când execuția primei linii este finalizată, începe translația celei de-a doua rânduri, care este apoi executată și așa mai departe. Acest proces este controlat de un program de interpret.

Un interpret este un program conceput pentru traducerea rând cu linie și execuția programului sursă. Acest proces se numește interpretare.

Procesul de traducere include verificarea programului sursă pentru conformitatea cu regulile limbajului folosit în acesta. Dacă se găsesc erori în program, traducătorul introduce un mesaj despre acestea pe dispozitivul de ieșire (de obicei, pe ecranul de afișare, interpretul raportează erorile pe care le găsește după traducerea fiecărei linii a programului). Acest lucru simplifică foarte mult procesul de găsire și corectare a erorilor din program, dar crește semnificativ timpul de difuzare. Compilatorul traduce programul mult mai rapid decât interpretul, dar raportează erorile pe care le găsește după ce a finalizat compilarea întregului program. Găsirea și corectarea erorilor în acest caz este mai dificilă. Prin urmare, interpreții sunt proiectați în principal pentru limbaje destinate predării programării și sunt utilizați de programatori începători. Majoritatea limbilor moderne sunt concepute pentru dezvoltarea pachetelor software complexe și sunt concepute pentru a fi compilate.

Uneori, același limbaj poate fi folosit atât de compilator, cât și de interpret. Astfel de limbi includ, de exemplu, BASIC.

Clasificarea limbajelor de programare

Dacă ați observat, mai multe nume individuale de limbaje de programare au fost deja menționate în text. Dar, înainte de a le descrie mai detaliat, este necesar să le clasificăm în grupuri pentru ușurința percepției.

În primul rând, acestea sunt limbaje orientate spre mașină, de exemplu. limbaje, seturi de operatori și mijloace vizuale ale cărora depind semnificativ de caracteristicile computerului (limbaj intern, structura memoriei etc.). Limbile orientate pe mașină vă permit să utilizați toate capabilitățile și caracteristicile limbilor dependente de mașină:

· calitate înaltă a programelor create (compacitate și rapiditate de execuție);

· capacitatea de a utiliza resurse hardware specifice;

· predictibilitatea codului obiect și a ordinelor de memorie;

· pentru a crea programe eficiente este necesar să se cunoască sistemul de comandă și caracteristicile de operare ale unui computer dat;

· procesul intensiv de muncă de scriere a programelor (în special în limbaje mașină și JSC), care este slab protejat de erori;

· viteza de programare redusa;

· imposibilitatea utilizării directe a programelor scrise în aceste limbi pe alte tipuri de computere.

Limbile orientate către mașină sunt împărțite în clase în funcție de gradul de programare automată.

După cum am menționat deja, un computer individual are propriul limbaj de mașină specific (denumit în continuare ML), este prescris să efectueze operații specificate pe operanzii pe care îi definesc, deci ML este unul de comandă. Cu toate acestea, unele familii de calculatoare au un singur ML pentru calculatoare cu putere diferită. Comanda oricăruia dintre ele raportează informații despre locația operanzilor și tipul de operație care se efectuează.

În noile module de calculator, există tendința de a îmbunătăți limbajele interne prin mijloace mașină-hardware pentru a implementa comenzi mai complexe, care sunt mai aproape în acțiunile lor funcționale de operatorii limbajelor de programare algoritmică.

Limbajele de codare simbolică (denumite în continuare SKL), la fel ca ML, sunt limbaje de comandă. Cu toate acestea, codurile de operare și adresele din instrucțiunile mașinii, care sunt o secvență de cifre binare (în codul intern) sau octale (deseori utilizate la scrierea programelor), sunt înlocuite în JSC cu simboluri (identificatori), a căror formă de scriere ajută programatorul reţine mai uşor conţinutul semantic al operaţiei. Acest lucru asigură o reducere semnificativă a numărului de erori la compilarea programelor și facilitează foarte mult munca programatorului.

Există și limbi care includ toate capacitățile YSC, prin introducerea extinsă a comenzilor macro - ele se numesc Autocodes.

În diverse programe există câteva secvențe de comenzi destul de frecvent utilizate care corespund anumitor proceduri de conversie a informațiilor. Implementarea eficientă a unor astfel de proceduri este asigurată de proiectarea lor sub formă de macrocomenzi speciale și includerea acestora din urmă într-un limbaj de programare accesibil programatorului.

Un limbaj care este un mijloc de înlocuire a unei secvențe de caractere care descriu execuția acțiunilor computerului necesare într-o formă mai comprimată se numește Macro (instrument de înlocuire).

Practic, o macrocomandă este concepută pentru a scurta intrarea inițială a programului. Componenta software care permite macrocomenzilor să funcționeze se numește procesor macro. Macroprocesorul primește macro-definirea și textul sursă. Răspunsul macroprocesorului la un apel este să emită un text de ieșire.

Următorul tip de limbaje sunt limbaje independente de mașină. Acestea sunt mijloace de descriere a algoritmilor de rezolvare a problemelor și a informațiilor de prelucrat. Sunt convenabile de utilizat pentru o gamă largă de utilizatori și nu necesită ca aceștia să cunoască specificul organizării funcționării computerelor și aeronavelor.

Astfel de limbaje sunt numite limbaje de programare de nivel înalt. Programele compilate în astfel de limbaje sunt secvențe de declarații structurate conform regulilor de vizualizare a limbajului (sarcini, segmente, blocuri etc.). Operatorii de limbaj descriu acțiunile pe care sistemul trebuie să le efectueze după traducerea programului în ML.

Astfel, secvențele de comenzi (proceduri, subrutine), folosite adesea în programele mașinii, sunt reprezentate în limbaje de nivel înalt prin instrucțiuni individuale. Programatorul a putut să nu descrie în detaliu procesul de calcul la nivelul instrucțiunilor mașinii, ci să se concentreze pe principalele caracteristici ale algoritmului.

Odată cu extinderea domeniilor de aplicare a tehnologiei informatice, a apărut necesitatea formalizării prezentării formulării și soluționării unor noi clase de probleme. A fost necesar să se creeze limbaje de programare care, folosind notații și terminologie în acest domeniu, să permită descrierea algoritmilor de soluție necesari pentru problemele atribuite, acestea au devenit limbaje orientate către probleme. Aceste limbaje orientate către probleme ar trebui să ofere programatorului instrumentele pentru a formula pe scurt și clar problema și pentru a obține rezultate în forma necesară.

Au fost create limbi universale pentru o gamă largă de sarcini: comerciale, științifice, de modelare etc. Primul limbaj universal a fost dezvoltat de IBM. Vă permite să lucrați cu caractere, cifre, numere în virgulă fixă ​​și în virgulă mobilă. Limbajul ține cont de capacitățile de întrerupere incluse în multe mașini și are operatori corespunzători. Este oferită posibilitatea de execuție paralelă a secțiunilor de programe. Apariția de noi capacități tehnice a stabilit sarcina programatorilor de sistem - să creeze instrumente software care să asigure interacțiunea operațională între o persoană și un computer afară în două direcţii. Au fost create limbaje de control speciale pentru a oferi un impact operațional asupra îndeplinirii sarcinilor, care au fost compilate în orice limbă nedezvoltată anterior (non-dialog). Au fost dezvoltate, de asemenea, limbaje care, pe lângă scopurile de management, ar oferi o descriere a algoritmilor de rezolvare a problemelor. limbi și generatoare de rapoarte), și limbi pentru comunicarea cu sistemele de operare Permițând o descriere clară ca sarcină și acțiunile necesare pentru a o rezolva, tabelele de decizie fac posibilă determinarea clară a condițiilor care trebuie îndeplinite înainte de a trece la. orice actiune. Un tabel de decizie, care descrie o anumită situație, conține toate diagramele bloc posibile ale implementărilor algoritmilor de soluție. Programele scrise în limbaj tabelar descriu în mod convenabil situațiile complexe care apar în timpul analizei sistemului.

În timpul apariției primelor sisteme informatice, întrebarea cum să „înveți” o mașină să perceapă sarcinile indicate pentru executare de către o persoană a devenit acută. Aici a apărut termenul „programare computerizată”. Astăzi, mulți utilizatori care nu sunt familiarizați cu elementele de bază și subtilitățile acestor procese cred că acesta este ceva din domeniul fanteziei, inaccesibil pentru omul obișnuit. Cu toate acestea, dacă doriți, puteți învăța singur să programați. Dar să nu trecem înaintea noastră și să punem totul, așa cum se spune, pe rafturi.

Ce este programarea în sens general?

Dacă te uiți la principalele interpretări ale acestui termen, nu este dificil să tragi cea mai simplă concluzie. Ce este programarea? Aceasta este scrierea de programe.

Se pune imediat întrebarea ce este un program. Un program sau o aplicație este, în linii mari, un set de comenzi specializate, instrucțiuni, directive sau scripturi executabile care sunt supuse execuției de către o mașină, atât la nivelul dispozitivelor hardware, cât și a altor mijloace implicate.

Pentru a clarifica ce este programarea, putem da un exemplu simplu. O aplicație de utilizator instalată care vizează efectuarea unei sarcini specifice accesează nu numai memoria RAM și procesorul, ci folosește și alte dispozitive fizice prin instrumente de gestionare a dispozitivelor numite drivere, care sunt și programe.

Puțină istorie

Vorbind despre ce este programarea în interpretarea modernă, merită să vă îndreptați atenția asupra istoriei originii sale. De fapt, execuția automată a anumitor acțiuni, de exemplu, în domeniul calculelor matematice, este cunoscută omenirii de destul de mult timp.

Amintiți-vă doar de Grecia Antică, care folosea un dispozitiv cu roți dințate de diferite dimensiuni, care făcea posibilă efectuarea de operații aritmetice simple. A fost un adevărat prototip al unui calculator modern.

În 1206, a apărut un aparat unic de urmărire a așa-numitului ciclu Metonic, construit de Al-Jazari, care folosea mecanisme complexe la acea vreme bazate pe cleme și came.

Abia în 1804 a văzut lumina zilei războaiele jacquard, care era capabilă să reproducă modele pe țesături create pe baza cărților perforate.

Dar adevărata descoperire a fost dispozitivul analitic programabil dezvoltat de Charles Babbage, care, din păcate, nu a fost construit niciodată în timpul vieții sale.

Dar în 1846, fiica lui Byron a creat primul program din lume pentru un motor analitic, care a rezolvat ecuația lui Bernoulli. Desigur, algoritmii de programare folosiți de contesa Ada Augusta Lovelace erau foarte primitivi, dar ei au pus însăși sămânța care a fost folosită pentru a crea programe moderne de calculator. Și ea este considerată în întreaga lume a fi progenitoarea programării.

Cum primește un computer comenzi?

Orice program de calculator trebuie să fie executat de o mașină într-un fel. Nu este suficient ca ea să scrie, să spună, să facă asta și asta. În acest scop au fost create limbaje de programare.

Dar scrierea unei secvențe de comenzi într-o anumită limbă, dintre care există multe astăzi, nu este suficientă. Aparatul nu va accepta în continuare fraze text sau formule matematice.

Un instrument universal a devenit utilizarea codului binar, constând din secvențe de zerouri și unele care sunt percepute de orice dispozitiv de calculator. Dar cum să traduc expresiile și formulele semantice în această formă? Pentru a face acest lucru, se folosesc compilatoare, care convertesc lista de comenzi în cod binar care poate fi citit de mașină. Puteți găsi atât coduri ternare, cât și coduri hexazecimale, dar sunt folosite extrem de rar.

Codurile mnemonice

Este clar că introducerea comenzilor binare chiar și pe dispozitivele primitive a fost extrem de dificilă, deoarece oamenii prin natura lor pur și simplu nu sunt capabili să-și amintească astfel de secvențe.

Prin urmare, pentru a unifica astfel de procese, au fost inventate așa-numitele coduri mnemonice, care sub formă de comenzi text erau analogi completi ai combinațiilor binare. O comandă text, așa cum este deja clar, este mult mai ușor de reținut decât o secvență lungă constând din zerouri și unu.

Conceptul de variabile

Dar chestiunea nu s-a oprit aici. Algoritmii de programare utilizați la începutul dezvoltării au necesitat introducerea unei noi valori, numită variabilă.

Esența utilizării sale în orice limbaj de programare este de a atribui o desemnare a unei litere unei anumite zone de memorie în care este stocată o valoare. Pentru a traduce codurile mnemonice în instrucțiuni și variabile în zone de memorie, au fost folosite instrumente numite traducători. Și toate limbile care au folosit această tehnică au fost numite asamblatori.

Limbaje de programare

Instrumentele lingvistice în sine, în care sunt scrise programe de calculator (sau au fost scrise cândva), pot fi împărțite condiționat în nivel scăzut și nivel înalt.

Dacă cineva din generația mai veche își amintește, chiar și pe vremea sovietică, limba de bază era predată la orele de informatică din școli. Cu ajutorul acestuia, pe mașinile Yamaha KUVT de atunci, a fost posibil să se creeze programe primitive pentru calcule matematice, să se programeze cele mai simple imagini sau să sune muzica din difuzorul sistemului. Pentru matematică, puteți folosi și operatori logici precum „dacă”, „atunci”, „altfel”. Dar problema tuturor celor care au învățat temeinic această limbă a fost că nu puteau stăpâni noile mijloace.

Ca să nu mai vorbim de faptul că limbajul Assembly a provocat o adevărată revoluție odată cu aspectul său și este folosit și astăzi, au apărut instrumente destul de specifice, de exemplu limbaje de programare structurală sau orientată pe obiecte (OOP);

Limbajul C++/++ poate fi ușor clasificat ca OOP, pe baza căruia sunt create aceleași sisteme de operare Windows. Programarea în C este destul de complexă, totuși, dacă doriți, o puteți stăpâni. După cum se spune, ar exista o dorință. Puteți urma aceleași cursuri de programare sau puteți utiliza literatura relevantă pentru a studia. Adevărat, potrivit celor mai mulți experți, este încă posibil să înțelegeți elementele de bază ale limbii pe cont propriu, dar dezvoltarea cunoștințelor în practică va fi extrem de dificilă. Nicio lucrare precum cărțile „Programare pentru manechin” nu va ajuta aici.

Dar să revenim la limbi. Limbi care funcționează pe bază de interpreți (.NET Framework, Python, Java, Perl etc.) au apărut relativ recent. În loc de codul mașinii, ei generează un bytecode special, care este codul binar al mașinii virtuale.

Apropo, puteți învăța programarea în Java pe cont propriu, fără prea mult efort. De exemplu, pentru dispozitivele mobile bazate pe sisteme Android, puteți utiliza Android Studio și pachetul Java SDK în paralel și puteți instala Genymotion ca tester. Puteți face acest lucru și mai ușor apelând la constructorul online App Inventor, în care crearea unei secvențe de comenzi este similară cu asamblarea unui puzzle.

Conceptul de paradigme

Conceptul de paradigme nu a apărut din senin. În sensul cel mai general, paradigmele reprezintă o anumită viziune asupra lumii din jurul nostru și a acțiunilor care pot fi întreprinse în legătură cu aceasta. În lumea computerelor, acest termen este înțeles ca o anumită generalizare în raport cu funcționarea programului.

Există aplicații care se concentrează exclusiv pe o singură paradigmă sau realizează o singură sarcină, dar toate limbile și programele moderne create pe baza lor rezolvă mai multe probleme. De aici provine termenul de multitasking.

Programarea modernă și caracteristicile sale

În stadiul actual de dezvoltare a tehnologiei informatice, prioritatea pentru mulți programatori este OOP și programarea în Java. Vă rugăm să rețineți că pachetele platformei Java sunt acceptate de oricare dintre sistemele de operare cunoscute în prezent, ca să nu mai vorbim de dispozitivele mobile.

Și, deși C+/++ este considerat a fi limba dominantă, asamblarea nu trebuie ignorată. În mod surprinzător, majoritatea virușilor sunt înscriși în el. Și dacă luăm în considerare programarea web, să zicem, bazată pe Delphi, aici se deschid oportunități și perspective atât de largi, încât mulți programatori începători nici măcar nu sunt conștienți de asta.

Este posibil să înveți singur programarea?

Întrebările legate de auto-studiu depind direct de ceea ce doriți să învățați. Literatura sub formă de cărți „Programming for Dummies” oferă doar răspunsuri parțiale, fără a preciza principalele aspecte, ținând cont de utilizarea unui anumit limbaj. Aceasta este, ca să spunem așa, pentru înțelegere generală. Cursurile de programare sunt, de asemenea, o problemă controversată, deoarece în acest caz totul depinde nu numai de percepția elevului, ci și de cunoștințele pe care le are profesorul, de modul în care prezintă materialul etc. Dar dacă este nevoie să înveți un anumit limbaj sau o metodă de programare, în epoca noastră a internetului, aceasta nu este o problemă. Puteți găsi chiar și cursuri online sau descrieri detaliate ale lecțiilor pe aceeași platformă Java, programând dispozitive Android sau iOS.

Scurt rezumat

Ce este programarea în termeni generali, cred, este deja clar pentru orice persoană. Aici, însă, s-au atins doar chestiuni generale fără specificații despre utilizarea fiecărei limbi, instrumente pentru scrierea aplicațiilor sau modulelor software aferente, interpretarea sau traducerea comenzilor, precum și modul în care toate acestea se realizează la procesor, RAM sau sistemul de operare. nivel. Toate acestea sunt destul de greu de înțeles și pentru o persoană nepregătită să înțeleagă esența tuturor acestor procese nu va fi atât de ușor. Cu toate acestea, dacă îți dorești și ai un grad de motivație suficient de ridicat, poți învăța orice limbă și, ulterior, poți deveni un programator de înaltă calificare.

INTRODUCERE ÎN TURBO PASCAL

LIMBAJ DE NIVEL ÎNALT TURBO PASCAL

Clasificarea limbajelor de programare, fiecare dintre acestea putând fi asociată unui curs de informatică orientat pe profil, poate fi reprezentată prin următoarea diagramă:


Programarea este o ramură a informaticii a cărei sarcină este de a dezvolta software de calculator. Într-un sens restrâns, cuvântul programare se referă la procesul de dezvoltare a unui program într-un limbaj de programare specific.

La etapa inițială, programarea era operațională și în același timp procedurală, iar într-o formă deja îmbunătățită era structurală (exemplul clasic este Pascal). Programarea procedurală, în esență, se reduce la următoarele: un program este o descriere detaliată a soluției unei probleme, de exemplu. algoritm într-o notație specială. Concepte de bază – operator și date.

O direcție fundamental diferită în programare este asociată cu metodologiile (paradigmele) de programare non-procedurală. Un program orientat pe obiecte este o colecție de multe obiecte independente. Fiecare obiect poate fi folosit pentru a rezolva o problemă fără a se adânci în mecanismele interne ale funcționării acestuia. Cele mai populare limbaje de programare obiect sunt C++, Delphi, Visual Basic.

Când folosește un limbaj declarativ, programatorul specifică structurile de informații inițiale, relațiile dintre ele și ce proprietăți ar trebui să aibă rezultatul. În același timp, programatorul nu construiește o procedură pentru obținerea acesteia (un algoritm). Aceste limbi nu au conceptul de „operator” („comandă”).

Această lucrare discută programarea structurată în Pascal.

Programarea ca proces de creare a unui program constă în mod formal în alegerea unui limbaj de programare și înlocuirea elementelor diagramei algoritmului cu elementele corespunzătoare ale limbajului de programare selectat. Un program corect într-un limbaj algoritmic este o înregistrare formală a unei secvențe finite de acțiuni care conduc la rezolvarea unei probleme date.

Programul direct în codurile procesorului este o secvență de 0 și 1 instrucțiuni în limbajul mașinii, în cele mai multe cazuri, constau din două părți - un cod de operare (instruind procesorul ce trebuie să facă) și operanzi (cu ce trebuie făcută operația). .

Pentru a accelera procesul de programare, a fost dezvoltat mai întâi limbajul de asamblare, iar mai târziu limbaje de nivel înalt (inclusiv Turbo Pascal). Un program în limbaj de asamblare a început să fie scris ca o secvență de linii, fiecare dintre acestea incluzând conținutul acțiunii (numele operației) și denumirile operanzilor. Programele în limbaje de nivel înalt constau deja din operatori (comenzi integrate), fiecare dintre acestea putând corespunde mai multor operațiuni ale mașinii.



Un limbaj algoritmic de nivel înalt este un sistem de reguli pentru reprezentarea datelor și descrierea procesului de procesare a acestora.

Sistem de reguli formarea multor constructe de limbaj (cuvinte, expresii, operatori) - sintaxa limbajului.

Sistem de reguli interpretarea fără ambiguitate de către executantul programului (persoană și dispozitiv tehnic) a sensului construcțiilor sintactice ale limbajului algoritmic determină semantică.

Pentru ca un program scris într-un limbaj de nivel înalt (de exemplu, Turbo Pascal) să fie perceput și interpretat clar de procesor, acesta trebuie adus în conformitate cu sistemul său de comandă (SCS). Această funcție este realizată de un program special - un compilator.

În implementarea practică a programului dezvoltat, există motive pentru eșecul acestuia de a-l implementa cu un anumit set de date inițiale (eșecul de a realiza o finalizare eficientă a lucrării), care pot fi:


Funcția inițială

program program

Mesaje de eroare

§ Erori de sintaxă, de ex. încălcarea regulilor formale pentru scrierea unui algoritm;

§ Datele inițiale care depășesc setul permis;

§ Incoerența algoritmului cu capacitățile interpretului.

De aceea, pe lângă conversia textului programului în cod mașină, compilatorul rezolvă și o a doua problemă: detectează și semnalează erorile de sintaxă din program (o combinație nevalidă de caractere găsită în textul sursă al programului).

Generarea codului de mașină și detectarea erorilor de sintaxă nu pot indica faptul că nu există alte erori în program și că nu trebuie depanat.

În cazul în care erorile au o natură semantică (semantică), pentru a le localiza și corecta, acestea recurg la testarea programului. Testarea constă în verificarea performanței algoritmului (programului) cu astfel de valori ale datelor inițiale care ar acoperi toate modalitățile posibile de prelucrare a datelor. În practică, testarea este efectuată numai pe anumite seturi de date inițiale (final: minim și maxim, inacceptabil). Testarea poate detecta erori, dar nu dovedește absența lor completă.

Procesul de procesare a unui program în Pascal:


Proces programareîntr-un limbaj universal de nivel înalt, Pascal constă din următoarele acțiuni: introducerea și editarea textului programului, traducerea și depanarea. Pentru a îmbunătăți calitatea și viteza dezvoltării programelor, a fost creat sistemul de programare integrat Turbo Pascal, care reprezintă unitatea a două principii: un compilator și un mediu de programare - un shell de limbaj instrumental care oferă o varietate de servicii.

Pentru realizarea fiecărei etape se folosesc instrumente speciale ale mediului de programare integrat: editor de text (editor), compilator (compilator), linker (linker), debugger (debugger).

Deoarece multe programe efectuează aceleași acțiuni (intrare/ieșire de date, calculul funcțiilor matematice etc.), bibliotecile de subprograme au fost organizate atunci când algoritmii pentru aceste acțiuni sunt stocați în formă compilată în memoria computerului. Când scrieți un program, trebuie doar să indicați din ce bibliotecă ce subrutină să apelați, iar legarea programului și a bibliotecilor într-un singur întreg se face printr-un program special de linker (editor de linkuri).

MINISTERUL ŞTIINŢEI ŞI EDUCAŢIEI AL FEDERAŢIEI RUSE

STATUL KAZAN

INSTITUTUL FINANCIAR ȘI ECONOMIC

Departamentul de Matematică și Informatică Economică

Conceptul de programare. Limbaje de programare

Completat de: Molotov L.A.

Verificat: Conf. univ. Kodolova I.A.

Kazan 2010

Introducere 3

1. Bazele programării 4

1.1. Conceptul de programare 4

1.2.Paradigma de programare 5

1.3.Instrumente tehnologice de programare 8

2. Limbaje de programare 11

2.1. Conceptul de limbaj de programare 11

2.2. Clasificarea limbajelor de programare 14

2.3. Descrierea unor limbaje de programare 17

3. Limbajul de programare Java 22

3.1. Prezentare generală a limbajului Java 22

3.2.Procesul de creare a unui program Java 23

3.3. Avantajele Java 25

Concluzia 28

Lista surselor utilizate 29

Introducere

Când studiezi o materie, crezi că o știi; când poți scrie despre asta, devii mai încrezător în cunoștințele tale; Încrederea crește atunci când o poți învăța altcuiva; și complet încrezător când începeți să programați. Alan.J.Perlis

Până la mijlocul anilor '60, computerele erau mașini prea scumpe care erau folosite doar pentru sarcini specifice și executau o singură sarcină la un moment dat.

Limbajele de programare ale acestei epoci, precum computerele pe care au fost folosite, au fost concepute pentru sarcini specifice, cum ar fi calculul științific. Întrucât mașinile erau scumpe și lente, timpul computerului era, de asemenea, costisitor - astfel încât viteza de execuție a programului a fost pe primul loc.

Cu toate acestea, în anii 60, prețul computerelor a început să scadă, astfel încât și companiile mici și-au putut permite; Viteza computerelor a continuat să crească și a venit momentul în care creatorii limbajelor de programare au început să se gândească din ce în ce mai mult la comoditatea de a scrie programe, și nu doar la viteza de execuție a acestora.

În zorii computerizării, limbajul mașinii era singurul limbaj până la acea vreme omul nu mai inventase nimic. Pentru a salva programatorii de rigorile limbajului de programare al mașinii, au fost create limbaje de nivel înalt (adică limbaje non-mașină) operațiuni „mice” (atomice) efectuate direct de dispozitivele mașinii au fost combinate în „mai mari”, la nivel înalt. operațiuni și constructe întregi, cu care este mult mai ușor și mai convenabil pentru o persoană să lucreze. Așadar, programarea a făcut o descoperire colosală: noile limbaje au devenit un fel de punte de legătură între oameni și limbajul mașină al computerului.

Progresul tehnologiei informatice a determinat procesul de apariție a unor noi și diverse sisteme de semne pentru algoritmii de înregistrare (limbaje de programare) și dezvoltarea procesului de programare în ansamblu.

1. Bazele programarii

1.1. Conceptul de programare

Termen programareînseamnă procesul și arta de a crea programe de calculator folosind limbaje speciale de programare.

În sensul general al cuvântului, programare este o formalizare a unei stări predeterminate, ca răspuns la un eveniment, realizată prin intermediul matematicii sau al științelor naturii.

În sensul restrâns al cuvântului, programare este considerată ca algoritmi de codare într-un limbaj de programare dat. Într-un sens mai larg, programarea este procesul de creare a programelor, adică dezvoltarea de software.

Programarea include:

· Proiectare - dezvoltarea unui set de algoritmi

· Codare și compilare - scrierea codului sursă al unui program și convertirea acestuia în cod executabil folosind un compilator

· Testare și depanare - identificarea și eliminarea erorilor din programe

· Testarea și livrarea programelor

· Escortă

Diferite limbaje de programare acceptă diferite stiluri de programare (numite „paradigma de programare”). O parte a artei de a programa este alegerea unuia dintre limbajele care se potrivește cel mai bine problemei în cauză. Diferitele limbi necesită niveluri diferite de atenție la detalii din partea programatorului atunci când implementează un algoritm, rezultând adesea un compromis între simplitate și performanță (sau între timpul programatorului și timpul utilizatorului).

Singurul limbaj executat direct de procesor este limbajul mașină (numit și „cod mașină”). După cum am menționat deja, inițial, toți programatorii au rezolvat fiecare mic detaliu din codul mașinii, dar acum această muncă dificilă nu mai este făcută. În schimb, programatorii scriu cod sursă, iar computerul (folosind un compilator, interpret sau asamblator, despre care se va discuta mai târziu) îl traduce, în una sau mai multe etape, precizând toate detaliile, în cod mașină, gata de a fi executat pe procesor țintă. Cu toate acestea, în unele limbi, în locul codului de mașină este generat un cod binar interpretat de „mașină virtuală”, numit și cod octet. Această abordare este folosită în Forth, Lisp, Java (Capitolul 3 al rezumatului este dedicat acestui limbaj).

Acum că știm puțin despre conceptul de „programare”, putem trece la partea materială a procesului de creare a programelor. Acestea, desigur, sunt instrumente de suport tehnic (hardware) de programare - totalitatea componentelor electrice, electronice și mecanice ale sistemelor automate constituie suportul tehnic al acestora (spre deosebire de software, care este software-ul sistemelor automate). De exemplu, un computer electronic (calculator) sau computer este un set de instrumente tehnice și software bazate pe utilizarea electronicii și concepute pentru prelucrarea automată sau automată a datelor în procesul de rezolvare a problemelor informatice și de calcul.

1.2. Paradigme de programare

În centrul unui anumit limbaj de programare se află o anumită idee de ghidare care are un impact semnificativ asupra stilului programelor corespunzătoare. În funcție de scopul și/sau metoda de scriere a programelor, acestea se disting paradigme(cunoscut și ca abordări sau tehnologii)programare:

Programare structurată- metodologia de programare bazată pe o abordare sistemică a analizei, proiectării și implementării software-ului. Această metodologie s-a născut la începutul anilor 70 și s-a dovedit a fi atât de viabilă încât este încă principala într-un număr mare de proiecte. Baza acestei tehnologii este următoarea:

· O sarcină complexă este împărțită în sarcini mai mici, mai bine gestionate din punct de vedere funcțional. Fiecare sarcină are o intrare și o ieșire. În acest caz, fluxul de control al programului constă dintr-un set de subsarcini elementare cu un scop funcțional clar.

· Simplitatea structurilor de control utilizate în sarcină. Această prevedere înseamnă că, în mod logic, sarcina ar trebui să constea într-un set minim, complet funcțional, de structuri de control destul de simple. Un exemplu de astfel de sistem este algebra logicii, în care fiecare funcție poate fi exprimată printr-un sistem complet funcțional: disjuncție, conjuncție și negație.

· Dezvoltarea programului ar trebui să fie realizată în etape. La fiecare etapă, un număr limitat de sarcini clar definite trebuie rezolvate cu o înțelegere clară a semnificației și rolului lor în contextul întregii sarcini. Dacă nu se realizează o astfel de înțelegere, aceasta indică faptul că această etapă este prea mare și trebuie împărțită în pași mai elementari.

Concept de programare modulară. La fel ca pentru tehnologia de programare structurată, conceptul de programare modulară poate fi formulat sub forma mai multor concepte și prevederi:

· Descompunerea funcțională a unei sarcini - împărțirea unei sarcini mari într-un număr de subsarcini mai mici, independente funcțional - module. Modulele sunt interconectate numai prin date de intrare și de ieșire.

· Modulul stă la baza conceptului de programare modulară. Fiecare modul dintr-o descompunere funcțională este o „cutie neagră” cu o intrare și o ieșire. Abordarea modulară face posibilă modernizarea fără durere a programului în timpul funcționării sale și facilitează întreținerea acestuia. În plus, abordarea modulară vă permite să dezvoltați părți ale programelor unui proiect în diferite limbaje de programare și apoi să utilizați instrumente de ambalare pentru a le combina într-un singur modul încărcat.

· Soluțiile implementate ar trebui să fie simple și clare. Dacă scopul modulului nu este clar, aceasta indică faptul că descompunerea sarcinii inițiale sau intermediare nu a fost efectuată cu o calitate suficientă. În acest caz, este necesar să analizați din nou sarcina și, eventual, să efectuați o împărțire suplimentară în subsarcini. Dacă există locuri complexe în proiect, acestea trebuie să fie documentate mai detaliat folosind un sistem de comentarii bine gândit. Acest proces ar trebui continuat până când obțineți cu adevărat o înțelegere clară a scopului tuturor modulelor sarcinii și a combinației optime a acestora.

· Scopul tuturor variabilelor modulului trebuie descris folosind comentarii pe măsură ce sunt definite.

Programare orientată pe obiecte (OOP). Ideea OOP este dorința de a conecta datele cu procedurile care procesează aceste date într-un singur întreg - un obiect. OOP se bazează pe trei principii importante care conferă obiectelor noi proprietăți. Aceste principii sunt încapsularea, moștenirea și polimorfismul.

· Încapsulare - combinând datele și algoritmii pentru procesarea acestor date într-un singur întreg. În OOP, datele sunt numite câmpuri obiect, iar algoritmii sunt numiți metode obiect.

· Moștenirea este capacitatea obiectelor de a-și genera descendenți. Un obiect copil moștenește automat toate câmpurile și metodele de la părinți, poate suplimenta obiectele cu câmpuri noi și poate înlocui (înlocui) metodele părinte sau le poate completa.