Sunteți pe pagina 1din 9

Ministerul Educaiei i Tineret al Republicii Moldova

Universitatea Tehnic a Moldovei

Catedra: Informatica Aplicat

Raport
Lucrarea de laborator Nr.1
Teoria Sistemelor

21/3/2016

A efectuat:
A verificat:

st. gr.MI-141 Cazacliu Ion


dr.conf.univ. tefan Marin

Chiinu, 2016

Tema: Modelul conceptual al limbajului de programare { C }

Ce este un model conceptual ?


Modelul conceptual reprezint arta planificrii, dezvoltrii care produce rezultatul dorit, care ne arat
fenomele ce se produc in cadrul sistemelor i activitile care l caracterizeaz, preciznd modul de
realizare a interconexiunilor i activitilor pentru atingerea scopului i a obiectivului unui sistem.
Un model conceptual trebuie s reprezinte esena sistemului, care analizeaz nsui domeniul cu toate
componentele i etapele sale de elaborare, trebuie s reprzinte toate etapele modelrii unui sistem pe
nivele, unde funciile principale sunt amplasate dupa rang, importan i ordine pe orbite, asigurnd
structura sistemului.
Procesul crerii unui model conceptual reiese din obiectivele modelarii sistemului, adic : Rezultatul
dorit datorit activitii, atins sau obinut intr-un interval de timp anumit.

Ce este un limbaj de programare ?


Un limbaj de programare este un set bine definit de expresii, reguli i tehnici valide de formulare a
instruciunilor pentru un computator.
Un limbaj de programare are definite un set de reguli sintactice i semantice, care dau posibilitate
programatorului s specifice n mod exact i amnunit aciunile pe care trebuie s le execute
calculatorul, n ce orfine i cu ce date. Specificare limbajelor de programare constnd practic n
ntocmirea/scrierea programelor (programare).

Limbajele de programare se mpart n urmtoarele categorii :


Dup paradigma programrii :

Limbaje ezoterice, ex. Brainfuck


Limbaje procedurale, ex. C, Java, Pearl
Limbaje funcionale, ex. ML, Haskell
Limbaje pentru programarea logic, ex. Prolog, DATALOG
Limbaje mixte, ex. LISP

Dup nivelul de abstractizare (care se refer la uurina cu care programatorii citesc i neleg
programele)

Limbaje de generaia ntia (limbajele main)


Limbaje de genreaia a doua (limbaje de asamblare)
Limbaje de generaia a treia (limbaje de nivel nalt, cum ar fi : C, C++, Java, Pascal,
Fortran .a)
Limbaje de generaia a patra(limbaje neprocedurale, orientate pe rezolvarea unei anumite
clase de probleme : ex. SQL .a)
Limbaje de generaia a cincea(limbaje utilizate n domenii precum logica fuzzy, inteligen
artificial sau i reele neuronale : ex. Prolog, LISP .a)

Limbajul de programare C
C este un limbaj de programare standardizat. Este implementat pe majoritatea platformelor de calcul
existente azi, i este cel mai popular limbaj de programare pentru scrierea de software de sistem.
Este apreciat pentru eficiena codului obiect generat de compilatoarele C, i pentru portabilitatea sa.
A fost dezvoltat la nceputul anilor 1970 de Ken Thompson i Dennis Ritchie, care aveau nevoie de
un limbaj simplu i portabil pentru scrierea nucleului sistemului de operare UNIX.
Sintaxa limbajului C a stat la baza multor limbaje create ulterior i nc populare azi : C++, Java,
JavaScript, C#, D.
C este un limbaj de programare relativ minimalist ce opereaz n strns legtur cu hardware-ul, fiind
cel mai apropiat de limbajul de asamblare fa de majoritatea celorlalte limbaje de programare.
C este prezentat uneori ca asamblor portabil, fcnduse astfel diferenele principale fa de limbajele
de asamblare: codul unui program C poate fi compilat i rulat pe aproape orice tip de main(calculator),
asemntor altor limbaje de programare, n timp ce limbajele de asamblare sunt specifice unui anumit
model de main. Limbajul C aparine clasei limbajelor de nivel sczut sau de nivel mediu, aceasta
indicnd strnsa legtur ntre interoperabilitate i echipamentul hardware.
C a fost creat avnd drept scop important de a face ca programele mari s poat fi scrise mai uor i cu
mai puine erori n paradigma programrii procedurale, dar fr a pune obstacole n scrierea
compilatorului de C, care este ncrcat de caracteristicile complexe ale limbajului.
Caracteristicile limbajului de programare C :
Este un limbaj de baz simplu, cu importante funcionaliti cum ar fi funciile
matematice sau cele de manipulare ale fiierelor.
Este focalizat de paradigma programrii procedurale, care faciliteaza programarea intrun mod structurat.
Utilizeaz un set simplu de tipuri de date ce impiedic multe operaii neintenionate.
Folosete un limbaj preprocesor (preprocesorul C), pentru sarcini cum ar fi definirea de
macrouri i includerea mai multor fiiere surs.
Permite accesarea la nivel sczut a memoriei calculatorului prin utilizarea pointerilor.
Permite folosirea parametrilo, care sunt comunicai funciilor prin valoare i nu prin
referin.
Pointeri la funcii, ce permit forme rudimentare de nchidere (closure) i polimorfism.
Declararea variabilelor.
Structuri de date sau tipuri de date agregate, definite de utilizator prin (struct), ce permit
ca date nrudite s fie combinate i manipulate ca un ntreg.
Caracteristicile care lipsesc in C :

Clasele i obiectele (programarea orientat pe obiecte)


Un sistem avansat de tipuri de date.
Programarea generic.
Suprancrcarea.
Procesarea listelor.

Un sistem automat de colectare a rezidurilor (Garbage collection)

Dei lista minusurilor limbajului C este destul de lung, aceasta nu reprezint un dezavantj suficient de
mare pentru a inhiba utilizarea limbajului C n practic, deoarece permite ca noi compilatoare s poat fi
scrise pe noi tipuri de platforme i pentru c permite programatorului s in bine sub control programul
pe care l scrie. Acesta este unul din motivele ccare face ca un cod scris n C s fie mult mai eficient
dect dac ar fi scris n alte limbaje de programare. Numai un cod scris cu foarte mare grij ntr-un
limbaj de asamblare poate fi mai performant, deoarece are control integral asupra mainii. Dar
performana avansat a compilatoarelor, combinat cu complexitatea noilor tipuri de procesare, a fcut
ca limbajul C s fie preferat i s fie acceptat din ce n ce mai mult de programatori.
Una din consecinele acceptrii i eficienei C-ului este aceea c multe compilatoare, biblioteci i
interpretoare ale limbajelor de nivel nalt sunt adesea implementate n C.

Modelul conceptual al limbajului de programare C


Limbajul C cuprinde :
Atomi lexicali ( identificatori, constante_numerice_primare,
constante_numerice_secundare, variabile, caracter, ir, operatori, semne de punctuaie )
Separatori ( spaii, comentarii, terminator de linie )
Atomii i separatorii se construiesc dinsimbolurile care constituie alfabetul limbajului C.
Simbolurile se codific conform codului ASCII (American Standard Code for Information
Interchange), prin cte o configuratie de 8 bii (un octet), rezult faptul c sunt 256 (0-255) de caractere
n codul ASCII.
Alfabetul cuprinde simboluri grafice i simboluri fr corespondent greafic :
Simboluri grafice

Simboluri fr corespondent grafic

n codificarea ASCII :
Sapiul are codul mai mic dect simbolurile grafice ( 32 )
Cifrele (n ordine cresctoare), literele mari i mici (n ordine alfabetic) ocup cte trei
zone compacte.

Atomii lexicali
Folosind simbolurile grafice se construiesc atomii lexicali :
Identificatori
Constante (explicite) numerice, caracter, ir.
Operatori
Semne de punctuaie
Atomii sunt separai de separatori, caracterul de tabulare orizontal HT, terminatorul de lini NL i
comentariul (orice text aflat ntre combinaiile de caractere /* i */, sau textul cu // pn la sfritul
liniei).
Numele sau identificatorii se compun dintr-o secven de litere, cifre i _ (underline), primul caracter
trebuind s fie liter sau _. Numele sunt case sensitive, deci se face deosebire ntre literele mari i mici.

Pot fi :
Nume utilizator nume de variabile, constante simbolice, funcii, tipuri, structuri, uniuni, se
obinuiete ca numele constantelor simbolice s fie compuse din majuscule o constant

simbolic se definete prin directiva #define fiind recunoscut n toate liniile de program ce
urmeaz definirii, preprocesorul, anterior compilrii, nlocuiete orice apariie a unei constante
simbolice cu definiia sa.
Cuvinte cheie ale limbajului C pot fi folosite doar cu nelesul cu care au fost definite.
Cuvinte rezervate nelesul poate fi modificat, de evitat acest lucru, pentru c multe nume
rezervate de compilator, invizibile programatorului, incep cu _, este indicat a nu utiliza _ pentru
nceputul unui nume utilizator.
Exemple de nume utilizator :
Suma | produs | x1 | X1 | PI | func ia_gauss
Exemple de definiii de constante simbolice (care sunt nume de utilizator):

Tabela cuvintelor cheie 32 cuvinte cheie, dintre care 27 provin din standardul iniial Kernighan
Ritchie, iar 5 au fost adugate de comitetul ANSI (enum, const, signed, void, volatile).

Tabela cuvintelor rezervate proprii compilatorului C: nume de regitri, moduri de compilare.

Constantele numerice primare pot avea cifre i/sau caracterele .+ - E e .


Constantele nu au semn explicit : +12 sau -12 sunt expresii formate din cte o constant precedat de
operatorii unari +, respectiv -, ocup un spaiu de memorie minim, corespunztor tipului numeric cruia
i aparin.
Constantele numerice primare in C sunt :

ntregi implicit n baza 10 (zecimal); n baza 8 (octal) sunt precedate de 0, n baza 16


(hexazecimal) de 0x;

Reale pot avea doar mantisa sau mantisa i exponent (exponentul este precedat de litera e sau
E i reprezint puterea lui 10);
Constantele numerice secundare in C sunt :
Tablouri
Structuri
Uniuni
Pointeri
Variabile sunt entiti a cror valoari poate fi schimbate pe parcursul executrii programelor, numele
variabilelor sunt nume date unei locaie n memoria calculatorului, aceste locaii pot conine nr. ntregi,
reale i constane caracter.
Constantele caracter se precizeaz ntre apostrofuri. O constant caracter ocup un spaiu de 2 octei
primul este 0, al doilea codul ASCII al caracterului.
Caractere in C sunt :
Un simbol grafic sau codul ASCII n hexazecimal sau octal dup \; exemple: A \x41 101
(sunt echivalente); caracterele \ se reprezint ca i constante :\\ \
Un simbol fr echivalent grafic, dat ca secven escape: \n, \xa, \12 (sunt echivalente).
Constantele ir se precizeaz ntre ghilimele, fiecare din ir poate fi un simbol grafic, o secven
escape sau un cod ASCII (n octal sau hexazecimal), spaiul ocupat este un numr de octei cu unul mai
mare dect al caracterelor de ir, ultimul caracter fiind rezervat pentru terminatorul de ir;
Operatorii sunt formai din caracterele din tabela de simboluri grafice.
Ca semn de punctuaie limbajul C folosete simbolul ; care termin instruciunile.

Schema modelului conceptual al lumbajului de programare C :

Reale cu precizie dubl

Numere
0,1,2...9
Simboluri speciale

ntregi

Litere
A...Z
a...z

Reale
Caracter

Tipuri
de
date

Set de
caractere

ntregi

Primare

Reale
Caracter

Cuvinte cheie

Cuvinte rezervate

Constante
Tablouri

Secundare

Operatori

Variabile

Uniuni

Locaie de memorie

Logici
Reguli pentru denumire

< > || && !=

Structuri

Matematici

Pointeri

Caracter
Reale

ntregi
+-*/=%

Concluzie:
n urma efecturii acestui laborator am facut cunotin cu principiile pe baza
crora sunt formate sistemele, i din ce sunt compuse acestea, prin urmare am nsu it
noiunea de model conceptual i scopul i rolul acestuia n modelarea sistemelor,
astfel dup cunotinele primite n urma elaborrii acestui laborator, am elaborat
modelul conceptual al limbajului de programare C efectund toi paii necesari
pentru a reda modelul conceptual de funcionare al acestui limbaj.

Referine:

ndrumar pentru laboratorul nr.1 (.Marin)


https://ro.wikipedia.org/wiki/C_(limbaj_de_programare)
http://artutorials.blogspot.md/2012/04/components-of-c-language.html
https://en.wikipedia.org/wiki/Conceptual_model