PDF de programación - LENGUAJES DE PROGRAMACIÓN EN INGENIERÍA: Evolución de los Lenguajes de Programación

Imágen de pdf LENGUAJES DE PROGRAMACIÓN EN INGENIERÍA: Evolución de los Lenguajes de Programación

LENGUAJES DE PROGRAMACIÓN EN INGENIERÍA: Evolución de los Lenguajes de Programacióngráfica de visualizaciones

Publicado el 19 de Mayo del 2018
881 visualizaciones desde el 19 de Mayo del 2018
1,4 MB
50 paginas
Creado hace 6a (11/07/2013)
– Typeset by GMNI & FoilTEX –

LENGUAJES DE PROGRAMACI ÓN EN INGENIERÍA:

Evoluci ón de los Lenguajes de Programaci ón

F. Navarrina, I. Colominas, H. G ómez, J. París, M. Casteleiro

GMNI — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Departamento de Métodos Matemáticos y de Representaci ón

Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos

Universidad de A Coru ña, Espa ña

e-mail: fnavarrina@udc.es

página web: http://caminos.udc.es/gmni

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

ÍNDICE

Principales paradigmas de programación
Lenguaje Máquina
Ensamblador
FORTRAN
Lenguajes compilados
BASIC
Lenguajes interpretados
Programación estructurada
FORTRAN 77
Lenguaje C
Tendencias actuales
Curiosidades

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Principales paradigmas de programaci ón (I)

PRINCIPALES PARADIGMAS (en Ingeniería):
Lenguaje Máquina:
Ensamblador:
FORTRAN/II/IV:
BASIC:
PASCAL:
FORTRAN 77:
Lenguaje C:
Lenguaje C++:
Fortran 90/95/2003:
Java:

Hardware
Software
Compiladores
Intérpretes
Prog. Estructurada
(influencia del Pascal)
Portabilidad, S.O. UNIX
Prog. orientada a objeto
(influencia del C)
Internet

(< 1940 aprox.)
(1940–1950 aprox.)
(1950–1960 aprox.)
(1960–1970 aprox.)
(1970–1980 aprox.)
(1977)
(1980–1990 aprox.)
(1990–2000 aprox.)
(1990,1995,2003)
(> 2000 aprox.)

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguaje Máquina (I)

LENGUAJE M ÁQUINA
Secuencia de bits (agrupados en bytes) que corresponden

a las instrucciones que debe ejecutar el procesador y a los datos fijos
del programa (esencialmente constantes numéricas y/o alfanuméricas) .

La codificación directa de un programa en lenguaje máquina es

♠ muy costosa,
♠ muy farragosa, y
♣ ABSOLUTAMENTE DEPENDIENTE DEL HARDWARE.

Ejemplos: (véase la carpeta EjemplosDeArchivosDeTextoYBinarios)
• El archivo hello.exe es un archivo binario que contiene un programa ejecutable.
• El archivo hello.exe.txt muestra los bytes que forman el archivo hello.exe,
• y el archivo hello.exe.b.txt muestra los correspondientes bits.

En la actualidad sólo se utiliza en dispositivos muy sencillos.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Ensamblador (I)

ENSAMBLADOR
Lenguaje de MUY BAJO NIVEL. (*)
El programador dispone de un repertorio de instrucciones elementales

sencillas, relativamente fáciles de recordar. Por ejemplo:
−→ Guardar (“‘store”) en la posición de memoria N.
−→ Leer (“recall”) el contenido de la posición de memoria N.
−→ Sumar, restar, multiplicar, dividir.
−→ Calcular el resultado de las operaciones anteriores.
−→ Si el resultado anterior es 0, ir (“jump”) a la línea L.
−→ Parar el programa (“stop”).

STO N
RCL N
+,-,*,/
=
JMP #L
STP

Un programa (ASSEMBLER) se encarga de ENSAMBLAR (**)

el código y construir el correspondiente programa ejecutable

(*) Muy próximo al lenguaje máquina.
(**) Traducir el programa a lenguaje máquina y

añadir lo que sea necesario para que pueda ejecutarse.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Ensamblador (II)

La programación en ENSAMBLADOR sigue siendo

♠ muy costosa,
♠ muy farragosa, y
♣ ABSOLUTAMENTE DEPENDIENTE DEL HARDWARE.

En la actualidad sólo se utiliza cuando se necesita sacar el máximo

partido al hardware.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Ensamblador (III)

Ejemplo: Programa para calcular factoriales realizado en

un hipotético ENSAMBLADOR

#01: STO 01
#02: 1
#03: STO 02
#04: RCL 01
#05: JMP #16
#06: *
#07: RCL 02
#08: =
#09: STO 02
#10: RCL 01
#11: -
#12: 1
#13: =
#14: STO 01
#15: GTO #04
#16: RCL 02
#17: STP

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (I)

FORTRAN / II / IV

Lenguaje de ALTO NIVEL. (*)
Diseñado por John Backus

para IBM en 1953, como
alternativa al Lenguaje Máquina
de un ordenador IBM 704.
El primer compilador fue

distribuido en 1957.

John Backus (1924–2007).

Creador del FORTRAN (1953) en IBM.

(Fuente: IBM)

(*) Alejado del lenguaje máquina.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (II)

♣ FORTRAN proviene de FORmula TRANslator (“traductor de fórmulas”).
♥ La codificación de las fórmulas es sencilla.
♣ La sintaxis viene condicionada por el soporte (tarjetas perforadas).

En efecto . . .

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (IIIa)

Origen: Tarjetas Perforadas (”punch cards”)

Tarjeta Perforada. (Fuente: <http://commons.wikimedia.org/wiki/Image:FortranCardPROJ039.agr.jpg>)

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (IIIb)

Origen: Perforadora de Tarjetas

Perforadora de Tarjetas. (Fuente: <http://www.chilton-computing.org.uk/acl/technology/atlas/p013.htm>)

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (IIIc)

Origen: Programa FORTRAN en tarjetas perforadas

Programa FORTRAN en tarjetas perforadas. (Fuente: <http://www.staff.ncl.ac.uk/roger.broughton/museum/iomedia/pc.htm>)

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (IIId)

Origen: Lectora de Tarjetas

Programa FORTRAN en tarjetas perforadas. (Fuente: <http://www.staff.ncl.ac.uk/roger.broughton/museum/iomedia/pc.htm>)

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (IV)

♣ La gestión de memoria es rígida pero predecible. (*)
♣ Las instrucciones de control son muy primitivas. Básicamente. . .

♣ GOTO incondicional
♠ IF aritmético
♣ DO – CONTINUE
♣ CALL

♣ Modelo de implementación: PROGRAMA PRINCIPAL + SUBRUTINAS

• SUBRUTINA = subprograma

CALL transfiere el control a un subprograma
que forma parte del programa ejecutable o
cuya localización conoce el programa ejecutable

(ejemplo: librerías del sistema)

• La transfencia de argumentos se realiza POR REFERENCIA.

(*) En principio (siempre que el programa esté bien hecho) cuando comienza la ejecución de un programa debe haber

memoria suficiente para la realización de todos los cálculos, por lo que todo debería funcionar correctamente (sin
detenciones por falta de recursos, “cuelgues” del sistema, etc.)

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

FORTRAN (V)

Ejemplo: Programa FORTRAN IV para calcular factoriales

C

PROGRAMA PARA CALCULAR FACTORIALES
READ(5,100) N

100 FORMAT(I5)

NFAC=1

500 CONTINUE

IF (N) 1000, 1000, 600

600 CONTINUE

NFAC=NFAC*N
N=N-1
GOTO 500

1000 WRITE(6,110) NFAC

110 FORMAT(I10)

STOP
END

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguajes Compilados (I)

LENGUAJES COMPILADOS
FORTRAN ES EL PROTOTIPO DE LENGUAJE COMPILADO

• El programador escribe el programa fuente (uno o varios archivos *.f, *.for).
• Un programa (compilador FORTRAN) se encarga de COMPILAR (*)

el programa fuente (uno o varios archivos *.f, *.for) y
crear los correspondientes programas objeto (archivos *.o, *.obj)

• Otro programa (linker) se encarga de LINKAR (**)

el/los programa/s objeto (archivos *.o, *.obj) y
crear el correspondiente programa ejecutable (archivo *.exe o sin extensión).

• Una vez creado, el programa ejecutable (archivo *.exe o sin extensión)

puede utilizarse cuantas veces sea necesario.

(*) Traducirlo/s a lenguaje máquina.
(**) Dimensionar la memoria necesaria y

unir (“link”) todas las partes.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguajes Compilados (II)

Programa Fuente (*.f, *.for)

Programa Objeto (*.o, *.obj)

⇓ COMPILACI ÓN [compilador]
⇓ LINKADO
Datos → Programa Ejecutable (*.exe, sin ext.)
⇓ EJECUCI ÓN

[linker]

[loader o debugger (*)]

Resultados

(*) Debugger (depurador): loader que permite ejecutar paso a paso un programa

y que tiene herramientas que permiten localizar dónde se producen los errores.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguajes Compilados (III)

ERRORES:

♣ de Planteamiento

Errores conceptuales o de diseño que impiden que el programa funcione correctamente.

♣ de Compilaci ón

Errores gramaticales que impiden compilar el programa fuente
y generar el correspondiente programa objeto.

♣ de Linkado

Errores estructurales que impiden linkar el programa objeto
y generar el correspondiente programa ejecutable.

♣ de Ejecuci ón (“run–time”) (*)

Errores de tipo general que impiden ejecutar el programa ejecutable
y obtener los resultados.

(*) Bug: error de ejecución difícil de encontrar.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguajes Compilados (IV)

Errores de Planteamiento

Errores conceptuales o de diseño que impiden que el programa funcione
correctamente:
♠ uso de algoritmos inadecuados o incorrectos,
♠ errores en los datos.

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguajes Compilados (V)

Errores de Compilaci ón

Errores gramaticales que impiden compilar el programa fuente
y generar el correspondiente programa objeto:
♠ errores ortográficos (instrucciones mal escritas) o
♠ errores sintácticos (proposiciones mal construidas).

UNIVERSIDAD DE A CORU ÑA — GRUPO DE M ÉTODOS NUM ÉRICOS EN INGENIERÍA

Lenguajes Compilados (VI)

Errores de Linkado

Errores estructurales que impiden linkar el programa objeto
y generar el correspondiente programa ejecutable:
♠ dimensionamiento incorrecto de la memoria o
♠ falta de alguna de las subrutinas/f
  • Links de descarga
http://lwp-l.com/pdf11100

Comentarios de: LENGUAJES DE PROGRAMACIÓN EN INGENIERÍA: Evolución de los Lenguajes de Programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad