Sunteți pe pagina 1din 47

Cojocea Manuela-Simona

Microsoft Student Partners


 .model tiny
.data
HelloMessage db 13,10,'Hello World !',13,10,'$'
.code
org 100h
start:
mov ax,@data
mov ds,ax
mov ax,3
int 10h
mov ah,9
mov dx,offset HelloMessage
int 21h
xor ax,ax
int 16h
mov ax,3
int 10h
mov ah,4ch
int 21h
end start
 Assembler=limbaj de asamblare
(lucrează în mod direct cu regiştrii microprocesorului)

 Assembler este un limbaj de programare „low-


level” pentru computere, microprocesoare,
microcontrollere şi alte circuite integrate.

 Acesta implementează o reprezentare simbolică


a codului maşină(binar) şi a altor constante
necesare pentru programarea unei arhitecturi
date de CPU.
 Ce e un limbaj de programare?
 Cum programăm?
 Paradigme de programare
 Istoric C/C++
 C++ azi
 Mediu de programare vs. limbaj de
programare
 Structura unui program C++
 Modul de învăŃare „Hello world!”
 Realizarea unei soluŃii software
 IDE
 Visual Studio 2008/2010
 Un limbaj de programare este un set bine
definit de expresii și reguli (sau tehnici)
valide de formulare a instrucțiunilor pentru
un computer.

 Un limbaj de programare are definite un set


de reguli sintactice și semantice.
 După paradigma programării

-limbaje procedurale; ex. C, Java, Perl

-limbaje funcŃionale: ex. ML, Haskell

-limbaje pentru programarea logică ex.Prolog,


DATALOG

-limbaje mixte: ex.LISP oferă un amestec


heteroclit și netipizat de programare imperativă
și programare funcŃională
 OBS:
Limbajele neprocedurale sunt concepute
pentru a gândi un program la nivel de
instrucŃiune , pe când cele procedurale ,
obligă programatorul să conceapă programe
la nivel de bloc
 După nivelul de abstractizare (care printre altele
corespunde cu ușurința cu care programele pot fi citite și
înțelese de către programatori):

-limbaje de generația întâia: limbajele cod-mașină


(limbaje mașină)
-limbaje de generația a doua: limbajele de asamblare

-limbaje de generația a treia: limbaje de nivel înalt, cum


ar fi C-ul (și toate derivatele sale: C++, Java, ...),
Pascal, Fortran ș.a.

-limbaje de generația a patra: limbajele neprocedurale,


orientate pe rezolvarea unei anumite clase de probleme:
SQL ș.a.

-limbaje de generația a cincea: limbaje utilizate în domenii


precum logica fuzzy, inteligența artificială sau și rețelele
neuronale: Prolog, LISP ș.a.
 Dupa vechime

-Limbaje din secolul trecut; ex. LISP și


FORTRAN din anii '50

-Limbaje din ultimul deceniu; ex. Haskell,


Ruby
 Algoritm!!!

 Limbajul de programare e doar o unealtă, nu


poate gândi în locul nostru

 Nu există soluŃie perfectă, ci soluŃie acceptabilă

 Stiluri de programare diferite


ex.
int a;
a=3; a++;//a=a+1;
 Programare procedurală

 Programare orientată pe obiecte

(Paradigmă:
1)Modelul sau arhetipul unui proces sau
sistem
2)ColecŃii de caracteristici de evaluare şi
criterii de abstractizare)
 Se bazează pe conceptul de apel de
procedură

 Procedură=rutină=subrutină=metodă=
=funcție=o serie de pași care trebuie
executați

 Orice procedură poate fi apelată la orice


moment din execuția unui program, inclusiv
de alte proceduri sau chiar de ea însăși.
 se bazează pe idea de a crea programele ca o
colecție de obiecte, unități individuale de cod
care interacționează unele cu altele, în loc de
simple liste de instrucțiuni sau de apeluri de
proceduri

 Caracteristici:
-PosibilităŃi complexe de organizare şi
structurare a implementărilor
-Reutilizarea codului
-Trecere naturală de la specific la generic
-Apropierea de gândirea umană
 Procedural: datele sunt separate de
instrucŃiuni
Ex. (în C): int a; a=3;
Date
Proceduri
 OO: datele sunt organizate alături de
funcŃii, în obiecte
Ex. (în C++): int a=3;
Obiecte=Date+Proceduri
spaghetti
code
 Limbajul C a fost creat în 1971 de către Dennis Ritchie
şi Brian Kernigham pentru dezvoltarea sistemului de
operare UNIX

 Principalele caracteristici ale limbajului sunt :


-limbaj structurat de nivel înalt ;
-posedă concepte de nivel scăzut , ceea ce permite
exploatarea portabilă a caracteristicilor intime unei
maşini ;
-rutine de conversie a datelor foarte evoluate ;
-tipuri de date definibile de către utilizator ;
-gestionarea elaborată a datelor de tip dinamic ;
-definirea de noi funcŃii ;
-adresări indirecte ale datelor, variabilelor
(pointeri) ;
-recursivitate ;
-set complet de funcŃii matematice;
-funcŃii pentru realizarea de grafică elementară
2D;
-funcŃii de apel servicii DOS ;
-posibilitatea definirii de overlay-uri pentru un
program ;
-concizie deosebită a limbajului
 OBS: C este un limbaj de programare
procedural!!!!

 Este folosit şi astăzi pentru scrierea


sistemelor de operare şi a programelor
software care trebuie să fie cât mai
compactificate(ex. antivirus)
 BCPL( Martin Richards)=> B( Ken Thompson)
=>C

 COMPLEXITATE!!!

 C++ conŃine extensiile orientat-obiect


ale limbajului C

 C++ permite atât lucrul procedural cât


şi orientat-obiect

 (limbaj de tranziŃie?!?)
 creat de Bjarne Stroustrup în 1979,la Bell
Laboratories din Murray Hill, New Jersey
 iniŃial a fost numit “C with Classes”
 în 1983 numele a fost schimbat in C++
 Păstrează filozofia care stă la baza C:

programatorul e şeful,
nu limbajul!!!
 3 revizuiri majore:
- 1985
-1990
- odată cu procesul de standardizare C++
[ ANSI (American National Standards
Institute) and ISO (International Standards
Organization) au format un comitet de
standardizare]
 un prim proiect depus la 25 ianuarie 1994
 crearea Standard Template Library (STL) de
către Alexander Stepanov declanşează
nevoia de actualizare a limbajului
[STL este un set vast de funcŃii necesare pentru manipularea
datelor]
 ultimul proiect adoptat la 14 noiembrie
1997(a devenit standard ANSI/ISO în
1998)
 Darrrrrrrrrr,
 C++ rămâne un reper pentru tinerii
programatori pentru că:
-formează gândirea algoritmică
-e un limbaj concis şi oferă multe facilităŃi
-e uşor de învăŃat
-permite trecerea de la procedural la
orientat-obiect
 Mediu de programare-un software care
permite scrierea şi rularea programelor într-
un anumit limbaj de programare

 Mediu de programare<>limbaj de
programare!!!

 IDE=Integrated Development Environment


 compilare în linie de comandă

 compilator minimalist

 IDE
 În curand…:)
 C
 C++
 C+-
 C—
 STL
 MFC(bonus)
 Visual C++
 Visual Studio 2010
 C#
 Visual C#
-Concept

-Transpunere în cod

-Corectarea erorilor (de sintaxă şi mai ales


de logică)

-Eficientizare şi/sau rafinarea soluŃiei

-Deployment
 NEXT TIME!
 C++ este un limbaj de programare având la
baza paradigma procedurală dar conŃine
extensii orientat-obiect

 Procedural vs. orientat-obiect(avantaje şi


dezavantaje)

 Limbaj de programare<>Mediu de
programare!!!
 IDE(Microsoft Visual Studio)

 Structura unui program C++

 Paşi în realizarea unui produs software


Sugestii,
reclamaŃii,
întrebări
 Următoarea întâlnire,

MarŃi 16 noiembrie 2010,


ora 16, AMF. Spiru Haret
Nu uitaŃi de
formularele
de feedback!
Vă mulŃumesc!

Cojocea Manuela-Simona
simonich444@yahoo.com

S-ar putea să vă placă și