Download son las piezas fundamentales e imprescindibles para que

Document related concepts

APL wikipedia , lookup

Programación funcional wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Transcript
Un ordenador
Ordenador es un dispositivo electrónico capaz de procesar la información
recibida, a través de unos dispositivos de entrada y obtener resultados que
serán mostrados haciendo uso de unos dispositivos de salida gracias a la
dirección de un programa escrito en el lenguaje de programación adecuado.
Los ordenadores necesitan para su funcionamiento programas. Sin un
programa un ordenador es completamente inútil. Para escribir estos
programas necesitamos usar un determinado lenguaje de programación.
Hardware
Los componentes y dispositivos del Hardware se dividen en Hardware
Básico y Hardware Complementario
El Hardware Básico: son las piezas fundamentales e imprescindibles para
que la computadora funcione como son: Placa base, monitor, teclado y
ratón.
El Hardware Complementario: son todos aquellos dispositivos adicionales
no esenciales como pueden ser: impresora, escáner, cámara de vídeo
digital, webcam, etc.
Software
El software es un ingrediente indispensable para el funcionamiento del
computador. Está formado por una serie de instrucciones y datos, que
permiten aprovechar todos los recursos que el computador tiene, de manera
que pueda resolver gran cantidad de problemas. Un computador en si, es
sólo un conglomerado de componentes electrónicos; el software le da vida
al computador, haciendo que sus componentes funcionen de forma
ordenada.
El software es un conjunto de instrucciones detalladas que controlan la
operación de un sistema computacional.
Tipos de Software
Software del sistema: Es un conjunto de programas que administran los
recursos de la computadora. Ejemplos: Unidad central de proceso,
dispositivos de comunicaciones y dispositivos periféricos, el software del
sistema administra y controla al acceso del hardware.
Software de aplicaciones: Programas que son escritos para o por los
usuarios para realizar una tarea especifica en la computadora. Ejemplo:
software para procesar un texto, para generar una hoja de cálculo, el
software de aplicación debe estar sobre el software del sistema para poder
operar.
Software de usuario final: Es el software que permiten el desarrollo de
algunas aplicaciones directamente por los usuarios finales, el software del
usuario final con frecuencia tiene que trabajar a través del software de
aplicación y finalmente a través del software del sistema.
La interacción entre el Software y el Hardware hace operativa la máquina,
es decir, el Software envía instrucciones al Hardware haciendo posible su
funcionamiento.
Componentes básicos
El ordenador, aparte de los periféricos, consta de dos componentes
principales: Unidad de memoria y unidad central de procesos.
La unidad de memoria está formada por cientos, miles o millones de
celdas de memoria en las que se puede almacenar información y que
están identificadas por su dirección (en el sentido postal).
Al contenido de la información en general se accede por la dirección de la
celda. El contenido también puede ser la dirección de una celda con lo que
es posible almacenar en memoria las instrucciones que se han de realizar
incluyendo el acceso a la información de las celdas.
• La unidad central de procesamiento (CPU) dirige y controla el
procesamiento de información que realiza el ordenador y consta de dos
partes: la unidad de control y la unidad aritmético – lógica
La unidad de control busca, obtiene, y ejecuta las instrucciones de los
programas almacenadas en la memoria. Cuando las instrucciones indican
la realización de operaciones aritméticas (+, ∗,...) o lógicas (≥ , ≡ , ...) estas
se derivan para ser realizadas en la unidad aritmético – lógica
Trafico de información
Vamos a ver de forma simplificada las acciones a las que da lugar en un
ordenador las instrucciones de un programa. Es fundamental comprender
lo inexcusable de la secuencialidad temporal de las instrucciones
suministradas al ordenador.
Ordenador
Hardware
Software
Lenguajes de programación
2.1 Procesamiento de Información: Hombre y Ordenador.
La información que puede procesar un ordenador es distinta a la que puede
procesar un humano. Aun suponiendo que el procesamiento de información
que realiza el cerebro humano es comparable al que realiza un ordenador,
la diferencia de diseño entre ambos explicar la incompatibilidad. Para el
humano resulta cómodo expresar y pensar conceptos abstractos. La frase
Sumar dos números evoca claramente una operación general que dentro del
formalismo matemático carece de ambigüedad:
z = x + y:
Es equivalente el valor de la variable z a la suma de los valores de las
variables x e y.
El modo en que esta frase puede traducirse en una orden precisa para que la
realice un ordenador ha cambiado con el tiempo según variaban los diseños
de los ordenadores. Primitivamente en ordenadores como el MARK I se
trataba de una secuencia de tripletes de perforaciones en una cinta. Hoy en
día se trata de las secuencias de ceros y unos del código binario. En el
futuro los programas podrán parecerse a los pentagramas de música
actuales. Una lectura parcial de la expresión matemática anterior puede ser
la siguiente:
z = x + y:
Un valor particular de la variable z se obtiene sumando los valores de las
variables x e y.
En el lenguaje PASCAL la suma de dos números correspondiente a esta
interpretación se expresa con la instrucción
z:= x + y;
El valor almacenado en la memoria identificada con el nombre x y el valor
almacenado en la memoria identificada con el nombre y, han de sumarse
almacenando el resultado en el lugar de memoria identificado por el
nombre z.
Este lenguaje se denomina Ensamblador y casi corresponde a una
traducción de la secuencia de ceros y unos en palabras más fáciles de
recordar. Se suele hablar de lenguajes de programación de bajo y alto nivel,
según se acerquen a lenguaje natural de los humanos. El ensamblador es un
lenguaje de programación de bajo nivel y el PASCAL es un lenguaje de
programación de alto nivel. A la secuencia binaria que acepta la UCP del
ordenador se le denomina lenguaje máquina.
La desventaja obvia de un lenguaje de bajo nivel es lo costoso que resulta
la programación de un ordenador con él. A medida que un lenguaje se
acerca más al lenguaje natural, más sencillo es programar con él y más
accesible a personas no especializadas. Pero existe otra desventaja: los
lenguajes de bajo nivel dependen del ordenador.
2.2 Formalización de los lenguajes.
Los lenguajes de alto nivel son el resultado de investigaciones realizadas
desde dos enfoques distintos. Por una parte, un lenguaje de programación
es un caso particular de un lenguaje formal; por otra, una solución al
problema de ingeniería que surge en la construcción de máquinas
procesadoras de información.
La formalización de los lenguajes es un tema de investigación desde los
Antiguos griegos. Aristóteles (384{332 A.C.) se puede considerar el padre
de la lógica formal. Leibniz en el siglo XVII, y Frege en el XIX, intentaron
construir lenguajes formales. Gorge Boole proporciono un nuevo intento de
formalización con la introducción de símbolos, formulas y axiomas. El
español Leonardo Torres y Quevedo (1852-1939), entre otros diseños
mecánicos automáticos, construyo el Ajedrecista, un autómata capaz de
jugar al ajedrez. Añales del siglo XIX y en el XX, los lenguajes formales se
investigaron con el intento de formalizar las matemáticas de un modo
similar a como Euclides había formalizado la geometría. Turing y Post en
1936 introdujeron un formalismo de manipulación de símbolos (la
denominada máquina de Turing) con el que se puede realizar cualquier
cómputo que hasta ahora podemos imaginar. Esta fue una vía de
comunicación entre los problemas formales de la computación y de la
matemática. La unión permitió demostrar que no existe ninguna máquina
de Turing que pueda reconocer si una sentencia es o no un teorema de un
sistema lógico formal; pero también permitió demostrar que si un cálculo
puede explicitarse sin ambigüedad en lenguaje natural, con ayuda de
símbolos matemáticos.
Desde el punto de vista de la ingeniería, los progresos en lenguajes de
programación han sido paralelos a los diseños de los nuevos ordenadores.
Babbage ya escribió programas para sus máquinas, pero los desarrollos
importantes tuvieron lugar, igual que en los ordenadores, alrededor de la
segunda guerra mundial. Fue en esa época (justo después de finalizada la
guerra) cuando Zuse público su libro Calculo y programación. En él
aparece por primera vez el concepto de operación de asignación. Zuse se
planteó el problema siguiente: la expresión z = z + 1 es incorrecta para
significar “El nuevo valor de z se obtiene sumando 1 al antiguo ", e
introdujo la expresión z + 1 → z. Esta sentencia de asignación nunca se
había utilizado antes pues siempre se introducía una nueva variable cuando
se procedía a una asignación (por ejemplo y = z +1).
Las máquinas de Von Neumann:
La idea de producir un programa de ordenador que se pudiera almacenarse en
la memoria del ordenador se
debe a Von Neuman y apareció en un informe que hizo sobre el ordenador
EDVAC. Von Neuman considero la posibilidad de que una palabra formada
por 32 bit fuera o bien un número o bien una instrucción.
El ordenador debe considerarse como un procesador de información capaz
de transformar un programa escrito en un lenguaje de alto nivel en un
programa en lenguaje máquina.
BREVE HISTORIA DE LOS LENGAJES
Periodo
Influencias
lenguajes
1950-55
Ordenadores primitivos Lenguajes ensamblador
Lenguaje experimentales de alto
nivel
1956-60
Ordenadores
pequeños
FORTRAN
Claros y lentos,
ALGOL 58 y 60
Cintas magnéticas,
COBOL
Compiladores e
interpretes
LISP
Optimización del
código
1961-65
Ord. Grandes y claros
FORTRAN IV
Discos magnéticos
COBOL 61 extendido
Sistemas operativos
ALGOL 60 revisado
Leng. de propósito
general
SNOBOL
Ordenadores de
diferentes tamaños,
velocidades, costes,
PL/l
1966-70
APL (solo como notación)
FORTRAN 66
sistemas de
COBOL 65
almacenamiento,
ALGOL 68
masivo de datos
(caros), S.O. multitarea SNOBOL 4
e interactivos
SIMULA 67
Compil. Con
BASIC
optimización
Leng. Estándar
APL/360
Flexibles y generales
Micro ordenadores
Sistemas de
almacenamiento,
1971-75
masivo de datos
pequeños
y baratos,
Prog. estructurada
PASCAL
COBOL 74
PL/l
Ingeniería del software
Leng. Sencillos
Ord. baratos y
potentes,
Sistemas distribuidos ,
Prog. Tiempo-real
Prog. interactiva C
ADA
1976-80
Abstracción de datos
FORTRAN 77
Prog. con fiabilidad
PROLOG
y fácil mantenimiento
C
.
.
CAPITULO 4
4.1. PASCAL Y TURBO PASCAL
Características
El PASCAL es un lenguaje relativamente moderno, desarrollado por Niklaus Wirth y su
grupo de Zúrich en 1971. Se trata de un lenguaje de propósito general, esto quiere
decir que se puede emplear para construir todo tipo de aplicaciones. PASCAL es
especialmente útil para algo: para la enseñanza de buenos modos de programación y
es hoy en día el lenguaje más usado para la enseñanza de la programación por varios
motivos:




Posee unas reglas sencillas de sintaxis.
Es un lenguaje muy estructurado.
Realiza una comprobación exhaustiva de tipos de datos.
Facilita la escritura de programas
El hecho de que tenga una estructuración muy marcada permite que los programas
sean fáciles de leer e interpretar.
4.2. EL PROGRAMA PASCAL
Un programa PASCAL es un conjunto de instrucciones que sigue la sintaxis y la
estructura del PASCAL. La estructura genérica es:
Program nombre (ficheros);
Estos ficheros son el input y el output para indicar entrada desde el teclado y salida al
terminal. La primera línea del programa es una instrucción PASCAL y como todas ellas
terminan con el signo de puntuación “ ; ” .
Begin
Se deben situar las instrucciones declarativas del programa que sirven para especificar
sin ambigüedad el significado de los términos que se utilizaran en el programa.
End. Indicael final del programa y sede colocarse la palabra end seguido del punto.
4.3. PALABRAS RESERVADAS Y ESTRUCTURADAS
Las palabras Program, Begin, end, Input, output, etc. Son identificadores que permiten
al compilador PASCAL interpretar el programa y no se puede utilizar con otros fines.
En la parte del programa reservada para declaraciones se incluyen diversos tipos de
declaración:
Program nombre
Usesse utiliza para especificar el nombre de las unidades donde se almacenan otros
trozos de código PASCAL que son necesarias para completar el código especificado en
este programa.
Const indica que se ha acabado la parte iniciada por uses y se empieza la parte de
declaración de las constantes que aparecen en el programa.
Typese inicia la declaración de tipos de datos definidos por el programador
Var la especificación del tipo de dato que corresponde a las variables que se utilizan en
el programa.
Finalizada esta parte declarativa, empezarían las instrucciones del procedimiento que
se está programando.
INSTRUCCIONES SENCILLAS Y COMPUESTAS
Hay dos tipos de instrucciones, también llamadas sentencias, las cuales son sencillas y
compuestas
Sentencias sencillas
Las sentencias sencillas acaban con “;”
y las compuestas empiezan por Begin y acaban con End. Por ejemplo,
{1} If (a > 0) Then
{2} b := a * a * a ;
la sentencia (2) es sencilla y esta delimitada por la palabra reservada Then
de la construccion condicional iniciada por If, y por el punto y coma. Esta
sentencia sencilla es completamente equivalente a la compuesta especificada
entre (4) y (7)
{3} If (a > 0) Then
{4} Begin
{5} b := a * a ;
{6} b := b * a
{7} End;
El principio de la sentencia es el Begin de (4), y el final el End de (7).
La sentencia compuesta consta de dos sencillas. La especificada en (5) se
termina con la puntuación “;” mientras que la de (6) no necesita otra finalización
que el End. Asi mismo, la sentencia compuesta ha de finalizarse
con el ; situado despues del End en f7g. En cualquier lugar de un programa
PASCAL donde puede incluirse una sentencia sencilla tambien puede
incluirse una compuesta.
DIAGRAMAS DE SINTAXIS
La forma mas escueta de representar las construcciones sintacticamente
validas
del PASCAL es utilizar los diagramas de sintaxis. La especificacion de las
dos opciones que existen, sentencias sencillas o compuestas, sera asi con un
diagrama de sintaxis:
Este diagrama ha de leerse siguiendo las fechas de izquierda a derecha y
siendo valido cualquier camino en toda bifurcacion. Una construccion estara
representada por un diagrama de sintaxis cuando empezando por la izquierda
se puede salir por la derecha y cada una de las partes de la construccion
corresponde
a las especificaciones que se encuentran en el camino. Por ejemplo,
las sentencias presentadas en los ejemplos anteriores son correctas, mientras
que la siguiente:
{4} Begin
{5} b := a * a ;
{6} b := b * a ;
{7} End;
Es incorrecta. Si seguimos el diagrama nos encontramos que despues del
punto y coma, al final de (6), debera haber otra sentencia sencilla mientras
que existe un End.