Sie sind auf Seite 1von 9

Tema 1

1.1 Mquinas y programas


Una maquina es un dispositivo o instrumento capaz de realizar un cierto trabajo y
operacin.

1.1.1. Mquinas programables.


Las mquinas no automticas son gobernadas por un operador o
agente externo que desencadena unas determinadas operaciones en
cada momento. Una maquina de escribir.
--Las mquinas automticas actan por si solas, sin necesidad de un
operador, aunque en ocasiones puedes responder a estimulos
externos. Un ascensor automatico.
Otras maquinas automticas son las Programables y su
comportamiento no es siempre el mismo. Es una maquina base, de
comportamiento fijo que se complementa con una parte
variable/modificable que se denomina programa.

1.1.2. Concepto de cmputo.


Cmputo es sinnimo de cuenta o clculo. En informtica se puede
identificar el concepto de computo con el de tratamiento de la
informacin.
Un computo puede expresarse de diferentes maneras, como por
ejemplo, mediante una forma o expresin matematica:
34 x 5 + 8 * 7
Se denomina tambin como un proceso a lo largo del cual se van
realizando operaciones o clculos hasta conseguir el resultado final.

1.1.3. Concepto de computador.


Un computador se define como una maquina programable para el
tratamiento de la informacin. Pose unos elementos fijos (maquina

base) y otros modificables (programa). Las computadoras actuales se


denominan mquinas de programa almacenado. En estas mquinas
la modificacin del programa no implica un cambio de componentes
fsicos de la maquina, sino que estas maquinas poseen una memoria
en la cual se puede almacenar informacin. El programa es pura
informacin, no algo material.

1.2 Programacion e ingeniera de software


1.2.1. Programacion
La labor de desarrollar programas se denomina programacin. Las
tcnicas para desarrollo de software a gran escala constituyen la
ingeniera de software.

1.2.2. Objetivos e la programacion


Los objetivos particulares de la programacin podemos reconocer
los siguientes:

CORRECCION: Antes de desarollar un programa debe


especificarse cual es el funcionamiento esperado.
CLARIDAD: Todos los programas han de ser modificados
despus de haber sido desarrollados inicialmente. Es
fundamental que sus descripciones sean claras y fcilmente
entendibles por otras personas.
EFICIENCIA: Los programas eficientes aprovecharan mejor
los recursos disponibles y su empreo ser mas econmico en
algn sentido.

Si se trata de establecer una importancia relativa entre los distintos


objetivos, la proridad es la correccin. A continuacin debe
perseguirse la claridad y finalmente ha de entenderse la eficiencia.

1.3 Lenguajes de programacin.


Cada modelo de computador podr utilizar una forma particular de
codificacin de programas, que no coincidir con la de otros
modelos. Los programas en cdigo de maquina son
extraordinariamente difciles de leer por una persona. Normalmente
contienen cdigos numricos.
Los lenguajes de programacin sirven precisamente para
representar programas de manera simbolica, en forma de un texto.

1.4. Compiladores e Interpretes


Un compilador es un programa que traduce programas de un lenguaje de
programacin simbolico a cdigo de maquina. A la representacin del programa en
el lenguaje simbolico se le llama programa fuente, y su representacin en cdigo
de maquina se le llama programa objeto.
-Un interprete es un programa que analiza directamente la descripcin simbolica
del programa fuente y realiza las operaciones oportunas. El proceso de un
programa mediante interprete se limita a ejecutar directamente el programa en la
maquina virtual.
El proceso mediante interprete es mas sencillo que mediante un compilador. Su
principal inconveniente es que la velocidad de ejecucin es mas lenta por tratar los
datos de la aplicacin que hay que ir haciendo un anlisis e interpretacin.

1.5. Modelos abstractos de computo.


Si de un conjunto de lenguajes de programacin basados en elementos
computacionales similares extraemos los conceptos comunes, obtendremos un
modelo abstracto de computo. Se recoge los elementos bsicos y formas de
combinacin de una manera abstracta, prescindiendo de la notacin concreta
usada en cada lenguaje.
Existen diversos modelos abstractos de computo (o modelos de programacin):
Programacion funcional, programacin lgica, programacin orientada a objetos,
Son todos modelos universales.

1.5.1. Modelo funcional


El modelo de programacion funcional se basa en el empleo de
funciones. El concepto de funcin se corresponde aqu a manera
bastante precisa con el concepto de funcin en matemticas. Una
funcin es una aplicacin. Las funciones pueden combinarse unas
con otras, de manera que el resultado obtenido en una funcin se use
como argumento para otra.
Un computo tal: 34 x 5 + 8 x 7 se puede representar de manera
funcional Suma ( Producto( 34, 5), Producto( 8,7 ) )
El proceso de computo, llamado reduccion, se basa en reemplazar
progresivamente cada funcin por el resultado de la misma.

Suma ( Producto( 34, 5); Producto( 8, 7) )


Suma ( 170, Producto ( 8, 7) )
Suma ( 170, 56 )
226
La programacin funcional permite la deficion por parte del
programar de nuevas funciones a partir de las ya exitentes.
Utilizando de manera convencional el smbolo ::= para indicar
deficion, podremos crear una nueva funcin Cuadrado para obtener
el cuadrado de un numero basndose en el producto de dos
nmeros: Cuadrado( x ) ::= Producto( x, x ).
La Reescritura, consiste en reemplazar una funcin por su deficion,
sustituyendo los argumentos simblicos en la definicin por los
argumentos reales en el computo. Para resolver (5 + 3)2 :
Cuadrado( Suma( 5, 3) )
Cuadrado( 8 )
Producto( 8, 8)
64

1.5.2. Modelo de flujo de datos


Cada operador se representa grficamente mediante un cuadro con
entradas y salidas, y dentro de el el smbolo de la operacin que
realiza. Un operador espera hasta tener valores en su entrada, y
entonces se activa solo, calcula el resultado y lo enva a la salida.
Una red de flujo de datos puede organizarse de manera que opere de
forma iterativa, obteniendo no ya un resultado sino una serie de
ellos. Por ejemplo, una red produce una serie de nmeros naturales,
a base de recilar sobre si mismo un operador de incremento
(numero +1; numero2 +1,). Esta red nunca termina de evolucionar.
Aadiendo operadores especiales de bifurcacin se puede conseguir
que se detenga al llegar a un resultado.

1.5.3. Modelo de programacin lgica


En la programacin lgica los elementos conocidos que pueden
declararse son hechos y reglas. Un hecho es una relacin entre
objetos que cumples ciertas propiedades. Una relacin entre objetos
la escribiremos poniendo el nombre de dicha relacin y luego los
objetos relacionados entre parntesis.
Hijo( Juan, Luis ) = Juan es hijo de luis

Para realizar una consulta esribieremos el esquema de un hehco en


que alguno de los elementos sea desconocido. Esto lo indicaremos
usando nombres de incognitas en minscula, para distinguirlos de
los nombres de los elementos que se escriban en maysculas. La
consulta ser respuesta indicando todos los valores posibles que
puedan tomar las incognitas.

1.5.4. Modelo imperativo


El modelo de programcion imperativa respone a la estructura
interna habitual de un computador, que se denomina arquitectura
von Neumann.
El nombre de programacin imperativa deriva del hecho de que un
programa aparece como una lista de ordenes a cumplir.
El orden de ejecucin puede alterarse en caso necesario mediante el
uso de instrucciones de control. Con ello se consigue ejecutar o no, o
repetir, determinadas partes del programa.
Las instrucciones de un programa imperativo utilizan datos
almacenados en la memoria del computador. Se representa en los
programas imperativos mediante el uso de variables. Representa un
dato almacenado bajo un nombre dado. Una variable contiene un
valor que puede ser usado o modificado tantas veces como se desee.
Un programa imperativo se plantea como el calculo o modificacin
de sucesivos valores intermedios hasta obtener el resultado final.
En los lenguajes de programacin simblicos las instrucciones u
ordenes se denominan sentencias. La sentencia de asignacin se
representa de la forma:
Variable = Expresion
La parte deerecha es una expresin aritmtica que puee usar
variables o valores constantes, asi como operadores que estn
definidos en el lenguaje. Los lenguajes de programacin prmiten
escribir directamente expresiones complejas.

1.6. Elementos de la programacin imperativa.


C+- es un subconjunto de los lenguajes C y C++. Es un lenguaje bien
estructurado, permite el uso de programacin modular y permite la
imprentacion de tipos abstractos de datos. Es un primer paso hacia los
lenguajes mas evolucionados.

1.6.1. Procesador, entorno, acciones


Definieremos como procesador a todo agente capaz de entener las
ordenes del programa y ejecutarlas.
El procesador es esencialmente un elemento de control. Para
ejecutar las instrucciones empleara los recursos necesarios, que
formaran parte del sistema en el cual se ejecute el programa. Todos
estos elementos disponisbles para ser utilizados por el procesador
consituyen su entorno.

1.6.2. Acciones primitivas. Acciones compuestas


Las acciones que son directamente realizables por el procesador se
denominan acciones primitvas. Estas acciones suelen ser bastantes
sencillas.
La descripcin de un programa en trminos deacciones compuestas
pueden facilitar su comprensin. Por supuesto, al desarrollar el
programa habr sido preciso describir o descomponer las acciones
compuestas en otras mas sencillas, hasta llegar finalmente a acciones
primitvas, que son las que realmente podr ejectuar el procesador.

1.6.3. Esquema de acciones


Una accion compuesta consiste en la ejecucion combinada de otras
acciones mas sencillas. La manera en la que varias acciones sencillas
se combinan para realizar una ccion complicada se denomina
esquema de la accion compuesta.
Una buena metodologia de programacion exige usar esquemas
sencillos y faciles de entender a la hora de desarollar acciones
compustas. La llamada promacacion estructurada sugiere el uso de
tres quemas generales denominados secuencia, seleccin e iteracion,
con los cuales se puede llegar a desarrollar de forma comprensible
un programa tan complicado como sea necesario.

1.7. Mquinas y programas


1.7.1. Evolucion comparativa hardware/software
Los primeros computadores eran maquinas extraordinariamente
costosas, y con una capacidad que hoy dia consideraramos

ridculamente limitada. Simplemente se consideraba que el mejor


programa era el que realizaba el trabajo en menos tiempo y usando
el minimo de recursos de la maquina.
El costo de desarrollo del software resultaba muy inferior al costo
del equipo hardware. Con la limitacin de la capacidad de las
maquinas los programas eran necesariamente sencillos. En los
primeros computadores el software de una aplicacin poda
contener algunos cientos o quiz miles de instrucciones. En la
actualidad las aplicaciones consideradas sencillas tienen decenas de
miles de instrucciones, y en aplicaciones de gran envergadura el
volumen del software desarrollado se cuenta por millones de
instrucciones, y en aplicaciones de gran envergadura el volumen del
software desarrollado se cuenta por millones de instrucciones y en
ellos trabajan centenares de programadores..
Con estos volmenes de programa el costo del desarrollo del
software supera ampliamente al costo de los equipos hardware
utilizados. Ya no tiene sentido dedicar un gran esfuerzo a conseguir
programas eficientes.

Tema 2

2.2. Notacion BNF


Un lenguaje de programacin sigue unas reglas gramaticales. Para la deficion
formal de dichas reglas sintcticas utilizaremos la nototacion BNF (Backus-Haur
Form) basada en la descripcin de cada elemento gramatical en funcin de otros
mas sencillos, segn esquemas o construcciones. Cada uno de estos esquemas se
define mediante una regla de produccin.
Estas reglas sobre como han de escribirse los elementos del lenguaje en forma de
smbolos utilizan a su vez otros smbolos, que se denominan metasimbolos. Son los
siguientes:
::=
|

Metasimbolo de definicin. Indica que el elemento a su izquierda


puede desarrollarse segn el esquema de la derecha.
Metasimbolo de alternativa: Indica que puede elegirse uno y solo uno
de los elementos separados por este metasimbolo.

{}
[]
()

Metasimbolos de repeticin. Indican que los elementos incluidos


dentro de ellos se pueden repetir cero o mas veces.
Metasimbolos de opcin. Indican que los elementos incluidos dentro
de ellos pueden ser utilizados o no.
Metasimbolos de agrupacin. Agrupan los elementos incluidos en su
interior.

Tambien se emplea distinos estilos de letra para distinguir los elementos.


Elemento_no_terminal Este estilo se emplea para escribir el nombe de un
elemento gramatical que habr de ser definido por alguna regla.
Cualquier elemento a la izquierda del metasimbolo ::= ser no
terminal y aparecer con este estilo
Elemento_terminal Este estilo se emplea para representar los elementos
que forman parte del lenguaje C+-, es decir, que constituyen el texto
de un programa. Si aparecen en una regla deben escribirse como se
indica.

2.3. Valores y tipos


El computador, como maquina de tratamiento de informacin, manipula diferentes
datos. Un dato es un elemento de informacin que puede tomar un valor entre
varios posibles. Si un dato tiene siempre necesariamente un valor fijo, diremos que
es una constante.
Los valores de los datos pueden ser de diferentes clases. En programacin a las
distintas clases de valores se les denomina tipos. Un dato tiene asociado un tipo,
que representa la clase de valores que puede tomar. Son tipos diferentes:

Los nmeros enteros, los das de la semana, los ttulos de los libros,

El concepto de tipo es algo abstracto, aunque podemos representar los meses del
ao mediante nmeros enteros de 1 a 12, los meses no son nmeros enteros, por
eso no tiene sentido sumar Enero y marzo para obtener abril.
Los tipos abstractos de datos, que identifican tanto el conjunto de valores que
pueden tomar los datos de ese tipo como las operaciones signiticativas que pueden
hacerse con dicho valores.

2.4.3. Caracteres
En C+- el valor deun carcter concreto se escribe poniendo entre
apostrofos (). El espacio en blanco es un carcter valido como los
dems.

El juego de caracteres (charset) que pueden manipularse en un


programa depende de la maquina que se use. Solo pueden
representar de la forma indicada (escribindose entre apostrofos)
aquellos caracteres que tengan asociado un smbolo grafico (letra,
digito, signo de puntuacin,) que pueda introducirse en el texto del
programa. Otros caracteres definidos, tales como los caracters de
control, que no tienen smbolo grafico, se representan mediante una
secuencia de escape con la siguiente notacin:
\n
\r
\t
\
\\
\f

Salto al comienzo de una nueva lnea de escritura


Retorno al comienzo de la misma lnea de escritura
Tabulacion
Apostrofo
Barra inclinada
Salto a una nueva pagina o borrado de pantalla

Das könnte Ihnen auch gefallen