PARADIGMA Y LENGUAJE DE PROGRAMACIÓN
L.I. GERMÁN VÁZQUEZ RABANALES
TRABAJO
ANTECEDENTES HISTORICOS
MIGUEL ÁNGEL CRUZ ROBLEDO
TAPACHULA, CHIAPAS;
27 DE JULIO 2013
LENGUAJE
DE PROGRAMACIÓN
Un
lenguaje de programación es una técnica estándar de comunicación que permite
expresar las instrucciones que han de ser ejecutadas en una computadora.
Estas
instrucciones permiten la construcción de programas con los cuales podemos
realizar operación de entrada y salida, almacenamiento, cálculos y lógica de
comparación.
Un
lenguaje de programación permite a un programador especificar de manera
precisa: sobre qué datos una computadora debe operar, cómo deben ser estos
almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de
circunstancias. Todo esto, a través de un lenguaje que intenta estar
relativamente próximo al lenguaje humano o natural, tal como sucede con el
lenguaje Léxico.
CLASIFICACIÓN DE
LOS LENGUAJES DE PROGRAMACIÓN
CLASIFICACIÓN
SEGÚN NIVEL DE ABSTRACCIÓN
Lenguajes
de bajo nivel:
Son
lenguajes de programación que se acercan al funcionamiento de una computadora.
El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le
sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan
con los registros de memoria de la computadora de forma directa.
Lenguajes
de medio nivel:
Hay
lenguajes de programación que son considerados por algunos expertos como lenguajes
de medio nivel (como es el caso del lenguaje C) al tener ciertas
características que los acercan a los lenguajes de bajo nivel pero teniendo, al
mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano
y, por tanto, de alto nivel
Lenguajes
de alto nivel:
Los
lenguajes de alto nivel son normalmente fáciles de aprender porque están
formados por elementos de lenguajes naturales, como el inglés.
En
BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF
CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que
pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma
de trabajar es un poco frustrante, dado que a pesar de que las computadoras
parecen comprender un lenguaje natural, lo hacen en realidad de una forma
rígida y sistemática.
SEGÚN
SU PARADIGMA
Paradigma
Imperativo:
Describe
la programación como una secuencia instrucciones o comandos que cambian el
estado de un programa. El código máquina en general está basado en el paradigma
imperativo. Su contrario es el paradigma declarativo. En este paradigma se
incluye el paradigma procedimental (procedural) entre otros
Paradigma
Declarativo:
No
se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino
que describe (declara) cómo es algo. En otras palabras, se enfoca en describir
las propiedades de la solución buscada, dejando indeterminado el algoritmo
(conjunto de instrucciones) usado para encontrar esa solución. Es más
complicado de implementar que el paradigma imperativo, tiene desventajas en la
eficiencia, pero ventajas en la solución de determinados problemas.
Paradigma
Estructurado:
La
programación estructurada se basa en una metodología de desarrollo de programas
llamada refinamientos sucesivos: Se plantea una operación como un todo y se
divide en segmentos más sencillos o de menor complejidad. Una vez terminado
todos los segmentos del programa, se procede a unificar las aplicaciones
realizadas por el pool de programadores. Si se ha utilizado adecuadamente la
programación estructurada, esta integración debe ser sencilla y no presentar
problemas al integrar la misma, y de presentar algún problema, será rápidamente
detectable para su corrección.
La
representación grafica de la programación estructurada se realiza a través de
diagramas de flujo o flow chart, el cual representa el programa con sus entradas,
procesos y salidas. La programación estructurada propone segregar los procesos
en estructuras lo más simple posibles, las cuales se conocen como secuencia,
selección e interacción. Ellas están disponibles en todos los lenguajes
modernos de programación imperativa en forma de sentencias. Combinando esquemas
sencillos se pueden llegar a construir sistemas amplios y complejos pero de
fácil entendimiento.
Paradigma
Orientado a Objetos:
La
programación orientada a objetos, intenta simular el mundo real a través del
significado de objetos que contiene características y funciones. Los lenguajes
orientados a objetos se clasifican como lenguajes de quinta generación.
En
la Programación Orientada a Objetos (POO u OOP según siglas en inglés) se
definen los programas en términos de "clases de objetos", objetos que
son entidades que combinan estado (es decir, datos) comportamiento (esto es,
procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia
del resto). La programación orientada a objetos expresa un programa como un
conjunto de estos objetos, que colaboran entre ellos
para realizar tareas. Esto permite hacer los programas módulos más fáciles de
escribir, mantener
Paradigma
Funcional:
Este
paradigma concibe a la computación como la evaluación de funciones matemáticas
y evita declarar y cambiar datos. En otras palabras, hace hincapié en la
aplicación de las funciones y composición entre ellas, más que en los cambios
de estados y la ejecución secuencial de comandos (como lo hace el paradigma
procedimental). Permite resolver ciertos problemas de forma elegante y los
lenguajes puramente funcionales evitan los efectos secundarios comunes en otro
tipo de programaciones.
Paradigma
lógico:
Se
basa en la definición de reglas lógicas para luego, a través de un motor de
inferencias lógicas, responder preguntas planteadas al sistema y así resolver
los problemas
SEGÚN
LA FORMA DE EJECUCIÓN
Lenguajes
compilados:
Naturalmente,
un programa que se escribe en un lenguaje de alto nivel también tiene que
traducirse a un código que pueda utilizar la máquina.
Los
programas traductores que pueden realizar esta operación se llaman
compiladores. Éstos, como los programas ensambladores avanzados, pueden generar
muchas líneas de código de máquina por cada proposición del programa fuente. Se
requiere una corrida de compilación antes de procesar los datos de un problema.
Los
compiladores son aquellos cuya función es traducir un programa escrito en un
determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina
con código binario). Al
usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio
de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores,
sino hasta que luego de haber compilado el programa, ya no aparecen errores en
el código.
Lenguajes
interpretados:
Se
puede también utilizar una alternativa diferente de los compiladores para
traducir lenguajes de alto nivel. En vez de traducir el programa fuente y
grabar en forma permanente el código objeto que se produce durante la corrida
de compilación para utilizarlo en una corrida de producción futura, el
programador sólo carga el programa fuente en la computadora junto con los datos
que se van a procesar. A continuación, un programa intérprete, almacenado en el
sistema operativo del disco, o incluido de manera permanente dentro de la
máquina, convierte cada proposición del programa fuente en lenguaje de máquina
conforme vaya siendo necesario durante el proceso de los datos. No se graba el
código objeto para utilizarlo posteriormente.
La
siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y
traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo
de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser
interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea
más lento en tiempo de ejecución (porque se va revisando el código en tiempo de
ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar
compilando a cada momento el código completo). El intérprete elimina la
necesidad de realizar una corrida de compilación después de cada modificación
del programa cuando se quiere agregar funciones o corregir errores; pero es
obvio que un programa objeto compilado con antelación deberá ejecutarse con
mucha mayor rapidez que uno que se debe interpretar a cada paso durante una
corrida de producción.
BIBLIOGRAFÍA
http://lenguajes-de-programacion.com/programacion-orientada-a-objetos.shtml