M3 - UF1 - Introducció a C
Introducció al C
Introducció al C
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Arquitectura d’una computadora
• Processador (CPU, Memòria cau)
• Busos de dades (fletxes del dibuix)
• Memòria
• Perifèrics (entrada, sortida)
Sistemes operatius
Un sistema operatiu és un programa o conjunt de
programes que en un sistema informàtic gestiona els
recursos de maquinari (hardware) i proveeix serveis als
programes d’aplicació
Estadística Juny 2016 respecte l’ús de sistemes operatius
en les 500 computadores més poderoses del planeta
Font: https://www.top500.org/statistics/list/
Llenguatges de programació
És un conjunt d’instruccions dissenyades per expressar
processos que es poden dur a terme amb les
computadores:
• Màquina: uns i zeros que entén el processador
• De baix nivell (llenguatge assemblador): És aquell les
instruccions del qual exerceixen un control directe
sobre el maquinari i estan condicionats per l’estructura
física de la computadora que el suporta.
• De nivell intermedi
• D’alt nivell: expressen els algorismes de forma
adequada a la capacitat cognitiva humana, en lloc de, a
la capacitat executora de les màquines.
Llenguatge màquina i llenguatge assemblador
en hexadecimal
Això és un exemple del llenguatge màquina del processador Intel
8088. El codi màquina en hexadecimal està ressaltat en vermell,
l’equivalent al llenguatge assemblador en lila, i les adreces de
memòria on es troba el codi, en blau. A la part inferior podem
veure un text en hexadecimal i en codi ASCII.
Llenguatge de baix nivell
• Avantatges:
– Màxim aprofitament dels recursos de la màquina
– Màxima velocitat possible
• Inconvenients:
– Mínima portabilitat (depèn de la màquina)
– Requereix la màxima atenció i una organització
estructurada en base als plànols del maquinari i de
l’objectiu del programari.
– Llarg temps de desenvolupament
– Difícil de trobar errors.
Llenguatge assemblador
Llenguatge de nivell intermedi
• Avantatges:
Llenguatge d’alt nivell
– Genera un codi més senzill i comprensible.
– Escriure codi vàlid per diverses màquines i,
possiblement, sistemes operatius.
• Inconvenients:
– Reducció de la velocitat al cedir el treball de baix
nivell a la màquina
– Alguns requereixen que la màquina client tingui
una determinada plataforma.
Llenguatge d’alt nivell
El llenguatge C
• Desenvolupat per Dennis Ritchie a AT&T Bell Labs entre 1969 i 1973
• És un dels llenguatge de programació més utilitzat en l’actualitat:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
• Molt ràpid, eficient i fàcil.
• Permet l’accés a baix nivell a la màquina però permet programació d’alt
nivell.
Història del llenguatge C
1973: inventat per Dennis Ritchie
1978: primera especificació (K&R C: Dennis Richie
and Brian Kernighan)
1989: apareix l’ANSI C (Standard ANSI C89: el més
utilitzat actualment.)
1990: ANSI C adoptat per l’ISO (Standard C90). Nota
C89 i C90 són els mateixos.
1999: Standard ISO C99
No està completament implementat per molts
compiladors
2011: Standard ISO C11
Característiques el llenguatge C
• Poques paraules clau
• Utilitzat per desenvolupar Sistemes Operatius
• Utilitzat per programar des de
microcontroladors fins a supercomputadores
• Llenguatge compilat
• Llenguatge de nivell mitjà-baix
• Permet l'accés “baix” a la memòria del
computador
Paraules clau
C vs altres llenguatges (juliol 2016)
Font: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
C vs altres llenguatges (juliol 2016)
• El C és un subconjunt de C++ i d’Objective-C
• Ha influencia a altres llenguatges:
C#, Java, Perl, PHP, Python
https://en.wikipedia.org/wiki/List_of_C-family_programming_languages
• El C no té:
– Excepcions
– Control de rangs
– Recol·lecció de escombraries
– POO
Creant codi en C
• S’utilitza qualsevol editor de text
• Extensió .c pels arxius font
• Extensió .h pels arxius capçalera
Compiladors
Un compilador és un programa que permet traduir
el codi font d’un programa expressat en llenguatge
d’alt nivell, a un altre llenguatge de nivell inferior
(normalment a llenguatge màquina).
D’aquesta forma un programador pot dissenyar un
programa en un llenguatge molt més proper a com
pensa l'ésser humà, per després compilar-lo a un
programa més manejable per una computadora.
Compiladors de llenguatge C
• GNU compiler collection: gcc (MinGW,
Cygwin)
• Intel C++ compiler
• Open Watcom
• (Borland) Turbo C
• Microsoft Visual C++ (soporta el C99/C11
parcialmente a partir de la versión 2013).
• I molts altres::
http://en.wikipedia.org/wiki/Category:C_compilers
El compilador MinGW
http://mingw.org/
• És una versió nativa per a Windows del
compilador GNU Compiler Collection (GCC)
• És el compilador que ve per defecte amb el
Code::Blocks
• És un compilador de 32 bits
• La seva variant per a 64 bits és el MinGW-64,
la podem descarregar de:
http://mingw-w64.sourceforge.net/
Llenguatge interpretat
vs
Llenguatge compilat
• Els llenguatges compilats són llenguatges d’alt
nivell en els que el codi font es tradueix a
llenguatge màquina per a una execució ràpida.
Exemple: Llenguatge C/C++
• Un llenguatge interpretat és aquell en el qual les
instruccions es tradueixen o interpreten una a
una essent típicament unes 10 vegades més lent
que els programes compilats:
Exemples: Python, VisualBasic, JavaScript
Entorn de desenvolupament integrat
(IDE Integrated Development Environment)
Un IDE és un entorn de programació que ha
estat empaquetat com un programa d’aplicació;
és a dir, consisteix en:
• Un editor de codi
• Un compilador
• Un depurador
• Un constructor d’interfície gràfica (GUI)
IDEs per a C/C++