Documente Academic
Documente Profesional
Documente Cultură
4 Informatică
pg. 90
Tipuri de limbaje de programare. Clasificare.
Un limbaj de programare este un sistem de convenţii adoptate pentru realizarea unei comunicări –
între programator şi calculator . Limbajele folosite pentru programarea unui calculator sunt extrem de
asemănătoare limbajelor naturale . Ele sunt compuse din :
- cuvinte (rezervate) ;
- punctuaţie ;
- propoziţii şi fraze ;
- reguli sintactice etc .
Aşa cum pentru însuşirea unei limbi străine trebuie învăţate cuvintele acesteia şi regulile cu care
pot fi manevrate tot aşa pentru însuşirea unui limbaj de programare trebuie studiate cuvintele şi
semnele care îl compun împreună cu regulile de manevrare a lor.
După metoda cu care este conceput ansamblu comunicării , limbajele pot fi clasificate în
mai multe moduri . În continuare voi enumera cele mai importante clase de limbaje , descriere ce
acoperă totalitatea limbajelor existente .
“ Nivelul “ unui limbaj este apreciat prin poziţia pe care o ocupă pe scara constituită de limbajul
recunoscut de microprocesor ( limbaj maşină ) şi limbajul natural al programatorului( limba română ,
limba engleză …).
Un limbaj de nivel scăzut este foarte apropiat de maşină , el manipulează cu elemente de nivel
hardware , fizic , cum ar fi : registru , microprocesor , locaţie de memorie , port de intrare / ieşire etc.
Un limbaj de nivel înalt sau foarte înalt manipulează cu concepte apropiate de limbajul natural ,
concepte de nivel logic , cum ar fi : colecţie de date , nume de operaţie ( sort , writeln , open ) ,
variabile , constante ( asemănătoare ca înţeles cu cele din matematică).
pg. 91
Cu ajutorul unui limbaj de nivel înalt programatorul se face mult mai uşor înţeles de către
calculator . Uneori o singură limie de program scrisă cu un astfel de limbaj poate echivala cu sute de
linii de program scrise în limbaj maşină . Deci din punct de vedere al reducerii timpului de realizare a
unui program şi al siguranţei în funcţionare ( absenţa erorilor de programare ) este de preferat un limbaj
de nivel cât mai ridicat ( înalt sau foarte înalt ) .În schimb , pe măsură ce limbajul are un nivel mai
ridicat execuţia programului conceput cu ajutorul său va fi mai lentă , decât a unui program ce
realizează aceleaşi operaţii dar este scris în limbaj de asamblare .
O altă diferenţă esenţială între cele două tipuri de limbaje o reprezintă portabilitatea , adică
posibilitatea transferării programelor pe un alt tip de maşină decât cea pe care au fost construite . Din
acest punct de vedere limbajul de asamblare este neportabil deoarece el este specific
microprocesorului . Programele realizate pe un tip de maşină trebuie rescrise integral pentru noul tip de
maşină , folosind un nou set de instrucţiuni – care deobicei diferă foarte mult . Lucrurile stau altfel cu
programele concepute cu ajutorul unui limbaj de nivel înalt , deoarece acestea sunt detaşate de maşină .
Între un astfel de program şi calculator se interpune compilatorul ( sau interpretorul ) care rezolvă
corect transformarea fişierului-sursă în fişier-executabil .
program robo;
uses crt;
pg. 94
var c:char;
procedure sens1;
begin
clrscr;
gotoxy(15,15);write('sens1');
port[$378]:=2;
end;
procedure sens2;
begin
clrscr;
gotoxy(15,15);write('sens2');
port[$378]:=7;
end;
procedure stop;
pg. 95
begin
clrscr;
textcolor(5);
gotoxy(15,15);write('S T O P');
textcolor(7);
port[$378]:=12;
end;
begin
clrscr;
REPEAT
c:=readkey;
case c of
'a': sens1;
's': stop;
pg. 96
'd': sens2;
end;
UNTIL c='q';
port[$378]:=12;
end.
program microcontroler;
var k:byte;
procedure mcc1_s;
begin
portc:=16;
end;
procedure mcc1_d;
begin
portc:=32;
end;
procedure mcc2_s;
begin
pg. 97
portc:=64;
end;
procedure mcc2_d;
begin
portc:=128;
end;
begin
k:=0;
k:=portD;
et1:
portc:=0;
repeat
begin
k:=portD;
if k=1 then
begin
mcc1_s;
delay_ms(500);
end;
if k=2 then
pg. 98
begin
mcc1_d;
delay_ms(500);
end;
if k=4 then
begin
mcc2_s;
delay_ms(500);
end;
if k=8 then
begin
mcc2_d;
delay_ms(500);
if k=5 then
begin
mcc2_s;
mcc1_s;
end;
if k=9 then
begin
mcc2_d;
mcc1_s;
pg. 99
end;
if k=6 then
begin
mcc2_s;
mcc1_d;
end;
if k=10 then
begin
mcc2_d;
mcc1_d;
end;
end;
end;
; Info: http://www.mikroe.com
; ----------------------------------------------
pg. 100
$0000 $2804 GOTO _main
$00BF $ _mcc1_s:
;dorulet.ppas,7 :: begin
;dorulet.ppas,8 :: portc:=16;
$00C3 $ dorulet_L_0:
;dorulet.ppas,9 :: end;
$00BA $ _mcc1_d:
;dorulet.ppas,12 :: begin
;dorulet.ppas,13 :: portc:=32;
$00BE $ dorulet_L_1:
;dorulet.ppas,14 :: end;
$00C9 $ _mcc2_s:
pg. 101
;dorulet.ppas,17 :: begin
;dorulet.ppas,18 :: portc:=64;
$00CD $ dorulet_L_2:
;dorulet.ppas,19 :: end;
$00C4 $ _mcc2_d:
;dorulet.ppas,22 :: begin
;dorulet.ppas,23 :: portc:=128;
$00C8 $ dorulet_L_3:
;dorulet.ppas,24 :: end;
$0004 $ _main:
;dorulet.ppas,26 :: begin
;dorulet.ppas,30 :: k:=0;
;dorulet.ppas,31 :: k:=portD;
;dorulet.ppas,33 :: et1:
$000D $ _main_et1:
;dorulet.ppas,34 :: portc:=0;
;dorulet.ppas,35 :: repeat
$000E $ dorulet_L_5:
;dorulet.ppas,37 :: k:=portD;
$0014 $ dorulet_L_10:
;dorulet.ppas,41 :: mcc1_s;
;dorulet.ppas,42 :: delay_ms(500);
;dorulet.ppas,43 :: end;
$0034 $ dorulet_L_11:
$0034 $ dorulet_L_12:
$0038 $ dorulet_L_13:
;dorulet.ppas,47 :: mcc1_d;
;dorulet.ppas,48 :: delay_ms(500);
;dorulet.ppas,49 :: end;
$0058 $ dorulet_L_14:
$0058 $ dorulet_L_15:
$005C $ dorulet_L_16:
;dorulet.ppas,53 :: mcc2_s;
;dorulet.ppas,54 :: delay_ms(500);
;dorulet.ppas,55 :: end;
$007C $ dorulet_L_17:
$007C $ dorulet_L_18:
$0080 $ dorulet_L_19:
;dorulet.ppas,58 :: mcc2_d;
;dorulet.ppas,59 :: delay_ms(500);
$00A4 $ dorulet_L_22:
;dorulet.ppas,63 :: mcc2_s;
;dorulet.ppas,65 :: end;
$00A6 $ dorulet_L_23:
$00A6 $ dorulet_L_24:
$00AA$ dorulet_L_25:
;dorulet.ppas,69 :: mcc2_d;
;dorulet.ppas,70 :: mcc1_s;
;dorulet.ppas,71 :: end;
$00AC $ dorulet_L_26:
$00AC $ dorulet_L_27:
$00AD$3A06 XORLW 6
$00B0 $ dorulet_L_28:
;dorulet.ppas,74 :: mcc2_s;
;dorulet.ppas,75 :: mcc1_d;
;dorulet.ppas,76 :: end;
$00B2 $ dorulet_L_29:
$00B2 $ dorulet_L_30:
$00B6 $ dorulet_L_31:
;dorulet.ppas,79 :: mcc2_d;
;dorulet.ppas,80 :: mcc1_d;
;dorulet.ppas,81 :: end;
$00B8 $ dorulet_L_32:
$00B8 $ dorulet_L_33:
pg. 113
;dorulet.ppas,82 :: end;
$00B8 $ dorulet_L_20:
$00B8 $ dorulet_L_21:
$00B8 $ dorulet_L_6:
$00B8 $ dorulet_L_8:
;dorulet.ppas,85 :: end.
pg. 114