Capitolul VI
LIMBAJE DE PROGRAMARE

        Limbajele de programare sunt instrumente de lucru pe calculatoare care pot traduce algoritmii de rezolvare a unei probleme în instructiuni ce pot fi întelese de cãtre calculator prin intermediul unor programe speciale (compilatoare si interpretoare, asambloare etc).
        Operatia de elaborare si de descriere a programului pentru un calculator este specificã numai prelucrãrii automate. Comunicarea cãtre calculator a informatiilor utilizatorului se face într-o formã perceptibilã acestuia, într-un anumit limbaj accesibil calculatorului, numit limbaj calculator sau limbaj masinã. Un program scris în limbaj masinã? se mai numeste si cod obiect.
        Deoarece limbajul masinã utilizeazã numai caractere numerice (cifrele binare 0 si 1) în descrierea instructiunilor sale, munca de programare în acest caz este deosebit de dificilã si prezintã si dezavantajele cã instructiunile sunt  greu de asimilat si corectarea unui program, în cazul anumitor erori, este foarte greu de fãcut. Totodatã, limbajul masinã diferã de la calculator la calculator, ceea ce înseamnã cã programele nu pot fi folosite decât pe calculatoare de acelasi tip.
        Limbajele în cod masinã nu se mai utilizeazã astãzi, sau sunt utilizate din ce în ce mai rar. In locul lor au apãrut limbaje intermediare între limbajul vorbit si cel al calculatoarelor, numite limbaje de programare. Acestea sunt limbaje artificiale, care contin o anumitã structurã gramaticalã si cuvinte rezervate care alcãtuiesc instructiunile sale.
        Primele si cele mai apropiate de limbajul masinã sunt asa numitele limbaje de asamblare care, utilizând anumite mnemonice pentru codul instructiunilor masinii, permit scrierea de programe putin mai comodã.
        In general, o problemã este transpusã în calculator printr-un algoritm de rezolvare tradus în instructiuni specifice unui limbaj de programare. Aceste instructiuni alcãtuiesc asa numitul program sursã.
        Cu ajutorul unui program special, numit compilator, programul sursã este transformat în limbajul calculatorului, în mod automat, într-un program care se numeste cod obiect. In locul compilatorului poate exista un program care interpreteazã si executã fiecare instructiune introdusã de la tastaturã. Acest program se numeste interpretor si este foarte des utilizat, în special pe calculatoarele personale.
        Aproape toate calculatoarele posedã compilatoare sau translatoare pentru mai multe limbaje de programare.
        Limbajele de programare pot fi grupate în douã categorii, în functie de gradul lor de accesibilitate:
         a) limbaje de nivel inferior sau de asamblare
             . depind foarte mult de calculator,
             . sunt dificile si greu de asimilat
         b) limbaje de nivel superior sau evoluate
             . sunt, de regulã, orientate spre anumite domenii de aplicatii
             . sunt usor de asimilat, fiind apropiate de limbajul vorbit.
        Totodatã, limbajele de programare mai pot fi categorisite si dupã modul de lucru la calculator:
         a) limbaje conversationale, caracterizate prin realizarea unei conversatii între utilizator si calculator pe toatã perioada utilizãrii acestora,
         b) limbaje neconversationale, care nu permit un dialog direct între utilizator si calculator.
        Existã numeroase limbaje de programare, utilizate astãzi pe toate sistemele de calcul, de la macrosisteme, la mini si microsisteme. Dintre acestea cele mai cunoscute si mai utilizate sunt urmãtoarele: COBOL, FORTRAN, BASIC, PASCAL, ALGOL, PL/I, C, C++, LISP, PROLOG etc.
 


VI.1.  Limbajul PASCAL

        Limbajul de programare Pascal, purtând numele inventatorului masinii de calcul, matematicianul francez Blaise Pascal, a fost elaborat de profesorul Niklaus Wirth de la Universitatea tehnicã din Zurich, în anul 1970. Datoritã simplitãtii lui, a unor tehnici de scriere a programelor foarte îndrãgite de majoritatea programatorilor, limbajul a cãpãtat în scurt timp de la elaborare o mare popularitate. La rãspândirea limbajului a contribuit, într-o mare mãsurã, firma Borland, cea care a elaborat un foarte bun compilator pe calculatoarele IBM PC.
        Compilatorul firmei Borland este inclus într-un mediu de programare foarte avansat, care contine, pe lângã un editor profesional de texte, un asamblor integrat. In acest context elementele limbajului standard Pascal au fost îmbogãtite substantial, iar limbajul astfel obtinut a fost denumit Turbo-Parcal.     Atributul Turbo face referire la rapiditatea exceptionalã a compilatorului.
        Structurile de bazã ale limbajului au fost preluate din limbajul Algol 60, extensiile fatã de acest limbaj referindu-se, în principal, la posibilitatea de structurare a datelor si a programului. Limbajul ar putea fi considerat ca o alternativã modernã a limbajelor mai vechi Algol 60 si PL/1.
        Initial, limbajul a fost proiectat pentru scopuri didactice, dar prin posibilitãtile pe care le oferã s-a dovedit cã s-a depãsit cu mult acest cadru. La aceastã orã el este un instrument puternic pentru rezolvarea problemelor stiintifice, ingineresti si chiar de gestiune.
        Iatã principalele caracteristici ale limbajului Turbo-Pascal:
             - este puternic tipizat, oferind o gamã largã de tipuri predefinite, precum si posibilitatea definirii unor noi tipuri de date;
             - este modularizat, asigurând un control riguros asupra vizibilitãtii numelor din program;
             - permite utilizarea unui mare numãr de proceduri si functii predefinite;
             - permite divizarea unui program complex în componente relativ independente, care pot fi programate si compilate separat.
        Versiunea cea mai recentã pe piatã este versiunea 7.0 care aduce multe îmbunãtãtiri, în special ale mediului de programare Turbo si a facilitãtilor de programare orientatã pe obiecte care au cunoscut o mare rãspândire în întreaga lume.
        Familiarizarea cu limbajul se face foarte rapid, numãrul de instructiuni fiind foarte mic, sintaxa este relativ simplã iar structura generalã a unui program putându-se învãta rapid dintr-un simplu exemplu. Alãturi de limbajul BASIC, limbajul Turbo-Pascal este deseori indicat celor care doresc sã se familiarizeze, într-un timp scurt, cu limbajele de programare. Este indicat adesea începãtorilor, fiind totodatã un limbaj care se predã din ce în ce mai mult elevilor din scoli.


Turbo-Pascal

        Limbajul cuprinde elemente de programare structuratã cum ar fi:
             - executia liniarã a instructiunilor;
             - alternativa, care permite executia unui set de instructiuni în functie de rezultatul unui test;
             - ciclul, în care, un set de instructiuni se repetã în executie atâta timp cât o anumitã conditie este îndeplinitã.
        Limbajul este printre primele care permit recursivitatea, adicã posibilitatea ca o anumitã parte de program sã se apeleze pe ea însãsi.
        In limbajul Pascal programele sunt, de regulã, clare, usor de descifrat si de modificat. Sunt permise trei tipuri de date: simple (elementare), de tip structural si tip referintã (pointeri). Pot fi usor definite numeroase alte structuri de date de tip utilizator, combinatii ale celor anterior definite etc. Structurile pot fi complexe, cum ar fi listele, tablourile sau structurile dinamice.
        Pentru debutanti existã o versiune de initiere numitã Turbo Tutor, care faciliteazã familiarizarea cu limbajul.  In afarã de firma Borland, care a conceput si dezvoltat unul dintre cele mai celebre medii de programare pentru limbajul Pascal, sunt si alte firme care au realizat compilatoare foarte bune pentru acest limbaj. Cea mai cunoscutã dintre acestea este firma Microsoft.
 


VI.2.  Limbajul BASIC

        Limbajul BASIC este unul dintre cele mai simple limbaje de programare. El a fost conceput în ideea ca sã apropie de calculator cât mai multi nespecialisti. Astãzi este tot mai des utilizat în scopuri didactice, este predat, de regulã, primul în scoli si este indicat, în special, nespecialistilor sau începãtorilor. Insusi numele pe care îl poartã se referã la aceasta: Beginner´s Allpurpose Symbolic Instruction Code. Traducerea exactã este: Cod simbolic de instructiuni, de scop general, pentru începãtori.
        Limbajul a fost creat pentru prima datã în anul 1964 la Dortmouth College în SUA de cãtre John Kemeny si Thomas Kurtz, dar abia în a doua parte a deceniului al optulea s-a impus cu adevãrat, odatã cu revolutia microcalculatoarelor.
        Limbajul este inspirat din limbajul evoluat FORTRAN, are o sintaxã foarte simplã pentru instructiunile sale, utilizând cuvinte clare din limba englezã, ceea ce oferã si o usurare în munca de citire si de întelegere a programelor.
        Limbajul BASIC este un limbaj de uz general, aplicat în diverse domenii de activitate. Prin numeroasele sale implementãri pe diferite calculatoare personale, dar si pe minicalculatoare, el a devenit cel mai rãspândit limbaj pe aceste sisteme de calcul. Evident, nu au fost excluse si implementãrile limbajului pe sisteme mari de calcul, astfel cã limbajul a ajuns la un moment dat sã fie considerat drept limbajul constructorilor de calculatoare.
        Existã astãzi numeroase versiuni ale acestui limbaj, care se prezintã pe diferite sisteme de calcul sub formã de compilatoare sau de interpretoare (diferenta principalã dintre un compilator si un interpretor constã în faptul cã, în timp ce compilatorul transformã programul sursã în cod obiect dupã o analizã sintacticã si logicã a tuturor instructiunilor care îl compun semnalând, dacã este cazul, erorile depistate, interpretorul "interpreteazã" practic instructiune de instructiune, în ordinea în care au fost introduse si semnaleazã erorile sintactice sau logice imediat ce acestea au putut fi depistate, ajutând programatorul sã introducã de la tastaturã instructiunile unui program sursã "aproape bun" de executat).
        Cele mai cunoscute interpretoare pentru limbajul BASIC pe calculatoarele personale de tip IBM PC sunt: BASICA, GW-BASIC si QBASIC. Datoritã multor critici privind lipsa elementelor de structurare din limbaj, au fost aduse multe dezvoltãri acestuia, în special prin versiunile Quick Basic ale firmei MicroSoft si Turbo Basic ale firmei Borland.
        Un program scris în BASIC are, pentru fiecare instructiune, un numãr de linie, de obicei cuprins între 1 si 9999. In versiunile mai noi pot fi scrise mai multe instructiuni pe aceeasi linie, despãrtite prin simbolul ":". Dupã scrierea completã a unui program se poate da comanda RUN pentru ca programul sã fie executat.
        Limbajul BASIC a fost dezvoltat pe diferite sisteme de calcul prin introducerea unui numãr considerabil de functii pentru graficã, sunet, conversii de date, apeluri de subprograme, programarea structuratã etc. Astãzi se cunosc cel putin 25 de versiuni ale limbajului provenite numai de la firme renumite si existã peste 1000 de compilatoare si interpretoare scrise pentru acest limbaj si utilizate pe diferite tipuri de calculatoare.
 


VI.3.  Limbajul C

        Limbajul C este cotat la ora actualã ca fiind unul diintre cele mai eficiente limbaje de programare. El este folosit pentru toate tipurile de programe, de la editoare de texte, jocuri cu facilitãti grafice, programe de gestiune si de calcule stiintifice, pânã la programe de sisteme complexe. De exemplu, sistemul de gestiune a bazelor de date relationale Paradox, a fost scris aproape în întregime în acest limbaj. De asemenea, multe dintre noile sisteme de operare si compilatoare sunt scrise în limbajul C.
        La începuturile sale limbajul a fost destinat pentru scrierea unei pãrti importante a renumitului sistem de operare UNIX.
        Principalele caracteristici ale limbajului, care s-au desprins chiar de la bun început, sunt:
             - un limbaj de nivel scãzut, apropiat de masinã, putând efectua operatii rezervate în general limbajelor de asamblare,
             - un limbaj evoluat, continând toate instructiunile necesare tratãrii structurilor în programare,
             - un limbaj structurat, permitând descompunerea oricãrei probleme în componente elementare care genereazã module simple, usor de manipulat si de întretinut,
             - asigurã o portabilitate ridicatã, compilatorul nedispunând, în general, de  functii de calcul si de intrare-iesire, acestea fiind asigurate de biblioteci vaste.
        In acest mod compilatorul este universal, singura problemã de compatibilitate în legãturã cu portabilitatea fiind doar aceea legatã de prezenta bibliotecilor de functii necesare.
        Limbajul este economicos si portabil. El constituie la ora actualã unul dintre cele mai puternice instrumente de programare, ceea ce face ca atractia lui în industria software-ului sã fie foarte mare.
        Limbajul a fost creat în anul 1972, deci este un limbaj relativ tânãr, autorii lui fiind Dennis Ritchie si Brian Kernigham de la Bell Laboratories, New Jersey din S.U.A.  Datoritã caracterului sãu de înaltã portabilitate, limbajul permite transferul programelor între calculatoare cu diferite procesoare permitând totodatã si utilizarea caracteristicilor specifice ale calculatoarelor particulare.
        Limjajul C este proiectat pentru a permite programarea structuratã. El utilizeazã structuri de bloc si programarea modularã, ceea ce conferã programelor caracteristici evidente privind facilitãtile de proiectare, depanare si lizibilitate.
        C-ul este un limbaj usor de învãtat, compact, continând circa 30 de cuvinte rezervate. Regulile de programare sunt relativ simple, sintaxa instructiunilor nu este complicatã, este permisã manipularea de biti, pointeri, se pot defini structuri noi de date etc. El faciliteazã o programare rapidã si utilizeazã biblioteci vaste de subrutine standard. Toate compilatoarele de C sunt scrise în C.
        Limbajul este recomandat, în general, specialistilor în domeniul programãrii.
        In prezent existã douã implementãri ale compilatoarelor C, cele mai cunoscute de pe calculatoarele personale de tip IBM:
             . Turbo C, apartinând firmei Borland, în versiune normalã sau profesionalã;
             . MicroSoft C, al firmei MicroSoft, livrat deseori împreunã cu QuickC, un mediu de programare complet.
 


VI.4.  Limbajul C++

        Teoria programãrii a evoluat foarte mult fatã de cea cunoscutã, sã zicem, acum douã decenii. Cu toate cã, chiar si la acea vreme, notiunile de programare orientatã pe obiecte erau clarificate din punct de vedere teoretic, totusi instrumentele de lucru nu au fost puse bine la punct decât în ultimii ani. Evident, nu lipsa acestora a contribuit la slaba utilizare a acestor notiuni ci, mai degrabã, slaba atractie cãtre acest gen de programare a fost cea care l-a mentinut, o perioadã bunã de timp, departe de lumea utilizatorilor.
        Ideea de programare orientatã pe obiecte constã în a oferi programatorului un instrument de modelare si de reprezentare a lumii în calculator. In practica obisnuitã programarea face o distinctie clarã între date si modul de reprezentare a acestora sub formã de coduri. In programarea orientatã pe obiecte aceastã distinctie dispare aproape în întregime, cele douã notiuni contopindu-se.
        Existã, astãzi, încercãri destul de reusite de utilizare a limbajului Pascal sau a altor limbaje, în scopul programãrii orientate pe obiecte. Limbajul care s-a potrivit cel mai bine pentru aceste scopuri este, desigur, limbajul C.
        Limbajul este un rezultat al acestor obiective, îmbinând calitãtile deosebite ale limbajului C cu avantajele pe care le oferã programarea orientatã pe obiecte.
        Limbajulrezultat, C++, vine în sprijinul specialistilor în programare, oferindu-le posibilitatea sã efectueze munca de programare într-un mod cât mai plãcut. Acesta a apãrut pentru prima datã în anul 1983 si a fost elaborat de un colectiv condus de Bjarne Stroustrup.
        Avantajele cunoasterii limbajului C sunt categorice în favoarea celor care intentioneazã sã treacã la aceastã manierã de programare cu limbajul C++.     Documentatia de specialitate în acest domeniu este multã si continuã sã aparã. Firma Borland, cea care a elaborat un compilator inclus într-un mediu de programare performant pe calculatorul IBM PC, a emis ca documentatie pentru acest limbaj o serie de 4 volume intitulate Turbo C++. In tara noastrã, deja au apãrut câteva manuale care trateazã acest subiect.
        Desigur, notiunile cuprinse în programarea structuratã sunt, dacã nu noi, cel putin socante pentru un neinitiat. De aceea se recomandã aproape de fiecare datã ca, înainte de trecerea la asimilarea limbajului C++, sã fie studiat limbajul C clasic. In altfel de situatii, trecearea la utilizarea acestui nou limbaj, cu toate notiunile sale specifice, poate conduce si la confuzii, de exemplu aceea a utilizãrii programãrii structurate si nu a programãrii orientate pe obiecte.
        Existã relativ putini utilizatori ai acestui limbaj. Insã clasa acestora se mãreste, pe zi ce trece, odatã cu descoperirea avantajelor pe care le oferã.
 


VI.5.  Limbajul FORTRAN

        In anii trecuti, în tara noastrã, primul limbaj de programare care se învãta era limbajul FORTRAN. Acestea erau si indicatiile profesorilor, dar si dotarea cu tehnicã de calcul (calculatoare Felix, IBM 360, apoi, mai târziu,Coral - Independent etc.) de la acea vreme impunea acest punct de vedere. Desi limbajul era adecvat, în primul rând, rezolvãrii problemelor stiintifice, caracteristicã pe care o pãstreazã si astãzi, el a putut fi utilizat, îndeosebi în variante îmbunãtãtite (de exemplu, FORTRAN-77) si pentru rezolvarea altor categorii de probleme, în special cele economice.
        Pe plan mondial, limbajul FORTRAN a fost unul dintre cele mai utilizate limbaje, ocupând, dupã COBOL, o bunã perioadã de timp chiar locul al doilea în ierarhia utilizãrii limbajelor de programare.
        Denumirea limbajului provine din FORmula TRANslation.
        Limbajul FORTRAN a fost primul limbaj de nivel înalt, care a introdus si definit concepte ca variabile, expresii, enunturi, iterative, subrutine compilate separat si formatele de intrare/iesire a datelor. Este un limbaj compilat, structurat, recomandat si folosit în domenii stiintifice si ingineresti.
         Fiind construit încã din deceniul al saselea, mai precis în anul 1956, limbajul s-a folosit, de-a lungul timpului, pe aproape toate tipurile de calculatoare. Prima implementare a limbajului apartine firmei IBM si s-a numit FORTRAN I. Trecând prin diverse versiuni, cea mai utilizatã (si astãzi, valabilã) versiune este FORTRAN IV. Astãzi se cunosc douã standarde ale acestui limbaj: primul, FORTRAN IV, care mai este cunoscut si sub numele de FORTRAN 66, cel de-al doilea standard numindu-se FORTRAN 77.
        Datoritã numerosilor specialisti în programare cu acest limbaj, aproape imediat ce au apãrut calculatoarele personale au început sã fie scrise compilatoare si interpretoare pentru acestea.
        Caracteristica esentialã a limbajului este modul algebric de scriere a instructiunilor, fapt care determinã o usoarã transformare a formulelor matematice în instructiuni.
        Pe calculatoarele de tip PC limbajul a pãtruns sub forma unui compilator propriu, instalat sub un mediu de programare bine pus la punct. Cel mai des utilizat produs de acest gen pe PC este cel al firmei  MicroSoft.
        Versiunile recente contin si posibilitãti de programare structuratã si alte îmbunãtãtiri. Limbajul FORTRAN rãmâne unul dintre cele mai potrivite limbaje de programare pentru rezolvarea pe calculator a calculelor tehnico-stiintifice.
 

VI.6.  Limbajul COBOL

        Limbajul COBOL, a cãrui denumire provine din COmmon Business Oriented Language, a fost dezvoltat de Departamentul de Apãrare American între anii 1959 si 1961, ca o cerintã a prelucrãrii datelor în operatiile contabile, financiare, în comert, în evidenta circulatiei materialelor si a stocurilor etc., adicã în domenii care comportã operatii relativ simple asupra unui volum mare de date. Odatã cu limbajul de programare specialistii americani au elaborat si un cod de utilizare a operatiunilor de prelucrare a datelor, care a reprezentat o primã încercare de standardizare în domeniu. Ideea de bazã a constat în asigurarea unei independente cât mai mari a programelor în raport cu sistemele de calcul pe care sunt executate, precum si formularea cât mai naturalã a algoritmilor de rezolvare a aplicatiilor. Limbajul a fost îmbogãtit, de-a lungul timpului, cu multe tehnici de utilizare, nelipsind, desigur, tehnica programãrii structurate.
        Un program COBOL are o structurã ierarhizatã: diviziuni, sectiuni, paragrafe, fraze, sau rubrici în denumiri fixe (cele scrise cu majuscule) sau date de cãtre utilizator. Diviziunile unui program, în numãr de patru, contin:
             . partea de identificare, cu informatii despre numele programului, autorul, observatii etc.
             . partea de echipament, care contine date legate de caracteristicile fizice ale calculatorului
             . partea  de date, care descrie informatiile care se prelucreazã în program
             . partea de prelucrare, care specificã toate calculele, decizille logice, intrãrile si iesirile etc. în enunturi asemãnãtoare cu limba englezã.
        Organizarea datelor în limbajul COBOL este foarte bine definitã, prelucrãrile acestora din fisiere externe fiind fãcutã cu ajutorul unor module specifice care se înglobeazã în program odatã cu editarea legãturilor.
         Ca si limbajul FORTRAN, limbajul de programare COBOL a fost implementat pe aproape toate tipurile de calculatoare.
        Numeroase statistici mondiale apãrute de-a lungul timpului au situat limbajul COBOL pe primul loc în topul utilizãrii limbajelor de programare. Acesta a atins si procente de 70% în acest clasament, acordându-i-se, indiscutabil, titlul de cel mai popular limbaj.
        Pe microcalculatoare limbajul a fost implementat încã de la aparitia acestora; sunt  deja foarte cunoscute contributiile firmei engleze Micro Focus în acest domeniu. Pentru sistemele de operare MS-DOS si OS/2 cel mai cunoscut si utilizat compilator de COBOL apartine firmei MicroSoft.
        Utilizarea limbajului COBOL pe calculatoarele personale este astãzi amenintatã de numeroasele sisteme de gestiune a bazelor de date care oferã solutii mai rapide de prelucrare a volumelor mari de date. Totusi, limbajul este folosit si astãzi de numerosi utilizatori ai calculatoarelor de tip IBM PC, în special de "fostii mari Cobol-isti" , dar si de multi începãtori care gãsesc în acesta un limbaj bine organizat, "aproape" natural si, prin aceasta, un grad ridicat de accesibilitate.

VI.7.  Limbajul LISP

        Limbajul LISP este încadrat în categoria limbajelor de inteligentã artificialã, fiind, practic, principalul instrument de programare din acest domeniu. El a fost conceput în anul 1959 de cãtre matematicianul american John McCarthy. Initial a fost gândit ca un formalism matematic, cu aplicatie directã la dezvoltarea unei teorii riguroase a programelor. Implementarea propriu-zisã a limbajului a condus la un limbaj puternic, elegant, în jurul cãruia s-a dezvoltat un veritabil mediu de programare. El a permis un cadru adecvat pentru discutarea unor tehnici fundamentale de programare, fiind, practic, si un instrument util pentru învãtarea programãrii, pentru dezvoltarea rationamentului logic, riguros si elegant.
        Denumirea limbajului LISP provine din "LISt Processing". Este un limbaj de nivel înalt, neprocedural, nu se aseamãnã cu nici unul dintre cele clasice.
        Programele si datele au aceeasi formã, seamãnã foarte bine între ele. Iatã câteva dintre aplicatiile tipice, care pot fi abordate cel mai bine cu ajutorul limbajului LISP:
             - sisteme pentru întelegerea sensului propozitiilor,
             - sisteme pentru analiza si generarea automatã a programelor,
             - demonstratoare de teoreme,
             - sisteme de tratare a limbajelor naturale,
             - sisteme expert etc.
        Principalele caracteristici ale limbajului sunt:
                 . interactivitatea, utilizatã în aproape toate implementãrile sale
                 . prelucrarea simbolicã, cu ajutorul reprezentãrii în liste care sunt tipuri de date fundamentale în acest limbaj
                 . gestiunea automatã a alocãrii memoriei
                 . tehnici elegante de programare, programarea recursivã si utilizarea functiilor ca argumente ale altor functii etc.
                 . extensibilitatea, exprimatã prin aceea cã, cu ajutorul unui set minim de functii de bazã oferite de limbaj, pot fi descrise noi functii care extind capacitatea de prelucrare a limbajului
                 . universalitatea, exprimatã prin faptul cã orice problemã revolvabilã algoritmic poate fi transpusã si rezolvatã cu ajutorul limbajului LISP
                 . identitatea reprezentãrii datelor si programelor
                 . mediul dezvoltat de programare
                 . interpretoare si compilatoare, limbajul LISP fiind primul care a introdus, în cadrul aceluiasi sistem de programare, dihotomia interpretor - compilator
                 . simplitatea limbajului, usurinta cu care poate fi asimilat de cãtre începãtori.
        Existã si anumite dezavantaje pe care le prezintã limbajul:
                 . viteza redusã de lucru, rezultatã, mai ales, datoritã executiei programelor prin interpretare
                 . consum mare de memorie, cele mai puternice implementãri fiind fãcute pe calculatoarele mari
                 . lipsa unui standard, limbajul circulând astãzi sub diferite dialecte.
        Notiunile de bazã cu care lucreazã limbajul LISP sunt: atomul, lista, functia, expresia simbolicã, evaluarea.
        Limbajul LISP a pãtruns relativ devreme si pe calculatoarele personale, implementãrile având la bazã, în cea mai mare parte a cazurilor, interpretoarele. Mediile de programare sub care apar sunt, în general, bine organizate, continând editoare puternice precum si instrumente de dezvoltare si depanare. Cele mai cunoscute implementãri pe calculatoarele personale apartin firmei Microsoft cu produsul MuLISP si firmei Texas Instruments cu produsul PCScheme.
        O versiune extinsã a limbajului LISP, cunoscutã sub numele de AutoLISP, a fost dezvoltatã de firma AutoDesk si introdusã în cadrul programului AutoCAD începând cu versiunea 2.5 a acestuia. Aceastã versiune opereazã, pe lângã listele si atomii din limbajul standard, si asupra urmãtoarelor tipuri de date: simboluri, siruri, numere întregi, numere reale, descriptori de fisier, nume de entitãti AutoCAD, multimea de selectii AutoCAD si functii AutoCAD implementate.
 

VI.8.  Limbajul PROLOG

        Limbajul Prolog a fost creat de cãtre Alain Colmeraner de la Universitatea din Aix-Marseille, în anul 1973. Numele de PROLOG se trage de la PROgramming in LOGic (Programare logicã). Limbajul este de nivel foarte înalt, este un limbaj de inteligentã artificialã si este destinat în special realizãrii sistemelor expert, adicã a programelor care sunt capabile de "rationamente", prin inductie sau deductie logicã, asemãnãtoare cu cele ale unui expert uman.
        Limbajul nu seamãnã cu nici un altul dintre cele cunoscute, este total diferit de acestea. El intrã în categoria limbajelor descriptive (nu procedurale, ca marea majoritate a celor cunoscute), atât datele cât si comenzile putând fi manipulate dupã aceleasi reguli.
        Este accesibil doar programatorilor cu o mare experientã, deseori si acestia întâmpinând dificultãti datoritã modului de interpretare proce-dural, foarte vehiculat, vizavi de modul descriptiv. Un limbaj procedural are la bazã un algoritm, adicã o serie de operatii si pasi de realizat pentru rezolvarea unei probleme. Un limbaj descriptiv, cum este limbajul Prolog, nu se bazeazã pe un algoritm de rezolvare a problemei pas cu pas, ci pe un sistem de deductii si inductii logice care, bazându-se pe niste cunostinte anterioare si niste reguli de inferentã logicã, conduc logic la rezolvarea problemei.
        Iatã, pe scurt, cum decurg lucrurile în cazul programãrii logice:
             - programatorul formeazã o bazã de cunostinte, care nu sunt altceva decât un set de reguli si actiuni legate de domeniul tratat;
             - programatorul descrie apoi problema de rezolvat;
             - limbajul este capabil sã caute informatiile necesare si sã facã deductii pentru a rezolva problema (gãsirea solutiei);
        Asadar, în limbajele de programare logicã se descrie problema si se dau datele necesare pentru rezolvare, în timp ce în limbajele de programare procedurale se descrie metoda de rezolvare si se dau datele pentru rezolvare.
        Limbajul Prolog este un limbaj nou care a spart regulile traditionale. In el programatorul este practic pus sã gândeascã altfel decât în limbajele clasice. Din acest punct de vedere se pare cã un debutant va fi mai putin derutat decât un profesionist, datoritã faptului cã acesta din urmã e nevoit sã se desprindã de obisnuitele principii ale programãrii clasice. Un matematician sau un bun cunoscãtor al logicii matematice se poate adapta relativ usor cu noul sistem de programare cerut de acest limbaj.
        Aceastã categorie de limbaje ar putea sã devinã foarte rãspânditã mai ales odatã cu aparitia generatiei a V-a de calculatoare (five generation), de mai multã vreme aflatã pe masa de lucru marilor specialisti în domeniu. Ca exemplu, însusi limbajul Prolog a fost luat de referintã într-un vast proiect al japonezilor de construire a calculatorului de generatia a V-a, pentru a fi înglobat în acesta.
        Limbajul este utilizat de cele mai multe ori pentru rezolvarea problemelor de inteligentã artificialã. Au fost deja elaborate, cu ajutorul acestui limbaj, numeroase sisteme expert din diferite domenii de activitate, de exemplu, în medicinã, industria electronicã si roboticã, matematicã aplicatã etc.
        Pe sistemele de calcul de tip IBM PC este implementat, încã din anul 1986, mediul de programare Turbo Prolog elaborat de firma Borland.
 


VI.9.  Limbajul ALGOL

        Limbajul ALGOL (ALGOrithmic Language), este un limbaj de nivel înalt care se utilizeazã pentru rezolvarea problemelor stiintifice si tehnice.
        Algoritmul este un termen de bazã în stiinta calculatoarelor, care reprezintã o multime finitã de reguli de calcul indicând operatiile elementare care intrã în rezolvarea unei probleme, precum si ordinea logicã de efectuare a acestora. Intr-un sens mai larg, algoritmul este un set de instructiuni ce pot fi executate pentru îndeplinirea unei sarcini.
        Un limbaj algoritmic este un limbaj specializat în descrierea algoritmilor.
        Primul compilator de ALGOL a fost creat în anul 1958. A fost primul limbaj de programare elaborat prin cooperare internationalã si definitivat în anul 1960 prin varianta cunoscutã sub numele de ALGOL-60.
        Limbajul ALGOL permite structurarea programelor pe baza unor instructiuni de control compuse si a unor zone, numite blocuri, care introduc nivele de denumiri pentru identificatori. Structurarea permite decuparea programului în module scrise de programatori diferiti si totodatã face posibilã economia de memorie pentru timpul de executie prin alocarea si eliberarea dinamicã a spatiului de memorie necesar executiei unui bloc.
        Limbajul permite utilizarea procedurilor care pot fi si recursive, fapt care mãreste considerabil puterea acestuia.
        Varianta ALGOL-68 care a urmat a generalizat unele concepte din varianta initialã, permitând utilizatorului sã defineascã noi tipuri de structuri de date si operatori. Aceasta a condus la posibilitatea realizãrii unor programe care descriu mai natural problema modelatã.
        In variante mai recente, au fost scrise compilatoare si pentru sistemele de operare DOS, astfel cã limbajul ALGOL poate fi întâlnit si pe calculatoarele IBM PC si compatibile.
 


VI.10.  Limbajul de asamblare ASM

        In general, un limbaj de asamblare intrã în categoria limbajelor de nivel scãzut, acesta fiind foarte legat de masina pe care este implementat. El se bazeazã pe un set de mnemonice care grupeazã reprezentãri simbolice pentru instructiunile calculatorului. Asamblorul (translatorul limbajului de asamblare) este practic un program care translateazã aceste mnemonice în binar, astfel ca acestea sã poatã fi întelese si executate de cãtre calculator.
        Limbajele de asamblare aproape cã nu mai sunt la modã astãzi, ele fiind deseori înlocuite de limbaje evoluate (de exemplu, limbajul C), care au facilitãti dezvoltate pentru a manipula bitii, registrii de bazã ai calculatorului etc.
        Principalele motive pentru care aceste limbaje sunt din ce în ce mai rar folosite ar putea fi:
             - este un limbaj foarte complex si dificil de manevrat. Nu poate fi utilizat decât de specialisti.
             - instructiunile sale sunt descompuse în operatii elementare, conducând la programe foarte lungi si putin lizibile, deci greu de întretinut.
              - fiind legat de masinã (fiind specific microprocesorului), instructiunile sale se modificã odatã cu schimbarea masinii, ceea ce nu se întâmplã la limbajele evoluate.
              - desi este foarte rapid (cel mai rapid dintre limbajele instalate pe un calculator), acest avantaj este în mare mãsurã compensat de calitatea calculatoarelor pe care se lucreazã.
        Limbajul se utilizeazã doar în cazuri de strictã necesitate, ca de exemplu pentru functii care nu pot fi realizate cu alte mijloace (intrãri/iesiri), sau în cazul în care viteza de executie este foarte importantã.
        Limbajul de asamblare ASM este specific calculatoarelor personale de tip IBM si compatibile. Cele mai rãspândite asambloare pe aceste sisteme au fost realizate de cãtre cele douã firme rivale si anume:
                 . Macroasamblorul MASM, realizat de firma Microsoft,
                 . Turboasamblorul TASM, realizat de firma Borland, acesta doferind suplimentar  avantajul unei viteze de lucru superioare.

Inapoi                                                         Inainte
Prima paginã