You are on page 1of 11

Generaliti privind limbajele de programare Introducere

Noiunea de limbaj: este definit ca un sistem pentru comunicare. Limbajele scrise folosesc simboluri (care sunt caractere) pentru a construi cuvinte. ntreg setul de cuvinte formeaz vocabularul limbajului. Modul n care cuvintele pot fi combinate pentru a fi nelese este definit de sintaxa i gramatica limbajului. Sensul dat de cuvinte sau combinaii de cuvinte este definit de semantica limbajului. n domeniul computerelor limbajele umane sunt denumite limbaje naturale. !in nefericire computerele nu sunt de ajuns de sofisticate pentru a nelege limbajele naturale. "rin urmare comunicarea cu computerele se face prin intermediul unor limbaje specifice computerelor denumite limbaje de programre. Noiunea de limbaj de programare: este definit ca fiind ansamblul format de un vocabular #i un set de reguli gramaticale necesar instruirii unui computer pentru a realiza anumite activiti. !up modul cum au evoluat n timp limbajele de programare pot fi$ limbaje de prima generaie$ limbajul ma#in (mac%ine language)& limbaje de generaia a doua$ limbajul de asamblare (assembl' language)& limbaje de generaia a treia$ limbajele de nalt nivel (%ig%(level programming languages)& limbaje de generaia a patra$ limbaje mai apropiate de limbajul uman dec)t limbajele de nalt nivel (e*. de comand$ +,-! .LL /012/!S 340/0 -.M0 ,S 5SM,645 ) n figura de mai jos sunt prezentate primele trei generaii de limbaje de programare #i modul cum interacioneaz acestea cu computerul.

Limbajul main
1)nd un computer urmeaz instruciunile unui program se spune c programul este n e*ecuie (running). nainte de a fi e*ecutat programul trebuie s fir rezident n memorie. .dic programul trebuie s ocupe un set de b'tes consecutivi n memorie. 6otodat programul trebuie scris ntr(un limbaj ma#in intern. +iecare tip de procesor are propriul limbaj ma#in. .cesta este conceptul de baz cu privire la modul de e*ecuie a unui program. +aptul c programul ce se e*ecut este stocat (c%iar #i parial) n memoria principal (/.M) duce la concluzia c numai prin sc%imbarea programului din memoria /.M computerul poate trece la e*ecuia altui proces (tas7)8program. .#a cum s(a prezentat mai sus toate computerele au un limbaj ma#in intern (specific tipului de procesor). .cest limbaj este codat ntr(o reprezentare binar #i este foarte greoi (plictisitor) de utilizat pentru scrierea unui program. Majoritatea instruciunilor programului vor conine astfel dou pri$ o parte care se refer la operaia de codare 9 se vor indica ordinea operaiilor& o parte care se refer la adresa din meorie ( indic locaia de memorie ce se va utiliza ca operand al instruciunii. operation code :::;:;:; :::;:;;; :::;:;;: address ;:;::::; ;:;:::;: ;:;:::;; meaning load c(;<=) into accumulator add c(;>:) to accumulator store c(accumulator) in location ;>;

.stfel programatorii care utilizeaz limbajul ma#in vor trebuie s fie ateni n ce zone de memorie se vor stoca date #i n ce zone de memorie se vor e*ecuta programele (instruciunile). .stfel pot

aprea erori de programare datorate suprapunerii scrierii instruciunilor peste date. "rin urmare programarea n limbaj ma#in presupune o bun capacitate de a interpreta datele #i instruciunile la nivel de bit. 6otodat aceasta reprezint si posibilitatea de a se genera alte programe #i de a le e*ecuta. 1oncluzii$ este limbajul pe care computerul l nelege n mod direct& n limbajul ma#in programele se scriu n cod binar$ succesiuni de : #i ;& fiecare instruciune din limbajul ma#in este o combinaie de ? bits (L2.!(::::&.!!(:::;)& programatorul trebuie s cunoasc detaliat structura %ard@are a computerului& programatorul trebuie s gestioneze fr gre#eal alocarea adreselor de memorie pentru un program& pot aprea multe erori datorit$ concepiei programului sinta*ei suprapunerii adreselor de memorie etc.

Limbajul de asamblare
.tenia necesar evitrii ocuprii acelora#i adrese de memorie este foarte solicitant (greoaie) n programarea n limbaj ma#in. .stfel dac programatorul modific un program #i decide s mai introduc ceva atunci toate celelalte adrese de memorie utilizate p)n atunci se vor sc%imba #i trebuie s e*amineze ntregul program din nou #i s decid iar#i cu privire la modul cum va aloca memoria datelor #i instruciunilor. .stfel au aprut ncep)nd cu ;=A: limbajele de asamblare care sunt forme mai prietenoase ale limbajului ma#in. .stfel comenzile limbajului ma#in au fot nlocuite de comenzi mnemonice (gestioneaz memoriaBBB 9 nu e foarte ortodo*). .stfel limbajul de asamblare are grij s converteasc comenzile mnemonice n comenzile corespunztoare limbajului ma#in. "rogramatorul poate folosi adrese simbolice pentru reprezentarea datelor. .cest limbaj va atribui adresele n limbaj ma#in #i va verifica dac datele distincte nu se suprapun la stocare. .stfel scurtul program de mai sus se poate scrie n limbaj de asamblare astfel$ operation address

code L2.! . .!! C S62/0 1 0vident acest limbaj evit o multitudine de erori de alocare a memoriei. Limbajul de asamblare presupune e*istena unui program numit assembler care s traduc programele n limbaj ma#in. .samblorul nlocuie#te codarea mnemonica (cum ar fi .!!) cu coduri binare corespunztoare limbajului ma#in #i aloc adrese de memorie pentru toate variabilele simbolice utilizate (. C 1 ) #i se asigur c aceste adrese sunt distincte. .stfel prin u#urarea procesului de programare s(a introdus un nou nivel de procesare pentru computer. .stzi limbajele de asamblare sunt nc utilizate pentru unele programe critice deoarece aceste limbaje confer programatorului un control foarte precis a ceea ce se nt)mpl n computer. Limbajele de programare nc necesit ca programatorul s aib foarte bune cuno#tine cu privire la structura intern a computerului. Limbajele de asamblare sunt #i ele specifice computerului pe care ruleaz astfel c programatorul trebuie sa(#i rescrie programul pentru un alt tip de computer. 1oncluzii$ programele se scriu n mod te*t pentra ca apoi sa fie traduse intr(o form binar corespunztoare limbajului ma#in& limbajul de asamblare este tradus n limbaj ma#in de ctre assembler&

limbajele de asamblare nc solicit programatorului cunoa#terea de multe detalii %ard@are& sunt specifice anumitor tipuri de computere& limbajul de asamblare mpreun cu limbajul main formeaz categoria limbajelor de nivel sczut (low-level languages).

Limbajele evoluate (High level Languages)


0vident c de la apariia computerului tot s(a pus problema de a se obine un proces de programare c)t mai u#or. .ceasta ar presupune ca activitatea de programare sa se poat face cu un bagaj de cuno#tine cu privire la funcionarea intern a computerului c)t mai mic. !up cum s(a vzut anterior limbajul ma#in #i limbajul de asamblare presupune o bun cunoa#terea funcionrii interne a computerului. 2 alt direcie pentru u#urarea programrii ar fi aceea ca programele s fie prezentate ntr(o limb c)t mai familiar persoanei care dore#te s programeze (s rezolve o anumit problem). .stfel au aprut programarea de nalt nivel care permite formularea soluiilor problemei de rezolvat n termeni mai apropiai de cei folosii de oameni. .ceste limbaje au fost concepute pentru a permite programrii s fie mult mai u#oar #i cu mai puine erori iar programatorul nu trebuie s cunoasc detalii cu privire la structura intern a unui anumit tip de computer. .ceste limbaje sunt mult mai apropiate de limbajul uman. "rimul limbaj evoluat a fost FO ! "# $$ aprut n ;=AD. "rogramul prezentat mai sus se poate scrie n acest limbaj astfel$ 1E.FC Se observ c spre deosebire de limbajul ma#in #i limbajul de asamblare e*presia de mai sus este mul mai u#or de neles mai rapid de scris #i evit multe erori de scriere. "entru a putea fi e*ecutate ca #i n cazul limbajului de asamblare computerul nu nelege n mod direct aceste limbaje evolute #i de aceea ele trebuie procesate printr(un program specializat care traduce limbajele evolute n limbajul ma#in intern al computerului respectiv. !up modul cum se face aceast transpunere a programelor evoluate e*ist dou tipuri de astfel de programe specializate$ interpretor% traduce succesiv instruciunile de nalt nivel ntr(o form intermediar care este apoi e*ecutat. compiler% traduce instruciunile de nalt nivel direct n limbaj ma#in. .vantajul interpretorului este c poate e*ecut un program imediat. 1ompilatorul necesit mai mult timp. "rogramele produse de compilator ruleaz mul mai rapid dec)t cele produse de interpretor. Majoritatea programelor evolute au la dispoziie at)t compiler c)t #i interpretor. !e obicei interpretorul se folose#te n timpul realizrii unui program pentru testarea unor mici seciuni ale programului. Gnele limbaje evoluate sunt concepute s lucreze numai cu interpretor (C.S,1 L,S").Gn alt mare avantaj al limbajelor evoluate este acela c dac limbajele sunt standardizate atunci fiecare productor de computere (procesoare) va putea s realizeze compilerul care s respecte standardele #i s traduc programele n limbajul ma#in specific productorului. .stfel devine posibil ca un program respect)ndu(se aceste standarde s poat fi compilat pe diverse computere #i apoi e*ecutat. "rin scrierea unui program ntr(un limbaj evoluat se face o economie imens de timp. .stfel programatorul pierde mai puin timp pentru scrierea ntr(un limbaj mult mai apropiat de cel uman dec)t dac acela#i program ar fi scris n limbaj ma#in (vezi e*emplul de mai sus). 6impul de compilare al programului este de ordinul secundelor BBB !e la apariia limbajului +2/6/.- ,, au aprut #i disprut multe limbaje evoluate. 1ele mai

utilizate la ora actual sunt$ 12C2L +2/6/.".S1.L 1 1FF "/2L2H I.J. .facerilor (baze de date etc) ,nginerie F Matematic F +izic F etc Gz general Gz general 9 cel mai popular ,nteligena artificial Gz general 9 cre#te n popularitate

COBOL (COmmon Business-Oriented Language) - un limbaj de programare dezvoltat ntre anii 1959-1961 !ste utilizat n spe"ial pentru apli"atii "u "ara"ter e"onomi" si administrativ # $ost initial sustinut de %epartamentul de #p&rare #meri"an si ulterior dezvoltat pentru apli"atii "omer"iale 'rogramele s"rise n COBOL( limbaj "ompilat( "ontin patru diviziuni) identi$i-"area( mediul( date si pro"eduri

FORTRAN (FORmula TRANlation) - primul limbaj de nivel nalt (195*-195+ ,im Ba"-us) si "el "are a introdus si de$init "on"epte "a variabile( e.presii( enunturi( iterative( subrutine "ompilate separat si input/output $ormat 0O121#3 este un limbaj "ompilat( stru"turat C-iar numele arat& originile stiinti$i"e si ingineresti4 0O121#3 este n"& $oarte $olosit n a"este domenii

PASCAL - limbaj pro"edural "on"is( proie"tat de 3i5laus 6irt- n perioada 1967-1971 'as"al( limbaj stru"turat( "ompilat( "onstruit pe baza limbajului #L8OL( simpli$i"& sinta.a ad&ug9nd tipuri de date si stru"turi "a subzone( tipuri enumerate de date( $isiere( nregistr&ri si seturi #""eptarea si utilizarea lui 'as"al s-a m&rit "onsiderabil o dat& "u introdu"erea n 19+*( de "&tre Borland :nternational( a mediului 2urbo 'as"al( un "ompilator ie$tin( de mare vitez&( utilizat n ;<-%O<( "are s-a v9ndut n peste un milion de "opii n diverse versiuni C-iar asa( 'as"al pare s& piard& teren n $avoarea lui C "a limbaj standard de dezvoltare la mi"ro"omputere C - 1 Limbaj de programare dezvoltat de %ennis 1it"-ie la Bell Laboratories( 3e= ,erse>( n anul 197?( numit asa pentru "& limbajul imediat premerg&tor a $ost limbajul B %esi C este "onsiderat de multi a $i mai mult un limbaj de asamblare de"9t un limbaj de nivel nalt( aso"ierea str9ns& "u sistemul de operare @3:A( popularitatea sa enorm& "9t si standardizarea de "&tre #3<: au $&"ut "a a"esta s& $ie aproape un limbaj de programare standard C este un limbaj "ompilat "e "ontine un mi" set de $un"tii built-in "are sunt ma"-inedependent Celelalte $un"tii sunt independente si sunt "ontinute n niste $isiere numite librar> "are pot $i a""esate dintr-un program C 'rogramele C sunt "ompuse dintr-una sau mai multe $un"tii de$inite de programator4 ast$el "& C se "onsider& a $i un limbaj stru"turat Compilatorul nu dispune( n general( de $un"tii de intrare/iesire( din pretentia( de alt$el ndrept&tit&( de a se asigura portabilitatea lui4 a"este $un"tii $iind ntr-o bibliote"& $oarte vast& !.ist& dou& implement&ri de "ompilatoare $oarte r&sp9ndite pe "al"ulatoarele personale) 2urbo C( produs de $irma Borland n dou& versiuni( normal& si pro$esional& si ;i"roso$t C( produs de $irma ;i"roso$t C++ - versiune a limbajului C( orientat& spre obie"t( dezvoltat& de Bjarne <troustrup la n"eputul anilor +B la Bell Laboratories CCC are tr&s&turi spe"i$i"e limbajelor de programare orientate obie"t Con"eptul $undamental n CCC este "lasa !l "ontine de asemenea mbun&t&tiri "are nu sunt dire"t legate de "lase( "um ar $i) "onstante simboli"e( substitutia Din-lineE a $un"tiilor( argumente "u valori impli"ite pentru $un"tii( nume de $un"tii supran"&r"ate( operatori pentru gestionarea memoriei libere si un tip de re$erint&

'1OLO8 ('1Ogramming LO8i") - limbaj de programare "reat n 197F de #lain Colmeraner la @niversitatea din #i.-;arseille !ste un limbaj des"riptiv destinat inteligentei arti$i"iale( $iind utilizat n spe"ial la realizarea sistemelor e.pert 'rograma-torul $ormeaz& o baz& de "unostinte( adi"& un set de reguli si $apte legate de mediul tratat( dup& "are des"rie problema de rezolvat '1OLO8-ul este un limbaj "are sparge regulile traditionale de programare

Java este un limbaj de programare de nivel nalt, orientat obiect, proiectat iniial pentru realizarea de aplicaii pentru Internet i mai cu seam pentru Web. Acesta este utilizat n prezent cu succes i pentru programarea aplicaiilor destinate intranet urilor. n acest sens,

multe irme recurg la limbajul Java n procesul de in ormatizare ntruc!t o er un oarte bun suport pentru te"nologiile de v!r i, nu n ultimul r!nd, pentru aptul c este gratuit i n mod continuu mbogit i mbuntit.

"&"#!"'()( * O+ "," $$ $# "-, 0*ista intr(adevar o tendinta justificata de indepartare de limbajul de asamblare dar nu de renuntare la el intrucat multe medii integrate de dezvolare de programe (,!0 K ,ntegrated !evelopment 0nviroments) si compilatoare de limbaje de nivel inalt (1 "ascal Casic +ortran etc.) prezinta facilitati de inserare de linii scrise direct in limbaj de asamblare.1u toate acestea e*ista si numeroase componente ale sistemului de operare si ale altor aplicatii care sunt considerate critice si performante iar acestea au fost si mai sunt realizate in limbaj de asamblare deoarece aceste secvente trebuie sa consume cat mai putin timp si eventual cat mai putina memorie. .ceasta performanta este realizata prin utilizarea cat mai eficienta a instructiunilor si a structurii procesorului.,n concluzie la ora actuala programele sunt %ibride$ ele contin linii scrise in limbaje de nivel inalt dar pot contine si linii in limbaj de asamblare. "entru a rezolva astfel de situatii implementarile limbajelor de nivel inalt accepta introducerea in te*tul sursa de linii scrise in limbaj de asamblare sau legarea intr(un singur modul a unor module obiect provenite de la compilarea unor te*te sursa scrise in diverse limbaje de programare. Modulele care presupun algoritmi complicati sau structuri de date comple*e sunt scrise in limbaje de nivel inalt iar cele care sunt critice din puctul de vedere al timpului de e*ecutie si al resurselor ocupate sunt scrise in limbaj de asamblare. ,n plus e*ista anumite resurse ale calculatorului la care accesul nu este realizabil din limbajele de nivel inalt.Gn alt motiv pentru care se recomanda si e*perienta programarii in limbaj de asamblare este acela ca un specialist in informatica trebuie sa cunoasca mecanisele fine ale procesorului pntru a le folosi in diferite aplicatii.!e asemenea uneori depanarea unui program poate trece de te*tul sursa si ajunge la depanarea codului obiect caz in care este necesara cunoasterea libajului de asamblare.Motivul pentru care secventele critice ca timp de e*ecutie si resurse se scriu in limbaj de asamblare si nu in limbaje de nivel inalt este urmatorul$ compilatorul are Lcunostinte limitateM asupra intregului program dar el trebuie a genereze un set generalizat de instructiuni masina care vor lucra in toate sitatiile dar nu vor fi optime in situatii particulare."rogramarea in limbaj de asamblare este mult mai dificila decat cea intr(un limbaj de nivel inalt deoarece programatorul trebuie sa cunoasca pe langa limbajul de asamblare si structura interna a calculatorului ( registre organizarea si adresarea memoriei porturi de intrare(iesire etc.)Limbajul de asamblare (.SM) permite intelegerea la nivel de amanunt a ceea ce se intampla in realitate intr(un calculator. 1odul generat in .SM se e*ecuta foarte rapid.si permite accesul la %ard@are acces care nu este disponibil in limbajele de nivel inalt.Gnitatea de baza a informatiei memorate in calculator este

bitul. Gn bit reprezinta o cifra binara deci poate avea valorile . sau /. Modelul %ard@are corespunzator este acela de bistabil. Gn bistabil este deci un circuit electronic cu doua stari stabile configurate : sau ; capabil sa memoreze un bit de informatie.Gn grup de bistabili formeaza un registru. !e e*emplu D bistabili formeaza un registru de D biti. ,formatia care se poate memora intr(un asemenea registru poate fi codificata binar de la valoarea ::::.:::: pana la valoarea ;;;;.;;;;. -umarul combinatiilor care pot fi memorate este <AN ( < D ). .ceste combinatii se numesc octeti sau b0tes (daca nED) respectiv cuvinte (daca nE;N >< etc.).Memoria unui calculator este vazuta ca o succesiune de octeti. +iecare octet are asociata o adresa de memorie. "entru a adresa memoria e nevoie de un registru de adrese a carui lungime determina dimensiunea ma*ima a memoriei. Oonele de memorie vor fi reprezentate grafic pe verticala ca succesiuni de octeti sau cuvinte de la adrese mici catre adrese mari. /.1 !$*2 $ 3( 3"!( 2!$)$4"!( $# )$,5"' 3( "-",5)" ( !ipurile de date sunt% 50te (/ octet) 9 ocupa un octet si poate fi reprezentat atat in memoria interna cat si intr(un registru de D biti al procesorului. ,nterpretarile tipului b'te pot fi$ P intreg pe D biti& P caracter.S1,,. !irectiva pentru definirea datelor de acest tip este db (define b0te). 6ord (1 octeti) 9 ocupa doi octeti si poate fi reprezentat atat in memoria interna cat si intr(un registru de ;N biti al procesorului. ,nterpretarile tipului @ord pot fi$ P intreg pe ;N biti cu sau fara semn& P secventa de doua caractere .S1,,& P adresa de memorie de ;N biti. !irectiva pentru definirea datelor de acest tip este dw (define word). 3ouble 6ord (7 octeti) 9 ocupa ? octeti si poate fi reprezentat atat in memoria interna cat si intr(operec%e de registre de ;N biti ale procesorului sau intr(un registru de >< biti. ,nterpretarile tipului d@ord pot fi$ P intreg pe >< biti cu sau fara semn$ P numar real in simpla precizie& P adresa de memorie de >< biti. !irectiva pentru definirea datelor de acest tip este dd (define double word). 8uand 6ord (9 octeti) ( ocupa D octeti si poate fi reprezentat atat in memoria interna cat si intr(o perec%e de registre de >< biti. ,nterpretarile tipului Q@ord pot fi$ P intreg pe N? biti cu sau fara semn& P numar real in dubla precizie.

!irectiva pentru definirea datelor de acest tip este$d: (define :uand word). !en 50tes (/. octeti) 9 ocupa ;: octeti si poate fi reprezentat atat in memoria interna cat si intr(unul din registrele coprocesoarelor matematice D:*DR. ,nterpretarile tipului tb'te pot fi$ P numar intreg reprezentat ca secventa C1!& P numar real in precizie e*tinsa. !irectiva pentru definirea datelor de acest tip este dt (define ten b0tes). 2. FORMATUL PROGRAMELOR E E!UTA"#LE Sistemul de operare MS(!2S permite doua formate de memorare a programelor pe suport e*tern pentru programele e*ecutabile si anume formatele .0S0 si .12M. ,n cazul formatului 0S0 fisierul contine programul intr(un format realocabil precum si un antet care contine informatii necesare pentru realocare. +ormatul .12M caracterizat prin faptul ca programul 9 inclusiv datele si stiva 9 nu ocupa mai mult de un segment contine o imagine memorie a programului. 1./ FO ,"!2) .;O, .cest program trebuie sa inceapa cu directiva 2/H ;::4 deoarece toate registrele sunt pozitionate pe adresa de inceput a prefi*ului de program ("S")& adresa de start a programului este la aceasta adresa si etic%eta acesteia este precizata in directiva 0-!. !atele pot fi plasate oriunde in segment dar de obicei se plaseaza la inceput. Stiva este initializata automat la sfarsitul segmentului ocupat de program. "rogramul se poate inc%eia cu instructiunea ,-6 <:4 sau /06. 1.1 FO ,"!2) .(<( +isierul ce contine un astfel de program este cu cel putin RND octeti mai mare decat programul e*ecutabil& insa la incarcarea in memorie pentru e*ecutie el va ocupa acelasi spatiu. /egistrele !S si 0S sunt initializate cu adresa de segment corespunzatoare inceputului de prefi* de program& 1S este initializat la inceputul programului deci dupa prefi* si deci va fi cu ;:4 mai mare decat acestea. /egistrele segment !S 0S si SS precum si registrul S" trebuiesc initializate de utilizator conform programului. ,nc%eierea unui program .0S0 se face prin e*ecutia unei instructiuni /06 in conte*t +./& aceasta va realiza un salt la prima instructiune din prefi*ul programului adica se va e*ecuta inaintea instructiunii ,-6 <:4.

$. #N%TRU!T#UN# &E TRAN%FER AL !ONTROLULU# &E PROGRAM Secventa de e*ecutie a instructiunilor dintr(un program este determinata de continutul registrului de segment de cod (1S) si de pointerul de instructiuni (,"). ,nstructiunile de transfer al controlului programului opereaza asupra lui ," si 1S. La aparitia unui astfel de transfer coada de instructiuni nu mai contine instructiunea urmatoare si 0G va transmite noua adresa la CG care va obtine instructiunea urmatoare direct din memorie utilizand noile valori pentru 1S$,"& instructiunea va fi transferata catre ,G si G0 pentru e*ecutie si CG apoi incepe reumplerea cozii de la noua locatie. 0*ista patru tipuri de instructiuni de transfer al controlului$ instructiuni de transfer neconditionat& instructiuni de transfer conditionat& instructiuni de ciclare& instructiuni de intrerupere. )imbaje independente de calculator )$,5"'2) =;> .cest limbaj de programare cu cel mai scurt nume posibil a fost creat n ;=R; de ctre !ennis /itc%ie #i Crian Ternig%am pentru dezvoltarea sistemului de operare G-,S. ,storia sa merit menionat deoarece este relevant pentru caracterizarea limbajului..#adar se punea problema conceperii unui sistem de operare universal care s poat funciona teoretic pe orice tip de ma#in 9 sistemul G-,S. "entru aceasta era nevoie de un limbaj care s e*ploateze toate posibilitile unei ma#ini dar care nu putea fi limbajul de asamblare deoarece el este specific ma#inii 9 o nou implementare presupunea rescrierea integral a sistemului. !in aceast dilem s(a putut ie#i construind un limbaj de nivel nalt (iniial limbajul C ulterior limbajul 1) care introducea #i concepte de nivel sczut %ard@are (registru adres locaie de memorie absolut etc). Mai bine de =:U din sursele primului sistem de operare G-,S (implemetat pe o ma#in "!"(R) au fost scrise utiliz)nd limbajul 1 iar pentru restul modulelor s(a

apelat la limbajul de asamblare. Sistemul astfel obinut a fost distribuit cu programele n format surs #i cu descrierea noului limbaj folosit cu intenia vdit de a(l transforma ntr(un sistem de operare universal. Succesul nu a sosit imediat dar era asigurat de noua metod de lucru. "rogramatorii au fost incitai s dezvolte acest sistem e*tinz)ndu(l cu noi module #i s(l implementeze pe alte ma#ini prin rescrierea acelei minime pri sub ;:U n limbaj de asamblareV L1M devenea un limbaj de referin. "rincipalele caracteristici ale limbajului sunt$ limbaj structurat de nivel nalt& posed concepte de nivel sczut ceea ce permite e*ploatarea portabil a caracteristicilor intime unei ma#ini. Spre e*emplu o variant foarte des utilizat poate fi declarat LregisterM (registru) #i atunci ea va fi memorat ntr(un registru al microprocesorului nu ntr(o locaie din memoria intern mrind (uneori considerabil) viteza de e*ecuie. rutine de conversie a datelor foarte evoluate (conversii implicite intrri ie#iri conversii n memorie)& tipuri de date definibile de ctre utilizator& gestionarea elaborat a datelor de tip dinamic& definirea de noi funcii& adresri indirecte ale datelor variabilelor (pointer(i)& recursivitate& set complet de funcii matematice etc& funcii pentru realizarea grafic elementar <!& funcii de apel servicii !2S& posibilitatea definirii de overla'(uri pentru un program& #i nu n ultimul r)nd$ concizie deosebit a limbajului (set de operatori #i instruciuni foarte concise). .#adar un limbaj care suplimenteaz ".S1.L(ul #i poate pretinde pe drept

cuv)nt supremaia n r)ndul limbajelor structurate de uz general. Limbajul L1M are avantajul celui mai eficient cod pentru operaiile de intrare8ie#ire pe disc. Jersiunea de 1 pentru 3indo@s a firmei Corland funcioneaz asemntor ".S1.L(ului #i conine n principal acelea#i module. !iferenele sunt urmtoarele$ implemetri ale versiunii 1FF<.:de la .6W6 #i ale versiunii .-S,(1 plus numeroase e*tensii ale limbajului& posed %eader(e n format gata compilat pentru interfaare cu 3indo@s de unde rezult o mrire a vitezei de punere la punct a aplicaiilor (3,-!23S.4 are ;<: C B)& posed asamblor intern (pentru instruciuni n limbaj de ma#in)& permite realizarea de multi(tas7ing cooperant& mediul de programare "rogrammerXs "latform genereaz foarte u#or aplicaii 3indo@s pentru care se definesc resursele cu /esource 6ool7it ("rogrammerXs "latform posed #i versiune de lucru n mod protejat)& depanatorul 6urbo !ebugger poate depana aplicaii 3indo@s folosind un singur monitor& necesit ; Mb de memorie e*tins #i ;A Mb de spaiu liber pe %ard(disc. 5"-$; . fost creat n ;=N? la !armoot% 1ollege (S.G...) . !enumirea sa provine de la iniialele cuvintelor 5eginnerXs "llpurpose -'mbolic $nstruction ;ode ( 1od de instruciuni simbolice de uz general destinat nceptorilor ) . .re urmtoarele caracteristici fundamentale $ simplu de nvat & instruciunile sale sunt cuvinte din limba englez sau prescurtri ale acestora & neorientat pe un anumit tip de problem & permite construirea de aplicaii & este un limbaj nestructurat ceea ce i permite s fie u#or nvat . !in cauz c a cunoscut o larg rsp)ndire au fost implementate noi versiuni de Casic $ H3(C.S,1 YG,1T C.S,1 6G/C2 C.S,1 J,SG.L C.S,1 ( Casic for 3indo@s ) . FO ! "# Limbajul +ortran este decanul de v)rst al limbajelor de larg folosin . . aprut n ;=AN #i #i datoreaz numele prescurtrii cuvintelor $ FO mula ! "#slation ( 6raducere de formule ). ,niial reprezenta un limbaj orientat pe calcule #tiinifice av)nd definite concepte precum $ matrice funcii trigonometrice

numere reale n dubl precizie . Jersiunile ulterioare care au cunoscut o mare popularitate au e*tins posibilitile limbajului trasform)ndu(l ntr(un limbaj eficient de uz general .n prezent e*ist pentru ,CM("1 dou implementri mai importante ale limbajului $ Microsoft +ortran +ortran for 3indo@s . !e#i nu poate fi considerat L dep#it L din punct de vedere conceptual ( este un limbaj algoritmic 9 structurat ) este neindicat folosirea lui datorit absenei unor medii de programare performante #i pentru c tendina actual i este defavorabil . *"-;") 1onceptualizat n anul ;=R: de ctre -i7laus 3irt% limbajul ".S1.L poart numele matematicianului #i filosofului CL.,S0 ".S1.L n semn de recunoa#tere a meritelor sale n teoretizarea ma#inilor de calcul . 1reat dup acumularea de cuno#tiine temeinice n #tiina limbajelor formale din confruntarea cu probleme concrete ale programrii limbajul ".S1.L a constituit la vremea respectiv un limbaj modern menin)ndu(se ca atare #i n prezent datorit faptului c posed o solid baz conceptual . Limbajul ".S1.L a introdus n versiunea sa iniial noiunea de programare structurat #i ulterior noiunile de date ( structuri ) dinamice date (structuri ) definite de utilizator . n prezent standardul implementrilor ".S1.L cuprinde urmtoarele elemente $ programare structurat de tip algoritmic & definirea de noi funcii sau proceduri & tipuri de date definibile de ctre utilizator & structuri de date dinamice & adresri indirecte ale datelor & recursivitate & rutine complete de intrare 8 ie#ire & funcii de conversie a datelor din .S1,, n format intern #i invers & set complet de funcii matematice & funcii elementare de grafic <! & posibilitatea inserrii direct n surs a instruciunilor n limbaj de asamblare & posibilitatea definirii de overla'(uri pentru program . &ersiunile standard ale implementrilor *"-;") sunt cele oferite de ,icrosoft i 5orland ? cu avantaj pentru cele din urm ( !2 5O *"-;") @.. ? !2 5O *"-;") @.@ ) datorit mediului de lucru performant (de tip A !2 5O A ) . ;ombinaBia *"-;") C !2 5O a reprezentat un succes imens n rDndul programatorilor avDnd ca singur rival cealalt combinaBie % ;C!2 5O .