Documente Academic
Documente Profesional
Documente Cultură
Structura software
Program - descrierea operaţiilor necesare rezolvării de către sistemul de calcul a unei aplicaţii într-un limbaj de
programare
Limbaj de programare - set bine definit de expresii şi reguli (sau tehnici) valide de formulare a instrucţiunilor pentru un
calculator.
Orice limbaj de progamare este caracterizat prin :
- sintaxă
- semantică
- pragmatică.
Exemple de limbaje de nivel înalt : FORTRAN, BASIC, Pascal, C, C++, C#, Java, Ada, Prolog, Lisp, Python.
Scurt istoric
1940 –limbaje maşină
1950 – limbaje de asamblare
– prima versiune de Fortran (Formula Translator)
1960 – diversificarea limbajelor de nivel înalt
- Cobol (1960) Common Bussines Oriented Language
- Lisp (1960) List Processing
- Algol (1963) Algorithmic Language
- Basic (1963) Beginners All-purpose Symbolic Instruction Code
1970 – apar concepte noi : portabilitate, programare structurată, programare modulară
- Pascal (1971 ) - Niklaus Wirth, ETH Zurich
- C (1972) - Dennis Ritchie, Bell Labs
1980 – apar conceptele de programare orientată obiect, programare funcţională
- Ada (1980 ) - Jean Ichbiah of CII Honeywell Bull
- C ++(1980) -Bjarne Stroustrup, Bell Labs
1990 – apare conceptul de programare distribuită
- Java (1996 ) -James Gosling, Sun Microsystems
- C# (1999) - Anders Hejlsberg, Microsoft.
2000 – apar conceptele de programare genetică precum şi cel de bio-computing
Programe sursă - programe scrise în limbaje de programare simbolice .
Asambloare - programele care realizeaza translarea (traducerea) programelor sursă scrise în limbaje de asamblare
Compilatoare - programele care realizeaza translarea (traducerea) programelor sursă scrise în limbaje de nivel înalt
Editoare de legaturi - Modulele obiect rezultate fie în urma asamblării, fie în urma compilării sunt reunite (legate) într-
un singur modul în aşa-numita fază de editare de legături (link editare), rezultând astfel programul executabil,
care odată încărcat în memorie, poate fi executat de către unitatea centrală.
În cazul în care compilatorul sau editorul de legături semnalează erori, programul sursă trebuie modificat şi procesul de
compilare/editare de legături reluat.
În concluzie :
• Un program executabil este reprezentat de un set de instrucţiuni maşină, care, la rândul lor, sunt reprezentate prin
secvenţe de biţi
• Pentru a putea fi rulat, un program executabil trebuie încărcat în memoria internă
• La orice moment de timp se spune că un calculator se află într-o anumită stare. Starea este caracterizată de un aşa
numit pointer de instrucţiune care indică (pointează) spre instrucţiunea care se execută. Practic este vorba despre
adresa instrucţiunii care se execută şi care este memorată în registrul Program Counter.
• Modalitatea de execuţie a unui grup de instrucţiuni este descrisă de o aşa-numită structură de control
Biblioteci si/sau
alte module
obiect
Compilator Editor de
Editor
legaturi
(creaza si modifica (creaza cod
obiect) (creaza programul
programul sursa)
executabil) Fisier executabil
Exemple de sisteme de operare: DOS, PC-DOS, MS-DOS, Linux, Mac OS , Solaris, UNIX ,Windows, Android
SO multi-utilizator – permit mai multor utilizatori să utilizeze acelaşi computer în acelaşi timp sau la momente
de timp diferite
- Linux
- Unix
- Windows 2000
SO multithreading - permit ca diferite părţi ale unui program să ruleze concurent (în acelaşi timp)
- Linux
- Unix
- Windows 2000
Sistemul de operare
DOS
Procesor
BIOS
de comenzi DOS de baza
(SO)
consola
BIOS
(ROM)
Periferice
- (macro) asambloare
- procesoare de limbaj (compilatoare, interpretoare)
- biblioteci de programe sau proceduri (biblioteci matematice, grafice)
- editoare de legături
- încărcătoare
- depanatoare
- programe pentru gestiunea fişierelor
- medii de programare
Un mediu de programare - IDE ( Integrated Development Environment) este un ansamblu unitar de programe, de sine
stătător, ce asistă utilizatorul în toate etapele necesare scrierii şi execuţiei unui program (editare, compilare, editare de
legături, încărcare, plus programe de manipulare a fişierelor şi depanatoare.
Sumarul Capitolului II
Proprietăţile algoritmilor
- precizie
- claritate
- conciziune
- interpretabilitate
- generalitate
- eficacitate (finitudine)
Clasificarea datelor (după posibilităţile de modificare pe parcursul execuţiei sau de la o execuţie la alta)
- constante
- variabile
Soluţionarea unei probleme folosind un sistem de calcul
Formularea problemei
Problemă • foloseşte "limbaje naturale"
• poate fi ambigă, imprecisă
Proiectarea software-ului :
alegerea algoritmului şi a
structurii de date Algoritm
Algoritm • set ordonat, finit, de paşi
executabili, descrişi fără echivoc
• precis, interpretabil, general
Programarea:
Utilizarea unui limbaj de
programare pentru Program
Program implementarea solutiei
• exprImă un algoritm folosind un
limbaj de programare (de nivle
înalt sau de nivel coborât)
Compilare (Asamblare)
/Link editare:
conversia la cod masina Arhitectura Setului de instrucţiuni
Arhitectura (format executabil) Instruction Set Architecture (ISA)
• specifică setul de instrucţiuni
Setului de (maşină) pe care le poate executa o
unitate centrală
instrucţiuni • specifică tipurile de date şi modurile
de adresare
Limbajul pseudocod foloseşte cuvinte cu înţeles prestabilit, numite şi enunţuri standard, care sunt asociate structurilor
simple şi respectiv celor de control.
Se pot folosi, în faze intermediare ale descrierii algoritmului, şi alte cuvinte, care se constituie însă în aşa-numite enunţuri
nestandard, prefixate cu simbolul asterisc (*).
III.1. Noţiuni de programare structurată
Programarea structurată - este o paradigmă a programării informatice apărută ca un model nou în scopul de a crea noi
tehnici capabile să dezvolte în mod eficient programe. Conceptele de bază au fost enunţate în 1966 prin aşa-numita
Teoremă de structură, publicată într-o lucrare de Böhm and Jacopini.
Modelul simplificat al unui sistem ce calcul presupune operarea cu o maşină capabilă să execute doar 5 operaţii elementare:
- pornirea
- citirea
- atribuirea
- scrierea
- oprirea
Descrierea acestor operaţii într-un algoritm se face folosind corespunzător 5 structuri simple (elementare).
Ordinea în care se execută acţiunile (operaţiile) într-un sistem de calcul este descrisă cu ajutorul aşa-numitelor structuri
de control.
Principiul programării structurate : orice algoritm având o singură intrare şi o singură ieşire poate fi reprezentat ca o
combinaţie de structuri simple şi de trei structuri de control :
- secvenţa
- decizia
- ciclul cu test iniţial
Fără a contraveni principiilor programării structurate, se tolerează si următoarele structuri de control (ce asigură o
descriere mai compactă a algoritmilor)
- ciclul cu test final
- ciclul cu contor
- selecţia
Avantajele stilului structurat în programare sunt :
reducerea erorilor de programare;
lizibilitate sporită a programelor;
facilităţi suplimentare de depanare a programelor;
facilităţi suplimentare de mentenanţă a programelor;
costuri reduse.
Salut Salut
camp curent camp curent camp curent
-1.234 -1.234
A
1000 #
Electronica
a) b) c)
nume variabila
date de intrare
a valoare viteza
-123 0.95
F
nume variabila
valoare
nume caracter
rezultate
Ioan @
d) e)
Figura 5. Modele pentru unităţile funcţionale ale unui sistem de calcul :
a) unitate de intrare, b) unitate de ieşire, c) unitate de memorie externă, d) unitate de memorie internă, e) unitate de calcu
Figura 6.
REPREZENTAREA STRUCTURILOR SIMPLE
SI A BLOCULUI DE EVALUARE
START start
STOP stop
<-- atribuie
citeste
CITESTE
scrie
SCRIE
(bloc de evaluare)
DA NU
corpul ciclului
* Secventa
DA expresie_conditie NU
* Secventa_1 * Secventa_2 NU DA
expresie_conditie
corpul ciclului
NU expresie_conditie DA
NU contor <= corpul ciclului
valoare_finala DA
* Secventa
* Secventa
1. Secvenţa
Enunţ : Dându-se valorile a,b,c, preluate de la consolă, se cere să se calculeze şi să se afişeze valorile expresiilor :
b 2 ac
E1
2
b 2 ac
E2 ab
2
Soluţie :
start
citeşte a,b,c
atribuie E1 ← (b*b – a*c)/2
atribuie E2 ← E1- a*b
scrie E1,E2
stop
DEFINIŢIE : Secvenţa reprezintă un şir de acţiuni care se execută una după alta, în ordinea în care au fost
scrise, efectul fiecărei acţiuni cumulându-se efectului global al acţiunilor ce o preced.
In concluzie, secvenţa poate cuprinde o înşiruire de structuri simple şi sau alte structuri de control, formând astfel ceea ce
se numeşte o structură compusă.