SISTEMAS DE ALGORITMOS Y COMPUTACION


--> -->
LENGUAJES DE PROGRAMACIÓN .
  • Para poder desarrollar las capacidades del hardware, se ha necesitado la creación de códigos por medio d los cuales hacer que el ordenado ejecute una serie de órdenes a este conjunto de códigos se denomina lenguaje.
  • Un lenguaje de programación es una notación para escribir programas, a través de los cuales podemos comunicarnos con el hardware y dar así las órdenes adecuadas para la realización de un determinado proceso.
  • Un lenguaje viene definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados.
  • Los distintos niveles en que se clasifican los lenguajes, no son índice de la capacidad del lenguaje.
  • Cuando se habla de lenguajes de bajo nivel implica indicar que el lenguaje es fácil de ser procesado por el microprocesador, ocupa poca lugar en memoria y de muy difícil programación para el hombre,
  • Cuando hablamos de alto nivel nos indica que el mismo programa es de fácil programar por un programador pero ocupa mucho lugar de memoria y es de difícil acceso al hardware, de tal forma que según utilicemos un nivel u otro así tendremos que utilizar un determinado lenguaje ligado a sus correspondientes traductores.
  • El siguiente esquema representan la evolución de los distintos lenguajes.

-->
Periodo
Influencias
Lenguajes
1950 - 1955
Ordenadores primitivos
Lenguajes ensamblador.
Lenguajes experimentales de alto nivel
1956 - 1960
Ordenadores pequeños, caros y lentos
Cintas magnéticas.
Compiladores e intérpretes
Optimización del código.
FORTRAN
ALGOL 58 y 60
COBOL
LISP
1961 - 1965
Ordenadores grandes y caros
Discos magnéticos
Sistemas operativos
Lenguajes de propósito general.
FORTRAN IV
COBOL 61 Extendido
ALGOL 60 Revisado
APL (como notación sólo)
1966 - 1970
Ordenadores de diferentes tamaños, velocidades, y costes.
Sistemas caros de almacenamiento masivo de datos.
Sistemas operativos multitarea e interactivos.
Compiladores con optimización. Lenguajes estándar, flexibles y generales.
PL/I
FORTRAN 66 (estándar)
COBOL 65 (estándar)
ALGOL 68
SIMULA 67
BASI
C
APL/360
1971 - 1975
Micro ordenadores.
Sistemas pequeños y baratos de almacenamiento masivo de datos. Programación estructurada.
Ingeniería del software.
Lenguajes sencillos.
PASCAL
COBOL 74
PL/I
1976 - 1980
Ordenadores baratos y potentes. Sistemas distribuidos.
Programación interactiva.
Abstracción de datos.
Programación con fiabifidad y fácil mantenimiento.
ADA
FORTRAN 77
PROLOG
C
1980
Ordenadores más baratos y potentes.
Mayor abstracción de datos.
Menor costo de memorias
Programación Orientada o Objetos
SmallTalk
OOCOBOL
C++
Ojective C
Object Pascal (Delphi)
Visual Basic

--> -->
Lenguajes de programación se clasifican:
¨ Bajo nivel (Lenguaje máquina)
¨ Intermedios (Lenguaje ensamblador), C
¨ Alto nivel Gestión Científicos Propósito general y específicos
Lenguaje máquina
El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios). Fue el primer lenguaje utilizado en la programación de computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad de cometer errores.
EJEMPLO
0000 0001 1010 0001 01 A1
1000 1001 1001 1010 89 9A
0011 1010 1001 1100 3A 9C
0111 0100 0111 0000 74 70
1110 1001 0010 0000 E9 20
Lenguaje ensamblador
El lenguaje ensamblador es el primer intento de sustituir el lenguaje máquina por otro más similar a los utilizados por las personas. En este lenguaje cada instrucción equivale a una instrucción en lenguaje máquina, utilizando para su escritura palabras nemotécnicas en lugar de cadenas de bits.
EJEMPLO
INICIO: ADD B, 1
MOV A, E
CMP A, B
JE FIN
JMP INICIO
FIN : END
Este lenguaje presenta la mayoría de los inconvenientes del lenguaje máquina:
¨ Cada modelo de computadora tiene un lenguaje ensamblador propio diferente del de los demás, por lo cual un programa sólo puede utilizarse en la máquina para la cual se programó.
¨ El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y demás elementos físicos.
¨ Todas las instrucciones son elementales, es decir, en el programa se deben describir con el máximo detalle todas las operaciones que se han de llevar a cabo en la máquina para la realización de cualquier proceso.
Por otro lado, tanto el lenguaje máquina como el ensamblador gozan de la ventaja de mínima ocupación de memoria y mínimo tiempo de ejecución en comparación con el resultado de la compilación del programa equivalente escrito en otros lenguajes.
Lenguajes de alto nivel
Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:
¨ Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware específico de dicha máquina.
¨ Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.
¨ Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc, que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC), además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos.
DOCUMENTOS PARA CONSULTAR
  1. Algoritmos y programacion.(Aqui)
  2. Introduccion a la programacion (Link 1)
  3. El algoritmo. Una iniciacion a la programacion (Link 1)
  4. Lista de manuales y tutoriales de algoritmos (Link 1) http://manuales.astalaweb.com/Manuales/Algoritmos.asp
PROGRAMACION CON MATLAB
  1. Introduccion a Matlab. (Link 1)