Glosario de Programación

Abaco
Es un instrumento de cálculo que es lisa a lo largo de una serie de alambres barras representando unidades decenas centenas unidades de millar decenas de millar centenas de millar etcétera inventado en Asia menor precursor de la calculadora moderna. Instrumento de calculo que usa cuentas que se deslizan a lo largos de barras, para representar unidades, decenas, centenas, unidades de millar, decenas de millar, etc. (Ábaco)
John Napier
Físico matemático y astrónomo, es mejor conocido por qué descubrió los logaritmos, inventó los huesos de Napier e hizo de uso común el punto decimal en la aritmética y matemática. (John Napier) Los huesos de Napier es un dispositivo de cálculo para calcular productos y los cocientes de los números. (Napier’s bones) El logaritmo Napierano es el término para los logaritmos originalmente producidos por John Napier, que es una función dada para los logaritmos modernos. (Napierian logarithm)
Blaise Pascal
Matemático físico inventor y escritor francés. En sus contribuciones a la matemática se encuentra el triángulo de la aritmética es una representación tabular de binomios coeficientes ahora llamado el triángulo de Pascal. Aun Siendo adolecente comenzó un trabajo en máquinas calculadoras; después de 3 años de trabajo y 50 prototipos. Es uno de los dos inventores de máquinas calculadoras mecánicas e hizo 20 de estas máquinas. Influencio con mucha fuerza el desarrollo de la economía moderna y ciencias sociales. (Blaise Pascal)
Gottfried Wilhelm Leibniz
Desarrolló el cálculo de forma independiente a Isaac Newton. Su notación matemática ha sido usada ampliamente desde que fue publicada. Fue sólo en el siglo 20 cuando su ley de continuidad trascendental y ley de homogeneidad encontraron una implementación matemática. Se volvió uno de los más prolíficos inventores de máquinas calculadoras matemáticas. Entre otras cosas refino el sistema de números binarios que son los fundamentos de virtualmente de todas las computadoras digitales. (Gottfried Wilhelm Leibniz)
Joseph Marie Charles
Apodado Jacquard, tuvo un rol importante en el desarrollo de la o primeras máquinas programables de tejido. Estas máquinas jugaron un rol importante en otras máquinas programables como computadoras. (Joseph Marie Jacquard) La tejedora de Jacquard es una tejedora mecánica, primera demostración fue en 1801, simplifico el proceso de manufacturar textiles con patrones complejos. Controlada por una cadena de cartas o tarjetas perforadas, entrelazadas en una secuencia continua, múltiples filas de agujeros fueron perforadas en múltiples tarjetas. (Jacquard loom)
Charles Babbage
Matemático filósofo inventor e ingeniero matemático al que se recuerda mejor por su concepto de computadora programable. Considerado el padre de la computadora se le acredita el invento de la primera computadora mecánica qué eventualmente llevó a diseños más complejos. Desarrollo un motor diferencial para calcular series de valores automáticamente usando el método de diferencias finitas. Motor analítico que se programaba con tarjetas perforadas, Ada Lovelace creo el algoritmo para el motor analítico. (Charles Babbage)
Ada Lovelace
Matemática inglesa y mejor conocida como por su trabajo con charles Babbage en la primera computadora mecánica para todo propósito. Sus notas incluyen lo que se reconoce como el primer algoritmo pensado para un motor analítico para computar los números de Bernoulli. Por esto ella se describe como la primera programadora de computación aunque sin embargo su código nunca fue probado. (Ada Lovelace)
Herman Hollerith
Estadista americano inventor que desarrolló el tabulador mecánico basado en tarjetas perforadas para rápidamente tabular estadísticas de millones de piezas de datos. Fundador de Tabulating Machine Company que después se convertiría en IBM. Es ampliamente reconocido como el padre de la máquina de procesamiento de datos moderna. (Herman Hollerith)
John Von Neumann
Húngaro americano matemático, físico e inventor de la poli matemática sus mayores contribuciones son en el número de campos incluyendo matemáticas, física, economía, computación y estadísticas. Invento la teoría de la dualidad en programación lineal. Después sugirió un nuevo método de programación lineal, usando un sistema homogéneo de Gordan, popularizado como el algoritmo de Karmarkar. (John von Neumann)
Richard Stallman
Richard Matthew Stallman es mejor conocido por sus iniciales RMS es un activista de la libertad del software y un programador de computadoras. Hace campaña acerca de la distribución de software y la manera en que el usuario debe recibirlo libremente para usarlo, distribuirlo y modificar ese software. El software que asegura estas libertades se le llama software libre mejor conocido como enlazamiento del GNU Project, fundador del Free Software Foundation desarrollo el GNU Compiler Collection y GNU Emacs escritor del GNU General Public License. (Richard Stallman)
Computadora
Es un dispositivo de uso general que puede ser programado para hacer operaciones matemáticas o lógicas automáticamente. (Computer) También denominada computador u ordenador es una máquina electrónica que recibe y procesa datos para convertirlos en información conveniente y útil. Formada físicamente por numerosos circuitos integrados y otros componentes de apoyo extensión y accesorios, que en conjunto pueden ejecutar tareas diversas con suma rapidez bajo el control de un programa. (Computadora)
Paradigma
Un paradigma de programación es un enfoque particular para diseñar soluciones. Difieren unos de otros en conceptos y forma de abstraer los elementos involucrados en un problema. Un lenguaje de programación siempre sigue un paradigma de programación, aunque hay lenguajes con influencia de 2 paradigmas. Los paradigmas importantes son: el paradigma imperativo o procedural, siendo el método de programación tradicional y el paradigma declarativo, que describe un problema con predicados lógicos o funciones matemáticas. (Paradigmas de los lenguajes de programación, 2010)
Arquitectura de von Neumann
Familia de arquitectura de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos. La mayoría de las computadoras modernas están basadas en esta arquitectura y pueden incluir otros dispositivos adicionales. Surgió del proyecto ENIAC a raíz de la colaboración de John von Neumann. (Arquitectura de von Neumann)
Arquitectura Harvard
Referencia de arquitectura de computadora que utiliza dispositivos de almacenamiento físicamente separados para las instrucciones y los datos el término proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. (Arquitectura Harvard)
Hercio
Es la unidad de frecuencia del sistema internacional de unidades Hz Hercio representa un ciclo por cada segundo entendiendo ciclo como la repetición de un suceso. Por ejemplo en física se aplica a la medición de la cantidad de veces por segundo que se repite una onda. Aunque puede aplicarse a otros uso como las olas de mar que llegan por segundo a las vibraciones de un sólido. A la magnitud de un Hercio se le llama frecuencia. (Hercio)
Bit
Un bit es la unidad básica de información en computación y en comunicación digital. Un bit sólo puede tener uno de dos valores y por lo tanto puede ser físicamente implementado como un dispositivo de dos estados. Estos valores comúnmente se representan como 0 o 1 es la unión de dos palabras binary digit. (Bit)
Memoria
La memoria es el dispositivo que retiene, memoriza o almacena datos informáticos durante algún intervalo de tiempo. la memoria proporciona una de las principales funciones de la computación moderna: el almacenamiento de información y conocimiento. Componente fundamental interconectada al CPU y los dispositivos de entrada y salida, son lo fundamental del modelo de computadora de la arquitectura von Neumann. Memoria suele referirse a una forma de almacenamiento de estado sólido o memoria RAM. (Memoria (informática))
Programa
Es un conjunto de instrucciones que una vez ejecutadas realizar una o varias tareas en una computadora qué es lo que hace que estas máquinas funcionar al conjunto de programas se le denomina software, se refiere al equipamiento lógico de una computadora digital. Se les denomina comúnmente binarios debido a que una vez que han pasado por el proceso de compilación y han sido creados en un lenguaje de programación han sido traducidas a único idioma que la maquina comprende, combinaciones de ceros y unos. (Programa informático)
Datos
Es una representación simbólica numérica, alfabética, algorítmica, etcétera de un atributo o variable cuantitativo. los datos describen hechos empíricos sucesos y entidades. es un valor o referente que la computadora recibe por diferentes medios los datos representan la información que el programador manipula y en la construcción de una solución o en el desarrollo de un algoritmo. (Dato)
Lenguajes de bajo nivel
Es el lenguaje de programación que provee poca o no abstracción de las instrucciones de la computadora en su arquitectura generalmente se refiere al código máquina o lenguaje de ensamble. (Low-level programming language) Es el lenguaje en el que las instrucciones ejercen un control directo sobre el hardware condicionado por la estructura física de la computadora que lo soporta. No implica que sea un lenguaje inferior; si no que se refiere a la reducida abstracción entre el lenguaje y el hardware. (Lenguaje de bajo nivel)
Lenguajes de medio nivel
Suelen ser clasificados de alto nivel pero permiten ciertos manejos de bajo nivel precisos para ciertas aplicaciones como la creación de sistemas operativos ya que permiten un manejo abstracto independiente de la máquina a diferencia del ensamblador pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel. (Tipos de lenguajes de programación)
Lenguajes de alto nivel
Se caracteriza en expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana en lugar de a la capacidad ejecutora de las máquinas. Debido a las limitaciones de los lenuajes de bajo nivel, los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida. Surgieron en los años 1950 y se les llaman de tercera generación o de alto nivel a diferencia de los de bajo nivel o nivel próximo a la maquina. (Lenguaje de alto nivel)
Interprete
Es un programa capaz de analizar y ejecutar otros programas escritos en lenguaje de alto nivel. sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción y normalmente no guardan el resultado de dicha traducción. Usando un intérprete un archivo fuente puede producir resultados iguales incluso en sistemas diferentes. Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero son más flexibles, (Intérprete (informática))
Compilador
Es un programa que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina pero también puede ser código intermedio o simplemente texto. De esta manera un programador puede diseñar un programa en un lenguaje más cercano a cómo piensa un ser humano, para luego compilarlo en un programa más manejable por una computadora. Este proceso de traducción se conoce como compilación. (Compilador)
Proceso de Compilado
Se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina. Además de un traductor se pueden necesitar otros programas para crear un programa objeto ejecutable. Un programa fuente se puede dividir en módulos almacenados en archivos distintos. El primer paso es traducir el código fuente escrito en un lenguaje de programación en un archivo a código de bajo nivel. El segundo paso se llama enlazado, que enlaza el código de bajo nivel de los ficheros y subprogramas y se añade el código de las funciones. (Proceso de compilación)
Enlazador
Toma los objetos generados en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios, quita aquellos recursos que no necesita, y enlaza el código objeto con su biblioteca con lo que finalmente se produce un fichero ejecutable o una biblioteca. (Enlazador) para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina y generando un módulo ejecutable. (Proceso de compilación)
Proceso de Enlazado
Este paso se realiza después de la compilación se genera el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y seña del código de las funciones que hay en la biblioteca del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina y generando un módulo ejecutable. (Proceso de compilación)
Ensamblador
Lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables, implementa una representación simbólica de los códigos máquina binarios y otras constantes necesarias para programar una arquitectura dada de un CPU. Constituye la representación más directa del código maquina específico para cada arquitectura legible para un programador. (Lenguaje ensamblador)
Proceso de Ensamblado
Crea un código objeto traduciendo instrucciones mnemónicas de lenguaje ensamblador en opcodes (código objeto) resolviendo los nombres simbólicos para las localizaciones de memoria y otras entidades el uso de referencias simbólicas es una característica clave de lenguaje ensamblador, evitando tediosos cálculos y actualizaciones manuales de las direcciones después de cada modificación del programa. La mayoría de los ensambladores incluyen opciones de macros para realizar sustitución textual. (Programa ensamblador)
Código Objeto
Es el código que resulta de la compilación del código fuente, consiste en lenguaje máquina bytecode y se distribuye en varios archivos que corresponden cada código fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los archivos del código objeto con un programa llamado enlazador. (Código objeto) Opcode (Operation Code) es la porción de una instrucción de lenguaje máquina que especifica la operación a ser realizada. (Código de operación)
Lenguaje de Programación
Es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras, pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Se prueba, se depura, se compila y se mantiene el código fuente de un programa. (Lenguaje de programación)
Entorno de Integrado de Desarrollo
Programa informático compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios. Sus siglas en inglés IDE (integrated development environment). Es un entorno de programación que ha sido empaquetado como un programa de aplicación, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. (Entorno de desarrollo integrado)
Hardware
Colección de elementos físicos que constituyen el sistema de una computadora, se refiere a las partes físicas o componentes de una computadora como monitor, ratón, teclado, almacenamiento de datos, disco duro, etcétera. Todo lo que son objetos que pueden ser tocados físicamente. (Computer hardware) Otros ejemplos de hardware se pueden referir a los dispositivos como computadora personal, Notebook, tableta, teléfono inteligente, Servidor.
Software
Componente no tangible que representa una serie de programas que gobiernan la operación de la computadora para hacer que el hardware funcione. Una computadora requiere del hardware y software para funcionar. El software es escrito en alto nivel de programación que es más fácil para los humanos de usar más cercano del lenguaje natural que del lenguaje máquina. Los programas de alto nivel están compilados o interpretados in lenguaje de maquina orientado a lenguaje de código. (Software)
Arquitectura (hablando de informática y sistemas)
Es el diseño conceptual y l es la estructura operacional fundamental de un sistema de una computadora, es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de la computadora, con un especial interés en la forma en que la unidad central de proceso. (CPU) trabaja internamente y accede a las direcciones de memoria. (Arquitectura de computadoras)
Algoritmo
Conjunto prescrito de instrucciones reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Consta de un estado inicial y una entrada siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. (Algoritmo)
Pseudocódigo
Es una descripción de alto nivel compacta e informal del principio operativo de un programa está diseñado para la lectura humana en lugar de la lectura mediante máquina y con independencia de cualquier otro lenguaje de programación. Omite detalles que no son esenciales para la comprensión humana del algoritmo como declaraciones de variables código específico del sistema y algunas subrutinas. (Pseudocódigo)
Diagrama de Flujo
Es la representación gráfica del algoritmo o proceso. Representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general. Utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de la ejecución mediante flechas que conectan los puntos de inicio y fin del proceso. (Diagrama de flujo)
SDLC
Desarrollo del ciclo de vida de un sistema describe el proceso para planear, crear, probar e implementar la información de un sistema. Aplica a un rango de configuraciones de hardware y software, así como sistema puede ser compuesto de solamente hardware o solamente de software o una combinación de ambos. Los sistemas computacionales son complejos y seguido se ligan a múltiples sistemas tradicionales provistos por diferentes proveedores, para manejar estos niveles de complejidad se han desarrollado varios modelos o metodologías. (Systems development life cycle)
SSDLC
Es una serie de pasos o fases que proveen un modelo de desarrollo en la administración del ciclo de vida de una aplicación o pieza de software esta metodología puede variar entre las industrias y organizaciones. (Secure Development life cycle) Proceso de desarrollo del software que permite a los desarrolladores construir software que sea más seguro y solucionar requerimientos de seguridad mientras reduce el costo de desarrollo. (Security Development Lifecycle)
Referencias
(2010). Paradigmas de los lenguajes de programación. En Fundamentos de programación – Programa Desarrollado (pág. 21). ESAD.
Ábaco. (s.f.). Recuperado el 9 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/%C3%81baco
Ada Lovelace. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Ada_Lovelace
Algoritmo. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Algoritmo
Arquitectura de computadoras. (s.f.). Recuperado el 09 de Augosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Arquitectura_de_computadoras
Arquitectura de von Neumann. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Arquitectura_de_von_Neumann
Arquitectura Harvard. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Arquitectura_Harvard
Bit. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Bit
Blaise Pascal. (s.f.). Recuperado el 09 de Agosto de 2014, de wikipedia: http://en.wikipedia.org/wiki/Blaise_Pascal
Charles Babbage. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Charles_Babbage
Código de operación. (s.f.). Recuperado el 2014 de Agosto de 2014, de Wikipedia: Código de operación
Código objeto. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/C%C3%B3digo_objeto
Compilador. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Compilador
Computadora. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Computadora
Computer. (s.f.). Recuperado el 16 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Computer
Computer hardware. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Computer_hardware
Dato. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Dato
Diagrama de flujo. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Diagrama_de
Enlazador. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Enlazador
Entorno de desarrollo integrado. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Entorno_de_
Gottfried Wilhelm Leibniz. (s.f.). Recuperado el 09 de August de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz
Hercio. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Hercio
Herman Hollerith. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Herman_Hollerith
Intérprete (informática). (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Int%C3%A9rprete_%28inform%C3%A1tica%29
Jacquard loom. (s.f.). Recuperado el 14 de Augst de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Jacquard_loom
John Napier. (s.f.). Recuperado el 9 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/John_Napier
John von Neumann. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/John_von_Neumann
Joseph Marie Jacquard. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Joseph_Marie_Jacquard
Lenguaje de alto nivel. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel
Lenguaje de bajo nivel. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel
Lenguaje de programación. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Lenguaje_de
Lenguaje ensamblador. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Lenguaje_ensamblador
Low-level programming language. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Low-level_programming_language
Memoria (informática). (s.f.). Recuperado el 09 de Agosto de 2014, de http://es.wikipedia.org/wiki/Memoria_%28inform%C3%A1tica%29
Napierian logarithm. (s.f.). Recuperado el 14 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Napierian_logarithm
Napier’s bones. (s.f.). Recuperado el 9 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Napier%27s_bones
Proceso de compilación. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Compilador#Proceso_de_compilaci.C3.B3n
Programa ensamblador. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Lenguaje_ensamblador#Programa_ensamblador
Programa informático. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Programa_inform%C3%A1tico
Pseudocódigo. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://es.wikipedia.org/wiki/Pseudoc
Richard Stallman. (s.f.). Recuperado el 09 de Agosto de 2014, de wikipedia: http://en.wikipedia.org/wiki/Richard_Stallman
Secure Development life cycle. (s.f.). Recuperado el 09 de Agosto de 2014, de Veracode: http://www.veracode.com/security/software-development-lifecycle
Security Development Lifecycle. (s.f.). Recuperado el 09 de Agosto de 2014, de Microsoft: http://www.microsoft.com/security/sdl/default.aspx
Software. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Software
Systems development life cycle. (s.f.). Recuperado el 09 de Agosto de 2014, de Wikipedia: http://en.wikipedia.org/wiki/Systems_development_life_cycle
Tipos de lenguajes de programación. (s.f.). Recuperado el 09 de Agosto de 2014, de Monografias: http://www.monografias.com/trabajos73/tipos-lenguajes-programacion/tipos-lenguajes-programacion.shtml