23.01.2022 Views

M3 - UF1 - Introducció a C

Introducció al C

Introducció al C

SHOW MORE
SHOW LESS

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++

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!