Privire de ansamblu de limbaje de programare
Un program de calculator este o secvență ordonată logic de comenzi concepute TION pentru a controla computerul. procesor de calculator - acest LSI. Toate datele și comenzile pe care le primește în formă de semnale electrice. Semnalul binar prezență este descris de conceptul de „1“ și lipsa ei - conceptul de „O“. Comenzile sunt procesate de către un procesor, poate fi interpretat ca o serie de alternante un anumit mod de unu și zero, adică, orice comandă este convertit într-un număr binar. Astfel, procesorul execută programul, care reprezintă o secvență de numere și numit cod mașină.
Astăzi, aproape toate programele sunt create folosind programarea Yazi-ing. Teoretic, un program poate fi scris într-un limbaj natural (să zicem, programare meta-limbaj), dar din cauza ambiguității limbajului natural în mod automat reefectuată un astfel de program în cod mașină nu este încă posibilă.
Limbile de programare sunt formale artificiale Yazi-ki. Ca limbi naturale, acestea au alfabetul, vocabularul, gramatica si sintaxa si semantica.
Alfabet - a permis să folosească un set de caractere cu care pot fi formate de cuvinte, iar amploarea unui anumit limbaj.
Vocabular de o limbă sau de vocabular - un set de folosit pentru al cuvintelor, și anume, cuvinte corecte de o anumită limbă.
Gramatica - un set finit de reguli care definesc limba.
Gramatica definește metode pentru construirea modificări și combinații de cuvinte.
Sintaxa - unui sistem de reguli care definesc intercepteze validă de programare limba ruktsii din literele alfabetului.
Semantica - un sistem de norme de interpretare fără echivoc a fiecărei limbi de construcție, care să permită ca procesul de date obrabot-ki.
Interacțiunea reguli sintactice și semantice definite fisionabil conceptele de bază ale limbajului, cum ar fi declarații de identificare, constante, tori variabile, funcții, proceduri, etc. Spre deosebire de limbaj de programare naturală are un vocabular limitat (operatori) și regulile stricte de scriere a acestora, precum și regulile de Gram-Matic și semantică, precum și pentru orice limbaj formal formulat în mod clar și fără ambiguități în mod clar.
limbaje de programare, orientate la instrucțiunile procesorului și să țină seama de caracteristicile sale, se numește limbaje de nivel scăzut. „Nivel scăzut“ nu înseamnă subdezvoltată, ceea ce înseamnă că operatorii de limbă aproape de cod mașină și Vanir orientat spre instrucțiuni CPU specifice.
Limbajul este cel mai scăzut nivel de asamblare. Un program scris pe ea, este o secvență de instrucțiuni de cod mașină, dar a înregistrat cu referinte caracter. Cu ajutorul unui nivel scăzut de limbi sunt cel mai bun program compact, astfel încât programator are acces la orice posibilitate de procesor. Pe de altă parte, este nevoie de o bună înțelegere a dispozitivului de calculator și utilizarea unor astfel de programe, suntem pe un computer cu un procesor de alt tip nu este posibilă. Aceste limbaje de programare sunt utilizate pentru scrierea cererilor de sistem mici, drivere de dispozitiv, de andocare modulul cu echipamentul original atunci când important compact, cu acțiune rapidă, acces direct la resursele hardware.
Limbaje de programare, cum ar fi naturale, au marit orientate echipa „persoană“ se numește limbaj de nivel înalt. Cu cat mai mare nivel de limbaj, cu cât structurile de date și construcțiile utilizate în cadrul programelor, UI, la conceptele problemei inițiale. Caracteristici specifice comp arhitecturi yuternyh nu sunt numărate, astfel încât programele originale tech-iști ușor portabile pentru alte platforme, cu traducători ai acestei limbi. Dezvoltarea de programe în limbaje de nivel înalt, cu ajutorul unor comenzi clare și puternice mult mai ușor; numărul de erori în procesul de programare, mult mai puțin. În prezent, există mai multe sute dintre aceste limbi (excluzând dialecte).
Astfel, limbajele de programare de nivel înalt, orientate spre soluția de aplicații de conținut mari sunt independente de dispozitiv și necesită utilizarea programului software de traducere corespunzătoare pentru transformarea textului în cod mașină, care este în cele din urmă procesate de procesor.
limbaj de nivel înalt „de neînțeles“ computer-, prin urmare, există programe speciale-traducători care transformă-operă Tori limbaj de nivel înalt în cod mașină.
Există două tipuri de programe de traducători: compilator și-terpretator.
Compilatorul lucrează direct cu toate modulul inițial, formularul-Rui pe modul său de încărcare de bază, t. E. Fișierul executabil, du-te-tovy pentru a rula pe computer. Programul ca modul zagruzoch-TION executat, indiferent de modul de sursă.
Interpretul operează cu modulul de sursă de pași. El doar-Bireh (interpretat) fiecare modul de sursă de operator și te-umple. În modul de interpretare mai ușor de programe de depanare lea, dar programul se execută mult mai lent decât programul skom-pilirovannaya.
Un pas important pentru a reduce complexitatea de a crea programe cu o calitate îmbunătățită, fiabilitate, și posibilitatea utilizării pe o scară de masă a fost structurată de programare. Principiile sale de bază sunt după cum urmează:
Programarea Downward se bazează pe un sub-curs ierarhic la rezolvarea problemelor și este utilizat în etapa inițială a procesului de dezvoltare de rezolvare a problemei. În acest caz, este un model de obiect ierarhic, funcția selectată, nivelul de detaliere.
Modelul ierarhic se bazează pe următoarele reguli:
- fiecare modul poate fi asociat cu un singur modul de nivel superior și module multiple de nivel inferior;
- pentru fiecare nivel inferior modul are acces la modulul de nivel superior;
- Comunicarea între modulele aranjate în jos;
- face apel la un singur modul, probabil, de mai multe ori, în timp ce el este portretizat o dată și executat ca o subrutină.
Programarea modulară necesită o programare independentă a fiecărei unități, pornind de la nivelul superior al ierarhiei. Atunci când o viespe-schestvlenii module de testare la nivel de vârf în modulele de nivel inferior sunt plasate „capac“, de multe ori sub forma unor declarații de imprimare. Modulele sunt adăugate unul câte unul. După încheierea dezvoltării fiecărui modul este testat întregul complex ca întreg.
Programarea modulară permite a scăzut considerabil tit-timp necesară pentru programele de depanare.
Programarea structurată - Programarea este procesul-TION pe limba algoritmică cu ajutorul unor structuri. Acesta ar trebui să respecte următoarele reguli:
- orice program compilat pe baza algoritmului de bază-ically trei tipuri de structuri: liniar, ramificat, ciclic-agenție;
- între aceste structuri este reportată numai transferul controlului - de la un nivel superior la o ierarhie inferioară;
- Nu utilizați niciodată un tranziții de comandă «GOTO». Programarea structurată este folosit în principal pentru module individuale de programare.
Controlul structural este utilizat în a face cu aplicații complexe cu mai multe module. specialiștii grupului oferă angajaților materiale de lucru Xia dezvoltate de sarcina, ei discuta și de a face comentarii pe care dezvoltatorii trebuie să pună în aplicare.
Proprietățile limbaje de programare:
Comprehensibilitatea (lizibilitate) limba construiește - această proprietate oferă o percepție ușoară a programului.
Sub fiabilitatea se referă la gradul de detectare automată a erorilor, care poate fi făcută de către traducător sau un mediu de operare în care programul este executat.
Flexibilitatea unui limbaj de programare se manifestă în modul în care de multe caracteristici oferă programator pentru a exprima toate operațiunile necesare în program, nu-l obligă să recurgă la codul de asamblare, sau introduce o varietate de trucuri.
Simplitatea limbajului oferă ușurința de a înțelege semantica constructe lingvistice și amintindu-sintaxa lor.
Limbajul trebuie să conțină următoarea structură de date, structurile de control și a operațiunilor, și au, de asemenea, o astfel de sintaxă, care ar permite să reflecte structura logică a programului, algoritmul de bază pus în aplicare.
Limba-independentă de hardware, oferă posibilitatea de a transfera programe de la o platformă la alta cu relativă ușurință. Acest lucru vă permite să distribuiți costul ridicat al software-ului pe un număr de platforme.
Costul total al folosind un limbaj de programare este alcătuit din mai multe componente. Acesta include:
• Costul de instruire lingvistică;
• costurile de creare a programului;
• Costul de traducere a programului;
• Costul programului;
• costul menținerii programului.
limbaje de programare și limbaje algoritmice sunt clasificate. în funcție de gradul de dependență a acestora pe calculator; orientarea pe sfera de aplicare; pe specificul structurii organizatorice a constructe lingvistice, și altele asemenea (Fig. 6.1)

Fig. 6.1. Clasificarea limbaje de programare
Orice sistem de notare, și a fost de acord cu sistemul său de concepte care pot fi folosite pentru a descrie algoritmi si structuri de date, o primă aproximare poate fi considerată ca un limbaj de programare.
Cunoașterea bazele conceptuale de limbaje de programare în ceea ce privește utilizarea și vânzarea de construcții ale limbajului de bază permit:
- mai rezonabil de a alege un limbaj de programare pentru un proiect specific;
- dezvolta algoritmi mai eficiente;
- reface în mod sistematic un set de constructe lingvistice utile;
- accelera învățarea unor noi limbaje de programare;
- utiliza aceste cunoștințe ca bază metodologică pentru dezvoltarea de noi limbaje de programare;
- obține cunoștințele de bază necesare pentru dezvoltarea compilatoare pentru limbaje de programare și suportă o varietate de modele de calcul.
Toate aceste limbi sunt, de asemenea, numite și formale. Suntem cel mai interesat în limbile algoritmică, care includ toate limbajele de programare cunoscute.
Pentru a rezolva problema pe un algoritm de calculator se face, cu condiția ca toate acțiunile necesare pentru a obține rezultatele dorite. Acest algoritm este descris prin intermediul limbii oficiale de înțeles de către un computer - limbaj de programare.
Aceste instrumente includ elementele de limbaj - litere, cifre, caractere speciale, precum și regulile de declarații pentru a descrie acțiunea de intrare - ieșire și de alocare de memorie, gestionarea ramificare și looping, trimiterile la dispozitive externe, de monitorizare și depanare a fragmentelor individuale și a programului în ansamblu , documentele de ieșire și așa mai departe. Fiecare computer are propriul limbaj cod de comandă numit mașină. care asigură o aplicare directă a oricărei secvențe de operații de mașini. Practic calculatorul execută programul înregistrat numai în limbaj mașină. Cu toate acestea, cu ajutorul unor fonduri suplimentare (programe software) sunt puse în aplicare Traducere multi-level (traducere) de texte de programe cu diferite limbaje de programare într-un limbaj de calculator. Aceste limbaje de programare, spre deosebire de un aparat numit limbaj de nivel înalt, ele nu sunt foarte dependente de configurația particulară a computerului special, că este, aceste limbi sunt mașini independente.
În limbajul simbolic de codificare (NC), în contrast cu mașina, codurile digitale sunt înlocuite cu denumiri alfabetice sau alfanumerice (mnemonice). Acest lucru facilitează lucrările programului, și vă permite să automatizeze acțiuni asociate cu plasarea codului și a datelor într-o memorie de calculator. Fiecare echipă de limbă coduri simbolice în traducerea corespunde o singură comandă mașină. Aceste limbi sunt numite mnemonic sau limbaj de asamblare.
Limba de un nivel mai ridicat - limba macro - include, în plus față de instrucțiunile mașinii mnemonice de macro-uri specifice, care sunt înlocuite în instrucțiunile de limbă grupuri de traducere automată (program). Acest lucru reduce intrarea programelor originale și de a simplifica programarea, deoarece exclude înregistrarea unităților frecvent repetate ale programului. În prezent, toate tipurile de limbaje de asamblare permite utilizarea macromedia, adică ele sunt asamblorii macro.
limbaje orientate-mașină conține toate instrumentele necesare pentru programarea oricăror probleme. Cu toate acestea, ele sunt utilizate atunci când doriți să creați un program foarte rapid, cu utilizarea de memorie minimă. În special, în aceste limbi a scrie de gestionare a dispozitivelor programe de calculator și date de pre-procesare.
Cele mai multe dintre problemele de producție sunt rezolvate cu ajutorul unor programe scrise în procedură - limbaje orientate. Mijloace de aceste limbi oferă cel mai ușor pentru a descrie piese comune de acțiune în sarcinile lor respective. limbaje procedurale implică cunoașterea unui utilizator în domeniul tehnicilor matematice (numerice) și elementele de bază ale algoritmice (limba de baza pentru FORTRAN științifice și calcule tehnice, de bază (calculatoare personale - de bază), PASCAL moderne).
În dezvoltarea unui multifuncțional (universal), limbaje de programare, care integrează activele fixe și capacitatea multor procedural - limbaje orientate, cum ar fi PL / 1 -ispolzuemy soluții pentru sarcini de procesare a informațiilor economice și științifice și tehnice, activități de gestionare a obiectelor, etc.; Ada - un limbaj standard de multi-scop, care poate înlocui o varietate de alte limbi și pentru o perioadă lungă de timp pentru a asigura dezvoltarea și îmbunătățirea programelor de protecție socială; Modulul Language - combină instrumente și funcții. limbaje orientate - orientate spre mașină și; procedural Acesta include mijloace pentru rutine de gestionare a dispozitivului de scriere, de control al fluxului de mesaje, care este utilizat în mod tradițional limbi, cum ar fi limbajul de asamblare.
Pentru utilizatorii care nu au o pregătire specială, dar care au nevoie de utilizarea operațională a calculatoarelor pentru rezolvarea problemelor stereotipe, a dezvoltat o problemă specială - limbaje orientate (non-procedurală), care nu necesită o evidență detaliată a algoritmului pentru rezolvarea problemei. Într-o limbă să formuleze doar problema și conturarea secvența subactivități de la o presetare care indică datele inițiale și formează documentele necesare. Fonduri program special generatoare de blocuri gata făcute genera automat un program pentru a rezolva problema. Aceste limbi sunt încă nivel mai ridicat, și anume scoase din mașină mai mult de limbi orientate spre procedură. Acestea includ limbile străine pentru specificarea și procesarea tabelelor de date în rezolvarea problemelor economice, precum și complexe de limbaje de modelare sisteme Simula, NEDIS și alte (SIMSKRIPT).
Granița dintre problema - și procedural - limbaje orientate nu sunt delimitate foarte clar (condiționat) - LISP, Prolog.