Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Privire de ansamblu asupra limbajului C

c

+ Font mai mare | - Font mai mic





DOCUMENTE SIMILARE

Trimite pe Messenger
Streamuri
LUCRUL CU FISIERE
PRELUCRARI ASUPRA SIRURILOR DE CARACTERE
Apelul functiilor
Instructiuni etichetate (instructiunea goto)
Pointeri si adrese
Enumerari
Functii pentru pozitionare
Domeniu; variabile externe
METODE DE ELABORARE A ALGORITMILOR. DIVIDE ET IMPERA.

TERMENI importanti pentru acest document

Privire de ansamblu asupra limbajului C

1 Despre originile limbajului C




Legenda spune ca C a fost inventat si implementat de Dennis Ritchie pe un calculator DEC PDP-11, care utiliza sistemul de operare UNIX. Virtual, C este rezultatul unui proces de dezvoltare complex, la care putem spune ca a participat intreaga comunitate preocupata de ridicarea performantelor in munca de programare. De fapt, stramosi directi ai limbajului C pot fi considerate limbajele BCPL (creat de Martin Richards) si limbajul B (inventat de Ken Thompson). In anii ’70, limbajul B a influentat in cel mai inalt grad specificarea limbajului C. Mult timp, standardul de facto pentru C a fost versiunea ce insotea sistemul de operare UNIX. Acest standard a fost descris pentru prima data in cartea The C Programming Language, scrisa de Brian Kernigan si Dennis Ritchie, aparuta in 1978 la editura Prentice Hall. Odata cu cresterea popularitatii calculatoarelor personale, au fost create numeroase implementari de C, ceea ce a generat o problema noua: compatibilitatea implementarilor. Pentru rezolvarea acestei probleme, in vara anului 1983, a fost infiintat un comitet pentru crearea unui standard ANSI (American National Standard Institute) care avea ca sarcina specificarea definitiva a limbajului C. Standardul ANSI C a fost adoptat in decembrie 1989, primele copii devenind disponibile la inceputul lui 1990. La ora actuala, toate compilatoarele C/C++ se aliniaza la standardul ANSI C. Totodata standardul ANSI C este o baza pentru propunerea de standard ANSI C++(Bazat pe limbajul C, C++ adauga extinderi care permit programarea obiect orientata). Evident, vom reveni asupra topicii C++.

2 Locul limbajului C in lumea limbajelor de programare

Specialistii considera C un limbaj de nivel mediu. Aceasta apreciere nu presupune neaparat ca C este mai putin performant decat limbajele de nivel inalt, precum BASIC sau PASCAL. De asemenea, nu trebuie sa concluzionam ca C are dificultatile unui limbaj de asamblare. C este considerat un limbaj de nivel mediu deoarece combina cele mai bune facilitati ale unui limbaj de nivel inalt cu posibilitatile de control si flexibilitatea unui limbaj de asamblare.

Astfel, ca limbaj de nivel mediu C permite lucrul cu biti, octeti si adrese – elemente de baza pentru functionarea calculatorului. Cu toate acestea, codul C ramane in foarte mare masura portabil.

A Despre un sistem soft spunem ca este portabil daca in momentul in care este scris pe o anumita masina, sub un anumit mediu de operare, poate fi usor adaptat pe alta masina, eventual cu alt sistem de operare.

Tot ca niste trasaturi specifice limbajului C semnalam urmatoarele:

Chiar daca C are cinci tipuri de date de baza, nu este un limbaj centrat pe tipuri de date asa cum este, de exemplu, Pascal. Prin aceasta afirmatie sugeram faptul ca in C lucrul cu diferite instante ale tipurilor de date de baza beneficiaza de un cadru mult mai liberal (controalele compilatorului nu mai sunt atat de severe ca in Pascal).

Spre deosebire de un limbaj de nivel inalt, C nu face aproape nici un control in timpul executarii unui program. Responsabilitatea de a evita producerea erorilor si de a le dibui si corecta, daca le-a ocazionat, este a programatorului.

C permite lucrul direct cu biti, octeti cuvinte si pointeri ceea ce il face potrivit pentru programare la nivel de sistem.

A Numim programare la nivel de sistem activitatea de scriere a codului pentru anumite componente ale sistemului de operare sau care sunt accesorii ale sistemelor de operare.

C are doar 32 cuvinte-cheie (27 din standardul Kernigan & Ritchie si cinci adaugate de comitetul de standardizare ANSI C). Limbajele de nivel inalt depasesc cu mult oferta limbajului C. Faptul ca are atat de putine cuvinte cheie ar trebui sa fie benefic pentru procesul de invatare a limbajului. Ceea ce se invata greu in C este “democratia” prea mare in comparatie, de exemplu, cu stilul autoritar in care compilatorul Pascal asista scrierea de programe corecte.

3 C este limbaj structurat

Deoarece nu ofera suport pentru implementarea autentica a conceptului de structura – in – blocuri, C este numit, simplu, limbaj structurat. C nu este limbaj <structurat in blocuri> deoarece nu permite definirea de functii in interiorul altor functii, situatie absolut normala si cu efecte interesante asupra modularizarii codului Pascal, de exemplu.

Caracteristica esentiala a limbajelor structurate este compartimentarea codului si a datelor, prin care se intelege capacitatea unui limbaj de a separa si ascunde de restul programului toate informatiile si instructiunile necesare efectuarii unei sarcini.

O modalitate de realizare a compartimentarii este utilizarea de subrutine care folosesc variabile locale. Utilizand variabile locale putem scrie modulele astfel incat ceea ce se intampla in interiorul lor sa nu aiba efecte in alte sectiuni ale programului. C permite compartimentarea in acest spirit, utilizand potentialul notiunii de functie.

A Utilizarea excesiva a variabilelor globale, in orice limbaj de programare structurat, permite greselilor sa se strecoare in program, sub forma efectelor secundare neprevazute.

Evident, un limbaj de programare structurat descurajeaza sau interzice utilizarea instructiunii goto.

Un alt mod de a structura si de a compartimenta codul, in C, este utilizarea blocurilor de cod. Un bloc de cod este un grup de instructiuni alaturate logic, tratate ca un singur element. Blocurile de cod permit reprezentarea multor algoritmi cu limpezime, eleganta si eficienta. In C un bloc de cod poate fi creat incluzand intre acolade un grup de instructiuni.

Daca in Pascal am avea:

.

if I<10

then

begin

gotoxy(12,I);

write(‘Valoarea curenta a lui I:’,I);

end;

atunci in mod echivalent, in C avem:

.

if (I<10)

.

Blocul de cod este delimitat de acolade.

L-am evidentiat folosind efectul de umbrire (shading) a textului.

4 Relatia limbajului C cu programatorul



Specialistii in limbaje de programare afirma ceea ce, de fapt, s-a avut in vedere la specificarea unor limbaje: acestea nu sunt pentru programatori. Limbaje precum COBOL sau BASIC au fost specificate nu pentru a indulci soarta programatorilor sau pentru a mari siguranta in exploatare a codului creat, ci pentru a largi accesul celor multi la intelegerea programelor sau chiar la scrierea de programe pentru a rezolva probleme simple.

Din contra C (ca si C++) a fost creat, influentat si testat de catre adevaratii programatori. Rezultatul final este ca C ofera programatorului exact ceea ce isi doreste: restrictii putine, structurare, blocuri de cod, functii de sine statatoare si un set compact de cuvinte cheie. De asemenea faptul ca poate fi utilizat in locul limbajelor de asamblare ii sporeste limbajului C popularitatea printre programatori.

5 Componentele de baza ale unui program C

In Tabelul 1 prezentam cuvintele-cheie, care, utilizate conform regulilor sintactice specifice, permit scrierea de programe in C. Obisnuinta de a scrie programe in alte limbaje de programare poate fi de un real folos in C. Astfel, multe din abilitatile cultivate ca autori de programe Pascal sunt transpuse, cu unele modificari de sintaxa sau semantica si in C. Diferite compilatoare de C pot beneficia de extinderi sintactice care permit programelor sa beneficieze de avantajele unor medii de operare particulare.

Auto

Break

Case

Char

Const

Continue

Default

Do

double

else

enum

extern

float

for

goto

if

int

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while

Tabelul 1 Cele 32 cuvinte-cheie definite de standardul ANSI C

Din cele 32 cuvinte-cheie prezentate in Tabelul 1, cele prezentate cu caractere bold au fost adaugate de comitetul ANSI C, celelalte corespunzand standardului C original.

A Toate cuvintele-cheie in C se scriu cu litere mici . De asemenea, este important sa stim ca in C literele mari difera de cele mici. Astfel ca, in timp ce for este cuvant-cheie, FOR nu este cuvant-cheie.

AToate programele C constau din una sau mai multe functii a caror sintaxa si semantica o vom prezenta in sectiunile urmatoare.

In sfarsit, componentele unui program C simplu se grupeaza in urmatoarele sectiuni:

Directive preprocesor

Sectiunea de definire a tipurilor si constantelor globale

Antet program principal

Sectiunea declarativa

Sectiunea executabila

In aceasta sectiune se includ bibliotecile de care are nevoie programul

In aceasta sectiune sunt definite constante sau tipuri de date necesare in program

In aceasta sectiune se fac toate declaratiile de variabile ale programului

In aceasta sectiune se amplaseaza versiunea cod C a algoritmului care rezolva problema

Un programator Pascal recunoaste in acest sablon de organizare a codului unui program C o parte din “filozofia” scrierii codului Pascal dar si o serie de elemente inedite care il atentioneaza asupra faptului ca limbajul C este o lume care propune o noua abordare a unei probleme mai vechi :invatarea calculatoarelor sa rezolve anumite probleme. Aceasta noua abordare o vom dezbate treptat in sectiunile care vor urma.






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 535
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2021 . All rights reserved

Distribuie URL

Adauga cod HTML in site