Un lenguaje de programación es cualquier lenguaje artificial, el cual, se utiliza para definir adecuadamente una secuencia de instrucciones que puedan ser interpretadas y ejecutadas en una computadora. Se asume que las instrucciones así escritas son traducidas luego a un código que la máquina pueda “comprender”. El proceso de traducción es realizado normalmente por la computadora, usando un programa especializado para tal fin.
Fuente : http://www.rena.edu.ve/cuartaEtapa/Informatica/Tema13.html
Programación Imperativa :
La programación imperativa, en contraposición a la
programación declarativa es un paradigma de programación que describe la
programación en términos del estado del programa y sentencias que cambian dicho
estado. Los programas imperativos son un conjunto de instrucciones que le
indican al computador cómo realizar una tarea.
La
implementación de hardware de la mayoría de computadores es imperativa;
prácticamente todo el hardware de los computadores está diseñado para ejecutar
código de máquina, que es nativo al computador, escrito en una forma
imperativa. Esto se debe a que el hardware de los computadores implementa el
paradigma de las Máquinas de Turing. Desde esta perspectiva de bajo nivel, el
estilo del programa está definido por los contenidos de la memoria, y las
sentencias son instrucciones en el lenguaje de máquina nativo del computador
(por ejemplo el lenguaje ensamblador).
Los
lenguajes imperativos de alto nivel usan variables y sentencias más complejas,
pero aún siguen el mismo paradigma. Las recetas y las listas de revisión de
procesos, a pesar de no ser programas de computadora, son también conceptos
familiares similares en estilo a la programación imperativa; cada paso es una
instrucción, y el mundo físico guarda el estado (Zoom).
Los primeros lenguajes imperativos fueron los lenguajes de máquina de
los computadores originales. En estos lenguajes, las instrucciones fueron muy
simples, lo cual hizo la implementación de hardware fácil, pero obstruyendo la
creación de programas complejos. Fortran, cuyo desarrollo fue iniciado en 1954
por John Backus en IBM, fue el primer gran lenguaje de programación en superar
los obstáculos presentados por el código de máquina en la creación de programas
complejos.
Programación Lógica :
La programación lógica consiste en la aplicación del corpus de conocimiento
sobre lógica para el diseño de lenguajes de programación; no debe confundirse
con la disciplina de la lógica computacional.
La programación lógica es un tipo de paradigmas de programación dentro del
paradigma de programación declarativa. El resto de los subparadigmas de
programación dentro de la programación declarativa son: programación funcional,
programación basada en restricciones, programas DSL (de dominio específico) e
híbridos. La programación lógica gira en torno al concepto de predicado, o
relación entre elementos. La programación funcional se basa en el concepto de
función (que no es más que una evolución de los predicados), de corte más
matemático.
Programación Funcional :
La
programación funcional es un paradigma de programación declarativa basado en la
utilización de funciones aritméticas que no maneja datos mutables o de estado.
Enfatiza la aplicación de funciones, en contraste con el estilo de programación
imperativa, que enfatiza los cambios de estado. La programación funcional tiene
sus raices en el cálculo lambda, un sistema formal desarrollado en los 1930s
para investigar la definición de función, la aplicación de las funciones y la
recursión. Muchos lenguajes de programación funcionales pueden ser vistos como
elaboraciones del cálculo lambda.
En la práctica, la diferencia entre una función matemática y la noción
de una "función" utilizada en la programación imperativa es que las
funciones imperativas pueden tener efectos secundarios, al cambiar el valor de
calculos realizados previamente. Por esta razón carecen de transparencia
referencial, es decir, la misma expresión lingüística puede resultar en valores
diferentes en diferentes momentos dependiendo del estado del programa siendo
ejecutado. Con código funcional, en contraste, el valor generado por una
función depende exclusivamente de los argumentos alimentados a la función. Al
eliminar los efectos secundarios se puede entender y predecir el comportamiento
de un programa mucho más fácilmente, y esta es una de las principales
motivaciones para utilizar la programación funcional.
Los lenguajes de programación funcional, especialmente los que son
puramente funcionales, han sido enfatizados en el ambiente académico
principalmente y no tanto en el desarrollo de software comercial. Sin embargo,
lenguajes de programación importantes tales como Scheme, Erlang, Objective Caml
y Haskel, han sido utilizados en aplicaciones comerciales e industriales por
muchas organizaciones. La programación funcional también es utilizada en la
industria a través de lenguajes de dominio específico como R (estadística),
Mathematica (matemáticas simbólicas), J y K (análisis financiero), F# en
Microsoft.NET y XSLT (XML). Lenguajes de uso específico usados comúnmente como
SQL y Lex/Yacc, utilizan algunos elementos de programación funcional,
especialmente al procesar valores mutables. Las hojas de cálculo también pueden
ser consideradas lenguajes de programación funcional.
La programación funcional también puede ser desarrollada en lenguajes
que no están diseñados específicamente para la programación funcional. En el
caso de Perl, por ejemplo, que es un lenguaje de programación imperativo,
existe un libro que describe como aplicar conceptos de programación funcional.
JavaScript, uno de los lenguajes más ampliamente utilizados en la actualidad,
también incorpora capacidades de programación funcional.
Programación Declarativa :
La Programación Declarativa, es un paradigma de programación que está basado en
el desarrollo de programas especificando o "declarando" un conjunto
de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o
transformaciones que describen el problema y detallan su solución. La solución
es obtenida mediante mecanismos internos de control, sin especificar
exactamente cómo encontrarla (tan sólo se le indica a la computadora que es lo
que se desea obtener o que es lo que se está buscando). No existen asignaciones
destructivas, y las variables son utilizadas con Transparencia referencial
Programación Estructurada:
La programación estructurada es una forma de escribir programas de ordenador
(programación de computadora) de manera clara. Para ello utiliza únicamente
tres estructuras: secuencia, selección e iteración; siendo innecesario el uso
de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT
FUNCTION, EXIT SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.
Programación Dirigida por Eventos:
La programación dirigida por eventos es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.
La
programación dirigida por eventos es un paradigma de programación en el que
tanto la estructura como la ejecución de los programas van determinados por los
sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos
provoquen.
Para entender la programación dirigida por eventos, podemos oponerla a lo que
no es: mientras en la programación secuencial (o estructurada) es el programador
el que define cuál va a ser el flujo del programa, en la programación dirigida
por eventos será el propio usuario —o lo que sea que esté accionando el
programa— el que dirija el flujo del programa. Aunque en la programación
secuencial puede haber intervención de un agente externo al programa, estas
intervenciones ocurrirán cuando el programador lo haya determinado, y no en
cualquier momento como puede ser en el caso de la programación dirigida por
eventos.
El creador de un programa dirigido por eventos debe definir los eventos que
manejarán su programa y las acciones que se realizarán al producirse cada uno
de ellos, lo que se conoce como el administrador de evento. Los eventos
soportados estarán determinados por el lenguaje de programación utilizado, por
el sistema operativo e incluso por eventos creados por el mismo programador.
En la programación dirigida por eventos, al comenzar la ejecución del programa
se llevarán a cabo las inicializaciones y demás código inicial y a continuación
el programa quedará bloqueado hasta que se produzca algún evento. Cuando alguno
de los eventos esperados por el programa tenga lugar, el programa pasará a
ejecutar el código del correspondiente administrador de evento. Por ejemplo, si
el evento consiste en que el usuario ha hecho click en el botón de play de un
reproductor de películas, se ejecutará el código del administrador de evento,
que será el que haga que la película se muestre por pantalla.
Un ejemplo claro lo tenemos en los sistemas de programación Lexico y Visual
Basic, en los que a cada elemento del programa (objetos, controles, etcétera)
se le asignan una serie de eventos que generará dicho elemento, como la
pulsación de un botón del ratón sobre él o el redibujado del control.
Programación Orientada a Objetos:
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es
un paradigma de programación que usa objetos y sus interacciones, para diseñar
aplicaciones y programas informáticos. Está basado en varias técnicas,
incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se
popularizó a principios de la década de los años 1990. En la actualidad, existe
variedad de lenguajes de programación que soportan la orientación a objetos.
Fuente :


