Documente Academic
Documente Profesional
Documente Cultură
Dezvoltarea programelor
Utilizarea Sistemelor de Operare (USO)
20 octombrie 2014
Departamentul de Calculatoare
CSE Dep Cursul 3, Dezvoltarea programelor 1/54
Moto
There are only two kinds of programming languages: those people
always bitch about and those nobody uses.
Bjarne Stroustrup
One of the main causes of the fall of the Roman Empire was that
lacking zero they had no way to indicate successful termination
of their C programs.
Robert Firth
CSE Dep Cursul 3, Dezvoltarea programelor 2/54
Utilizarea sistemului de s
,
iere
separator director
ierarhie
ier
dimensiune
cale
nume
director
r d cin
creare
tergere
listare
a are
opera ii
recursive
trunchiere
redirectare
concepte
opera ii
nume
binar/text
ASCII
editare
arhivare
comprimare
copiere
mutare
schimbare
director
CSE Dep Cursul 3, Dezvoltarea programelor 3/54
Utilizarea sistemului de s
,
iere
http://www.geekarmy.com/geeks/2906/file-transferring/
CSE Dep Cursul 3, Dezvoltarea programelor 4/54
Suport curs
Capitolul 11 Compilare s
,
i linking
automatizare
ecientizare
divertisment
extensibilitate
us
,
urint
,
a n distribuire/copiere
CSE Dep Cursul 3, Dezvoltarea programelor 7/54
De ce dezvoltam software?
creativitate
us
,
urint
,
a n distribuire
reutilizare
provocare
dezvoltare continua
CSE Dep Cursul 3, Dezvoltarea programelor 8/54
Prole de persoane implicate
utilizatori
antreprenori s
,
i oameni de afaceri
manageri
proiectant
,
i s
,
i arhitect
,
i software
proiectant
,
i de interfet
,
e
administratori de sistem/ret
,
ea
CSE Dep Cursul 3, Dezvoltarea programelor 9/54
Procesul de dezvoltare software
trasare specicat
,
ii
proiectare
implementare
testare
integrare
instalare (deployment)
mentenant
,
a
CSE Dep Cursul 3, Dezvoltarea programelor 10/54
Implementare
depind de opt
,
iunile dezvoltatorilor, ale proiectului s
,
i ale
pachetelor care vor folosite
performant
,
a s
,
i legaturi cu sistemul de operare: C
scripting s
,
i automatizare: Perl, Python, Bash
un s
,
ier al unui program este denumit s
,
ier cod sursa
pentru a nt
,
elege un program este necesara cunoas
,
terea
sintaxei limbajului
editoare
IDE
facilitat
,
i
convent
,
ii s
,
i recomandari pentru scrierea codului sursa
us
,
urint
,
a n a nt
,
elege codul sursa
consecvent
,
a
aspecte acoperite
indentare
nume de funct
,
ii, variabile, constante, macro-uri
spat
,
iere
comentarii de cod
Python PEP 8
CSE Dep Cursul 3, Dezvoltarea programelor 18/54
Controlul versiunii
codul este t
,
inut ntr-un repository
us
,
or de creat repository-uri, de lucrat n echipa
contribut
,
ii la alte proiecte
instant
,
a GitLab n facultate
https://gitlab.cs.pub.ro/
nume sugestive
cod indentat
funct
,
ii de dimensiune rezonabila
funct
,
ionalitat
,
i diferite n s
,
iere/module diferite
consecvent
,
a
CSE Dep Cursul 3, Dezvoltarea programelor 21/54
Operat
,
iile utilizatorului cu aplicat
,
iile
instalare
dezinstalare
parcurgere documentat
,
ie
congurare s
,
i personalizare
arhive cu s
,
ierele necesare pentru instarea aplicat
,
iei
s
,
iere de date, s
,
iere de congurare, s
,
iere executabile
s
,
ierele executabile sunt folosite pentru a rula aplicat
,
ia
obt
,
inute din codul sursa
un s
,
ier cod sursa poate compilat sau interpretat
compilatoare s
,
i interpetoare
mai multe s
,
iere obiect (+biblioteci) sunt legate (linked)
ntr-un s
,
ier executabil
module obiect s
,
i biblioteci linkate executabil
CSE Dep Cursul 3, Dezvoltarea programelor 27/54
Documentat
,
ie
pentru a nt
,
elege funct
,
ionarea aplicat
,
iei
pot documente, s
,
iere PDF, wiki-uri, pagini de manual
CSE Dep Cursul 3, Dezvoltarea programelor 28/54
De la dezvoltator la utilizator
cod surs
ier
cod surs
ier
obiect
ier
obiect
ier
executabil
pachet
software
ier
de date
ier de
congurare
bibliotec
compilare
compilare
linking
dezvoltator
utilizator
CSE Dep Cursul 3, Dezvoltarea programelor 29/54
De ce programare n limbajul C?
documentat
,
ie, tutoriale, cart
,
i
CSE Dep Cursul 3, Dezvoltarea programelor 31/54
Procesul de dezvoltare pentru programe C
scriere de s
,
iere cod sursa: surse (.c) s
,
i headere (.h)
compilarea s
,
ierelor cod sursa n s
,
iere obiect
linkarea s
,
ierelor cod obiect s
,
i a bibliotecilor n s
,
ier executabil
funct
,
ionalitat
,
ile diferite intra n s
,
iere sursa diferite
ecare s
,
ier poarta numele de modul
CSE Dep Cursul 3, Dezvoltarea programelor 35/54
Compilare s
,
i linking din surse multiple
Compilare cu gcc din mai multe surse
user@host$ ls -F
debug.h http_reply_once.c sock_util.c sock_util.h util.h
user@host$ gcc -Wall -c sock_util.c
user@host$ gcc -Wall -c http_reply_once.c
user@host$ ls -F
debug.h http_reply_once.o sock_util.h util.h
http_reply_once.c sock_util.c sock_util.o
user@host$ gcc http_reply_once.o sock_util.o -o http_reply_once
user@host$ ls -F
debug.h http_reply_once.c sock_util.c sock_util.o
http_reply_once* http_reply_once.o sock_util.h util.h
CSE Dep Cursul 3, Dezvoltarea programelor 36/54
Cauze frecvente pentru erori de compilare s
,
i linking
se uita punct s
,
i virgula de la sfars
,
itul unei instruct
,
iuni
building: obt
,
inerea unui executabil, a unui set de executabile
sau a unui pachet software din cod sursa
sistem de build s
,
i automatizare
lansata n 1998
init
,
ial: search engine + advertising
aplicat
,
ii web
Android
Chrome
YouTube
CSE Dep Cursul 3, Dezvoltarea programelor 50/54
Valgrind
http://valgrind.org
Linux s
,
i Darwin (Mac OS X)
software
implementare
programare
limbaj de programare
biblioteci
framework-uri
cod sursa
coding style
editor
IDE
controlul versiunii
Git
GitHub
GitLab
pachet software
s
,
ier executabil
s
,
ier obiect
compilare
linking
limbajul C
gcc
modularizare
sistem de build
make
Makefile
CSE Dep Cursul 3, Dezvoltarea programelor 52/54
Resurse utile
http://www.oualline.com/style/index.html
http://www.gnu.org/software/make/
http://www.gnu.org/software/libc/manual/
http://git-scm.com/
http://gitimmersion.com/
http://www.moolenaar.net/habits.html
CSE Dep Cursul 3, Dezvoltarea programelor 53/54