EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PRIMERA GENERACIÓN
- Lo constituyen los lenguajes maquina.
Estos se consideran como de bajo nivel por que no existe un programa de codificación menos complicado que el que utiliza los símbolos binarios 1 y 0.
- Ascii, utiliza ceros y unos para representar letras del alfabeto.
Como este es el lenguaje del CPU, los archivos de texto traducidos a los grupos binarios ASCII pueden leerse por casi cualquier plataforma de sistemas de computadoras.
LENGUAJES DE SEGUNDA GENERACIÓN
- A estos se les denominó lenguaje ensamblador.
- Los lenguajes ensambladores usan códigos como a para agregar o mvc para mover, y así sucesivamente.
- Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.
LENGUAJES DE TERCERA GENERACIÓN
- Estos son más fáciles de aprender y usar que los lenguajes maquina y el lenguaje ensamblador, pues su similitud con la comunicación y comprensión humana cotidiana es mayor.
- Enunciados, Print, Total sales, Read normal Pay etc.
- Aunque son más fáciles de programar, no son tan eficientes en términos de rapidez operacional y memoria.
- Son relativamente independientes del hardware de la computadora. Esto significa que el mismo programa puede utilizarse en varias computadoras diferentes de distintos fabricantes
- Son lenguajes que se relacionan menos con procedimientos y que son aun mas parecidos al ingles que los lenguajes de tercera generación.
- Algunas características incluyen capacidades de consulta y base de datos, de creación de códigos y capacidades gráficas.
LENGUAJES DE TERCERA GENERACIÓN
LENGUAJES DE CUARTA GENERACIÓN
Ejemplos Visual C++, Visual Basic, Power Builder, Delphi, Forte y muchos otros.
- Lenguajes de consulta son utilizados para hacer preguntas ala computadora con frases parecidas alas de un idioma, ejemplo el inglés.
- Lenguaje de consulta estructurado. Lenguaje estándar que a menudo se usa para realizar consultas y manipulaciones ala base de datos.
LENGUAJES DE PROGRAMACIÓN ORIENTADOS A OBJETOS
- Permiten la interacción de objetos de programación incluyendo elementos de datos y las acciones que se realizan en ellos.
- Un objeto denotar datos respecto a un empleado y todas las operaciones que se pudieran realizar sobre los datos (cálculo de nóminas).
- En la programación orientada al objeto, los datos, instrucciones y otros procedimientos de programación se agrupan en un elemento denominado objeto.
- Encapsulación. Receso de reagrupar elementos dentro de un objeto.
- Polimorfismo. Receso que le permite al programador desarrollar una rutina o grupo de actividades que operaran sobre objetos múltiples.
- Herencia. Propiedad utilizada para describir objetos en un grupo de este tomando características de otros en el mismo grupo o clase de objetos.
- Código reutilizable. Código de instrucciones dentro de un objeto que se puede usar repetidamente en diferentes programas de diversas aplicaciones.
SMALLTALK
- Lenguaje de programación amplio uso, orientado a objetos.
C++
- Es una versión mejorada del lenguaje de programación c original.
- Es un lenguaje de tiempo real, de propósito general, que se ha utilizado para aplicaciones empresariales y científicos.
JAVA
- Proporciona a los programadores un ambiente de programación con gran capacidad y las condiciones para desarrollar aplicaciones de trabajo a través de Internet.
- Para desarrollar pequeñas, Apletts, las cuales pueden insertarse en las páginas Web Internet.
- Incluye un depurador, un generador de documentación, un compilador, y un visualizador, para ejecutar aplicaciones Java sin navegador de Internet.
LENGUAJES DE PROGRAMACIÓN VISUAL
- Lenguajes que usan el ratón, iconos o símbolos en la pantalla y menús despegables para desarrollar programas.
LENGUAJES DE QUINTA GENERACIÓN
- Alrededor de la mitad 1998 surgieron gripos de herramientas de lenguajes de quinta generación, los cuales combinan la creación de códigos basadas en reglas, la administración de reutilización y otros avances.
- Programación basada en conocimiento. Método para el desarrollo de programas de computación en el que se le ordena ala computadora realizar un propósito en vez de instruirla para hacerlo.
SELECCIÓN DE UN LENGUAJE DE PROGRAMACIÓN
- El mejor lenguaje de programación para usarse en un programa en particular incluye equilibrar las características funcionales del lenguaje con aspectos como costo, control y complejidad.
- Un factor importante que debe considerarse al seleccionar cualquier lenguaje de programación es la cantidad de control directo que se necesita para operar el hardware.
PRINCIPIOS DE PROGRAMACIÓN
CONCEPTOS BÁSICOS Y METODOLOGÍA PARA RESOLVER PROBLEMAS
PROGRAMA:
Secuencia de pasos a lógicos para resolver un problema.
ESTRUCTURA:
- ENTRADA: Tomar datos de un dispositivo externo (Teclado, Mouse) y dejarlos en memoria.
- PROCESO: A los datos dejados en memoria se les manda a la ALU (Unidad Aritmético Lógica) y los devuelve a la memoria.
- SALIDA: Se envían a un dispositivo externo y se presenta como información después de ser procesados. (Monitor, Impresora)
LENGUAJE DE PROGRAMACIÓN:
Conjunto de caracteres que nos permiten crear instrucciones siguiendo una sintaxis.
LENGUAJE ALGORÍTMICO:
Orientado a procedimientos y diseñado para ayudar al programador en el diseño y desarrollo de algoritmos.
METODOLOGÍA:
ü Entender el problema.
ü Hacer un análisis:
- ¿Qué tenemos?
- ¿Qué necesitamos?
- ¿Qué buscamos?
ü Diseñar el algoritmo de solución.
ü Codificar.
TIPOS DE DATOS:
ü ENTEROS: (Int) Números enteros positivos o negativos.
ü REALES: (Flota) Números con decimales.
ü CARACTERES: (Char) Símbolos, Nº, caracteres solos. (@, #, $, %)
ü CADENA DE CARACTERES: (String) Agrupación de caracteres.
ü BOLEANOS: (Bolean) .T. (True), .F. (false)
Variables:
Es un conjunto de símbolos o solo uno que reserva espacio en la memoria y su valor puede cambiar durante la ejecución del programa. Solo números y letras. Números solos NO. Letras solas SI.
Constantes:
No cambia su valor durante la ejecución del programa. Solo números y letras. Números solos NO. Letras solas SI.
Sintaxis para declarar variables:
Iniciar variable:
Varias variables:
Declarar constantes:
Asignación:
Aquí le asignamos un valor a la variable a (5), de lo cual se deduce que
el valor de dicha variable es 5.
Comparación:
Aquí lo que queremos decir es que la variable a es igual al valor 5.
Operador:
Es un símbolo o palabra que nos ayuda a realizar una operación.
Los operadores pueden ser:
Aritméticos:
|
SUMA
|
+
|
|
RESTA
|
-
|
|
MULTIPLICACIÓN
|
|
|
DIVISIÓN
|
/
|
|
EXPONENTE
|
|
|
RESIDUO
|
MOD
|
Relacionales:
|
MAYOR QUE
|
>
|
|
MENOR QUE
|
<
|
|
MAYOR O IGUAL QUE
|
>=
|
|
MENOR O IGUAL QUE
|
<=
|
|
IGUAL A
|
==
|
|
DIFERENTE A
|
|=
|
Lógicos:
|
UNIÓN
|
AND
|
Los dos deben cumplirse.
|
|
INTERSECCIÓN
|
OR
|
Con uno que se cumpla.
|
|
NEGACIÓN
|
NOT
|
Cambia true por false
|
AND: (Los deben de cumplirse)
|
A
|
B
|
A AND B
|
|
0
|
0
|
0 (Falso)
|
|
0
|
1
|
0 (Falso)
|
|
1
|
0
|
0 (Falso)
|
|
1
|
1
|
1 (Verdadero)
|
OR: (Con uno que se cumpla)
|
A
|
B
|
A OR B
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
1
|
NOT: (Cambia verdadero por falso y viceversa)
Operandos:
Valores o variables que nos permiten presentar un resultado o un dato:
Expresiones.
Conjuntos de operadores y operandos relacionados entre si, con la finalidad de construir una operación valida
Precedencia de los operadores:
|
NIVEL
|
OPERADOR
|
|
1
|
, NOT
|
|
2
|
, /, MOD, AND
|
|
3
|
+, -, OR
|
|
4
|
>, >=, <, <=, =, = =, |=
|
TÉCNICAS O HERRAMIENTAS PARA LA FORMULACIÓN DE ALGORITMOS
ü DIAGRAMA DE FLUJO
ü PSEUDOCÓDIGO.
ü NASSI-SHNEIDERMAN. (N-S). (ESTRUCTURADO).
DIAGRAMA DE FLUJO: Es una representación visual o gráfica del flujo de los datos en la que cada paso de un algoritmo es representado por un símbolo estándar.
Principales símbolos del diagrama de flujo:
NO SI
NO
SI
Estructura básica de un diagrama de flujo:
Seudo código:
Es un lenguaje similar al español e ingles, pero más sencillo, donde se utilizan unas series de palabras como instrucciones.
|
LEER
|
READ
|
|
ESCRIBIR
|
WRITE
|
|
INICIO
|
|
|
FIN
|
|
|
IF (Decisión)
|
|
|
END IF
|
|
Lenguaje de programación:
Es una notación que permite escribir programas a través de los cuales podemos comunicarnos con la computadora siguiendo normas de sintaxis.
TRADUCTORES DE LENGUAJES DE PROGRAMACIÓN
Un traductor es cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto.
Existen distintos tipos de traductores, entre ellos destacan:
- Ensambladores
- Preprocesadores
- Intérpretes
- Compiladores
COMPILADORES
Es el tipo de traductor más conocido. Se trata de un programa que traduce código fuente escrito en un lenguaje de alto nivel (Pascal) en código máquina (no siempre). Son más rápidos que los intérpretes pero presentan mayor dificultad a la hora de detectar errores.
Un compilador es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa.
El compilador deriva su nombre de la manera en que trabaja, buscando en todo el código fuente, recolectando y reorganizando las instrucciones. Un compilador difiere de un intérprete en que el intérprete toma cada línea de código y la analiza y ejecuta mientras que el compilador mira el código por completo.
Los compiladores requieren de un tiempo antes de poder generar un ejecutable, sin embargo los programas creados con compiladores se ejecutan mucho más rápido que un mismo programa ejecutado con un intérprete.
Cada lenguaje de programación de alto nivel (excepto los estrictamente imperativos) viene con un compilador.
Dado que los compiladores traducen código fuente a código objeto, el cual es único para cada tipo de maquina, existen múltiples compiladores para un mismo lenguaje. Por ejemplo lenguaje C tiene un compilador para PC, otro para Apple Macintosh, además existen muchas casa que desarrollan compiladores para una misma plataforma y un mismo lenguaje, por ejemplo Microsoft y Borland tienen sus compiladores propios para lenguaje C.
ETAPAS DEL PROCESO DE COMPILACIÓN:
- Edición. Esta fase consiste en escribir el programa empleando algún lenguaje y un editor. Como resultado nos dará el código fuente de nuestro programa.
- Compilación. En esta fase se traduce el código fuente obtenido en la fase anterior a código máquina. Si no se produce ningún error se obtiene el código objeto.
En caso de errores el compilador los mostraría para ayudarnos a corregirlos y se procedería a su compilación de nuevo, una vez corregidos.
- Linkado. Esta fase consiste en unir el archivo generado en la fase dos con determinadas rutinas internas del lenguaje, obteniendo el programa ejecutable.
Existen dos tipos de linkados:
-
- Linkado estático: Los binarios de las librerías se añaden a nuestros binarios compilados generando el archivo ejecutable.
- Linkado dinámico: no se añaden las librerías a nuestro binario sino que hará que se carguen en memoria las librerías que en ese momento se necesiten.
Una vez traducido, compilado y linkado el archivo esta listo para su ejecución donde también podrán surgir problemas y fallos, para los cuales tendríamos que volver a realizar todo el proceso anteriormente citado, de modo que puedan ser corregidos.
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecución antes de presentar el programa al cliente.
PARTES DE UN COMPILADOR
Normalmente los compiladores están divididos en dos partes:
- Front End: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar.
- Back End: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.
Esta división permite que el mismo Back End se utilice para generar el código máquina de varios lenguajes de programación distintos y que el mismo Front End que sirve para analizar el código fuente de un lenguaje de programación concreto sirva para la generación de código máquina en varias plataformas distintas.
El código que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker).
TIPOS DE COMPILADORES
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:
- Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
- Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
- Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
- Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
- Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.
Deja tu comentario