Mașini tind să lucreze notație v_dvoichnoy, limba na_mashinnom i_programmy este scris folosind doar două simboluri: zero, i_edinitsy. Cu toate acestea, programatorii în curând a inventat un oblegchenie_- scris ne_v_dvoichnoy notație programului a_v_vosmerichnoy, a_perevod iz_vosmerichnoy v_dvoichnuyu foarte prost_- fiecare cifră octal se înlocuiește binar na_tri. De exemplu, (507) 8 = (101_000_111) 2. Programul V_mashinu a fost introdus încă i_blagodarya v_dvoichnom ca acest lucru ar putea fi perceput direct i_vypolnyatsya echipamente de mașină.
Programul în limba mașinii are forma unui tabel cu cifre, fiecare linie corespunde unui singur operator - instrucțiunea mașinii, care este ordinea mașinii de a efectua anumite acțiuni. În acest caz, de exemplu, primele cifre din comanda sunt codul de operare, adică le spun aparatului ce trebuie să facă (adăugați, înmulțiți etc.), iar cifrele rămase indică datele prelucrate sau exact unde sunt numerele necesare în memoria aparatului (summuri, factori etc.) și unde este necesar să ne amintim rezultatul operației (suma, produsul, etc.).
De exemplu, comanda de adăugare pentru computerul BESM-2 a arătat astfel: 01 0070 0071 0072.
Primele două cifre 01 reprezintă codul pentru operația de adăugare. Printr-o astfel de comandă a mașinii pentru a adăuga numerele memorate în celula de memorie cu numărul 0070, numărul de celule cu numărul 0071. Rezultatul înregistrat în celula cu celule numărul 0072. Non în echipă pot coincide. Dacă înainte de executarea comenzii 01 0073 0074 0073 0074 record în numărul de celule 1, numărul din celula 0073 este crescut cu unu, iar după rularea numărul 01 0075 0075 0075 0075 în celula sa se dubleze.
Compilarea programelor în limbajul mașinii este o muncă foarte tare și dureroasă, necesitând o atenție extraordinară și o înaltă calificare a programatorului. Pentru a facilita și a îmbunătăți productivitatea muncii sale, s-au dezvoltat limbi de programare, asemănătoare limbii familiare a formulelor matematice.
Limba de programare este definită de trei componente: alfabet, sintaxă și semantică.
Alphabet - un set de caractere distincte: litere, numere, semne speciale etc.
De exemplu, alfabetul limbaj mașină format din două simboluri: 0 și 1, iar în cazul în care programul este scris într-un sistem numeric octal, opt caractere: 0, 1, 2, 3, 4, 5, 6 și 7.
Alfabetul uneia dintre limbile de programare populare anterior - FORTRAN (FORTRAN - scurt pentru FORMULAL TRANSLATOR, adică un translator de formulare) conține astfel de simboluri:
- douăzeci și șase de majuscule ale alfabetului latin: A, B, C, ..., Z;
- zece cifre arabe: 0, 1, 2, ..., 9 (cifra 0 a fost, de obicei, traversată pentru al distinge de litera O);
- caractere speciale: "" (martor) "=" (pentru operatorul de atribuire), "+" (pentru operațiunile de plus), "-" (de scădere), "*" (pentru multiplicare), "*" ( pentru exponentiation operare) „/“ (pentru operația divizare), „(“ și „)“ (pentru a schimba ordinea calculelor pentru funcțiile de înregistrare et al.) „“ (utilizat ca marcă de separare cu transferuri), " . „(separarea întreagă a zecimală a mai zecimal de obicei)“ ' „(apostrof este folosit pentru imprimarea de text),«¤»(semn deasupra capului pentru a desemna miolo- monetară înlocuit uneori cu semnul dolarului "$" sau cu rombul "◊").
Sintaxa într-un limbaj de programare este un set de reguli pentru formarea constructurilor de limbaj din simbolurile definite de alfabet. De exemplu, o formă de regulă una din Fortran design - ID-ul, sau doar numele, este după cum urmează: identificator - o secvență de unul până la șase litere sau cifre, începând întotdeauna cu o literă. Exemple de identificatori:
A A 12345 ALFA I 1067890 INDEX
Semantica în limbajul de programare este setul de reguli pentru interpretarea constructurilor de limbaj formate în conformitate cu sintaxa.
De exemplu, regulile pentru interpretarea identificatorului variabil în FORTRAN sunt următoarele:
- identificatorul specifică locația din memoria mașinii alocată pentru stocarea valorii curente a variabilei;
- Prima literă a identificatorului indică tipul informațiilor stocate în locul specificat: dacă identificatorul începe cu una dintre literele I, J, K, L, M sau N, atunci variabila poate lua doar valori întregi.
Majoritatea limbajelor de programare dezvoltate până în prezent sunt coerente. Programele scrise pe ele sunt o serie de ordine (instrucțiuni, operatori). Acești operatori sunt procesați secvențial unul câte unul prin mașină în codul mașinii, cu ajutorul așa-numitelor compilatoare. De obicei, compilatorul este un program destul de mare în limba mașinii, care înlocuiește fiecare operator de limbaj de programare cu un grup corespunzător de instrucțiuni de mașină.
Ca urmare a utilizării limbajelor de programare, munca programatorului a devenit mult mai ușoară, există posibilitatea de a crea programe tot mai complexe. Utilizarea acestora necesită din ce în ce mai multă putere de calculator, ceea ce duce la necesitatea progresului tehnologic în domeniul microelectronicii.
Există limbi de programare de nivel scăzut și înalt.
Limbile de nivel scăzut depind în mare măsură de organizarea și funcționarea mașinii, deci sunt numite limbi orientate spre mașină sau orientate spre mașină. Acestea includ autocode, asamblori și limbi de mașină. Spre deosebire de mașină, codurile automate și asamblatorii permit utilizarea notațiilor condiționale (mnemonice), care sunt traduse de traducători în comenzile acestui procesor.
Limbile de nivel înalt sau limbile independente de mașină nu au nicio legătură cu designul unui anumit computer. Programele scrise în astfel de limbi au o viziune vizuală apropiată de limba matematică, permit utilizarea expresiilor, denumirilor simbolice pentru variabile și funcții.
Limbile de programare existente diferă între ele cu tipurile de date permise, precum și cu tipurile de operații și instrumente care controlează succesiunea aplicării operațiilor la date. Datele sunt o componentă pasivă - sunt informații stocate în memoria aparatului. Componenta activă - operațiuni - vă permite să creați, să distrugeți și să convertiți datele. Comenzile conectează datele și operațiile astfel încât fiecare operație să fie aplicată datelor relevante la momentul potrivit.
Dezvoltarea ulterioară a tehnologiei informatice implică în mod inevitabil dezvoltarea și îmbunătățirea limbajelor de programare. Performanța computerelor este îmbunătățită prin executarea simultană (simultană) a operațiilor, iar majoritatea limbajelor de programare existente sunt concepute pentru execuția secvențială a operațiilor. Prin urmare, viitorul pare să se afle în spatele acestor limbi de programare care vor permite descrierea sarcinii în sine, mai degrabă decât a secvenței de execuție a operatorilor. Succesiunea trebuie să fie generată de mașina în sine în procesul de rezolvare a problemei.