Capítol 0
Introducció al crèdit.
- Què és un programa?.
- Llenguatges de Programació.
- Ensambladors
- Compiladors
- Intèrprets
- Història del llenguatge C.
- Característiques del llenguatge C.
- Realització d’un programa en C.
- Exercicis.
En aquest primer tema intentarem ubicar el crèdit dins el cicle
formatiu i explicar i delimitar els continguts del crèdit. Començarem
amb uns conceptes bàsics...
0.1. Què és un programa?.
Intuitivament podem associar el concepte de màquina a un instrument
físic capaç de realitzar un cert treball o operació.
Des del punt de vista del control del seu funcionament, podem classificar
les màquines en els següents tipus:
-
màquines de control manual: són governades per un agent extern
que desencadena unes determinades operacions en cada moment.
-
màquines automàtiques: que actuen per si mateix, sense necessitat
un agent extern, encara que puguin respondre a estímuls exteriors.
Dins el conjunt de les màquines automàtiques, podem diferenciar
dos tipus; les que sempre tindran el mateix comportament a partir d’uns
estímuls exteriors, i aquelles que modificant un component tindrà
diferent comportament baix els mateixos estímuls. Aquestes últimes
màquines s’anomenen programables i la part modificable programa.
Per tant, una màquina programable és comporta com a diferents
màquines particulars depenent del programa utilitzat.
Nosaltres disposarem d’una màquina base, l’ordinador, i el nostre
objectiu serà crear programes per tal de construir màquines
automàtiques completes, que executen una sèrie d’operacions.
Per tant, podem definir programa com la sèrie instruccions donades
al ordinador, en un llenguatge entès per ell, per dir-li exactament
les operacions que ha de realitzar.
0.2. Llenguatges de Programació.
Un programa cal que estigui escrit en un llenguatge comprensible per l’ordinador.
Des de el punt de vista físic, un ordinador es una màquina
electrònica. Els elements físics ( memòria, CPU, etc.)
de que disposa l’ordinador sols reconeixen dos estats, apagat i encès,
representats per 0 i 1. Cada estat és denomina bit. Per tant, per
representar i manipular informació l’ordinador utilitza cadenes
de bits. Aleshores si volem donar-li instruccions a l’ordinador hem d’utilitzar
cerós i uns, llenguatge màquina, qüestió que
ens portaria molt de temps i molts errors. Per això apareixen els
llenguatges de programació, llenguatges que el mateix ordinador
traduirà al llenguatge màquina.
0.2.1. Ensambladors.
Els primers llenguatges de programació utilitzava codis mnemotècnics
per indicar a la màquina les operacions ha realitzar, operacions
molt bàsiques dissenyades a partir de la coneixença de l’estructura
interna de la pròpia màquina.
Cada instrucció en llenguatge ensamblador correspon a una instrucció
en llenguatge màquina. Aquests tipus de llenguatges s’anomenen ensambladors
i depèn totalment del processador que utilitzi la màquina.
Per això aquests tipus de llenguatges es diu que estan orientats
a les màquines.
![](imagenes/cap0002.gif)
Avui dia son més utilitzats els llenguatges orientats al problema,
denominats també d’alt nivell, amb la qual cosa aconseguim:
-
la independència de la màquina, podent utilitzar el mateix
programa en diferents tipus d’ordinador, amb l’única condició
de dispondre d’un programa traductor corresponent a cada màquina.
-
un llenguatge més comprensible, més proper al llenguatge
humà.
Els llenguatges d’alt nivell és poden traduir al llenguatge màquina
de dos maneres diferents, mitjançant compiladors o intèrprets.
0.2.2. Compiladors.
Els compiladors són programes que tradueixen el programa escrit
amb llenguatge d’alt nivell a llenguatge màquina. Després
de la traducció s’executa automàticament un programa denominant
enllaçador encarregat d’incorporar les funcions de la biblioteca
del llenguatge utilitzat necessàries per al nostres programa. El
compilador detectarà els possibles errors del programa font per
aconseguir un programa executable depurat.
![](imagenes/cap0003.gif)
El programa compilat ja està a punt per executar.
0.2.3. Intèrprets.
A diferència d’un compilador, un intèrpret no genera un programa
escrit en llenguatge màquina a partir del programa font, sinó
que efectua la traducció i l’execució simultàniament
per cada una de les sentències del programa. Aleshores l’execució
del programa resulta més lenta, encara que facilita la posta a punt
del programa.
0.3. Història del llenguatge C.
A partir dels primers llenguatges de programació (ensambladors,
Fortran, Cobol, etc. ) que tenien unes funcions i objectius molt concrets,
naix el llenguatge C, un llenguatge de caire general. Aproximadament en
1972 el C va ser creat per Dennis Ritchie quan treballava en el disseny
d’un nou sistema operatiu: el UNIX. Tant UNIX com el propi compilador de
C i quasi la totalitat dels programes i eines de UNIX varen ser escrites
en C.
El llenguatge C++ és una evolució del C que l’incorpora
i adopta noves eines per a la programació orientada a objectes,
com ara les funcions virtuals i les lligadures dinàmiques.
Nosaltres en aquest curs tant sols ens ocuparem del llenguatge C, encara
que utilitzarem al compilador TurboC++ aprofitant les millores a nivell
de llibreries que ens aporta aquest compilador respecte al del C.
Una vegada superat la programació orientada a objectes ens podem
introduir en la programació visual per desenvolupar aplicacions
gràfiques i vistoses amb el Visual C++.
0.3.1. Característiques del llenguatge C.
Les característiques més destacades del llenguatge C podíem
resumir-les en:
Programació estructurada |
permet a partir de la operació global a efectuar per al programa,
mitjançant refinaments successius, arribar a les estructures bàsiques
disponibles al llenguatge, amb la ventaja que es un llenguatge molt flexible. |
Programació modular |
C aconsegueix la modularitat de dues maneres: mitjançant la
divisió funcional i la possibilitat de repartir el codi en arxius
independents. |
Codificació en alt i baix nivell simultàniament |
moltes vegades és denomina al C un llenguatge de nivell mig,
doncs les seues estructures bàsiques són semblants al llenguatge
natural, però al mateix temps permet programar com a llenguatge
ensamblador perquè treballa amb objectes estrictes del computador,
com ara direccions, números, caràcters i combinació
d’expressions numèriques. Per això el sistema operatiu UNIX
es va complimentar quasi totalment amb C, utilitzant molt poc el llenguatge
ensamblador. |
Portabilitat |
com no esta lligat a cap sistema operatiu permet la portabilitat dels
programes escrits en C, es a dir, pot ser executat en màquines de
diferents característiques amb mínimes modificacions. |
Producció de codi objecte altament optimitzat |
després d’escriure i depurar el programa font obtenim un programa
objecte preparat per ser executat. |
Programa de caire general |
és molt utilitzat en aplicacions molt diferents, com científiques,
industrials, simulacions de vol, etc. |
0.4. Realització d’un programa en C.
En aquest apartat exposarem les bases per realitzar un programa, explicitant
les característiques del llenguatge C:
Anàlisis del problema |
Concretar l’objectiu que ens demanen i tindré una idea general
de les possibles solucions. |
Disseny de l’algoritme |
Representar les accions i operacions de forma detallada necessàries
per resoldre el problema. Les propietats de qualsevol algoritme seran la
precisió (ordre en les operacions), la finitud (nombre finit d’operacions)
i la correcció(conduir a la solució). La representació
de l’algoritme es pot realitzar en diverses tècniques, com ara l’ordinograma,
taules de decisió, etc. però nosaltres normalment utilitzarem
el pseudocódic. |
Editar el programa |
Traduir l’algoritme al llenguatge de programació C i escriure’l
en l’editor del TurboC++. Per facilitar la depuració d’errors i
les possibles modificacions caldrà documentar el programa explicant
la funció i les parts que el componen. |
Compilar-lo |
Mitjançant el compilador del TurboC++ , traduirem el programa
escrit en C (programa font) en llenguatge màquina i enllaçarem
amb les funcions necessàries de la biblioteca C i obtindrem un programa
executable. |
Executar-lo |
El programa ja estarà llest per utilitzar, sempre que solucioni
el nostre problema inicial de manera adequada i que no haguen sortit problemes
en la compilació. En aquest dos casos caldrà efectuar un
pas més... |
Depurar-lo |
Mitjançant el Debug del TurboC++ intentarem solucionar els errors
bàsicament de tres maneres: rastrejant( veient la sentència
del programa que és executada), amb punts de parada (parant l’execució
d’un programa en un punt concret i verificar el valor de les variables
en eixe instant) i amb expressions de seguiment (visualitzant els valors
de les variables o expressions mentre s’executa). |
En el següent esquema visualitzarem els fitxers que obtindrem en
el procés de realització d’un programa en C.
En la unitat del disc dur necessitarem per efectuar un programa executable
amb C l’aplicació TurboC++ (l’editor, el compilador , el enllaçador,
el depurador) i els fitxers del programador.
0.5. Exercicis.
Classifica els següents llenguatges de programació segons els
items de la taula: Pascal, C, Cobol, Java, Visual Basic, Prolog, Logo,
Basic, Ensamblador, Fortran, ADA, LISP