SlideShare uma empresa Scribd logo
1 de 33
Alumno: Raul Aguirre Martinez
Un lenguaje de programación es un idioma
artificial diseñado para expresar
computaciones que pueden ser llevadas 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. Está formado de un conjunto de
símbolos y reglas sintácticas y semánticas
que definen su estructura y el significado de
sus elementos y expresiones.
Al proceso por el cual se escribe, se prueba,
se depura, se compila y se mantiene el
código fuente de un programa informático se
le llama programación.
También la palabra programación se define como el
    proceso de creación de un programa de computadora,
    mediante la aplicación de procedimientos lógicos, a través
    de los siguientes pasos:

   El desarrollo lógico del programa para resolver un
    problema en particular.

   Escritura de la lógica del programa empleando un lenguaje
    de programación específico (codificación del programa)

   Ensamblaje o compilación del programa hasta convertirlo
    en lenguaje de máquina.

   Prueba y depuración del programa.

   Desarrollo de la documentación.
Desde 1954 hasta la actualidad se han
documentado más de 2.500 lenguajes de
programación (consultar en The Language
List ). Entre 1952 y 1972, la primera época
de los lenguajes de programación, se
desarrollaron alrededor de 200 lenguajes, de
los que una decena fueron realmente
significativos y tuvieron influencia en el
desarrollo de lenguajes posteriores.
Una lista parcial de algunos de los lenguajes
de programación más importantes, junto con
su año de creación:
   1957 FORTRAN      1983 Smalltalk-80
   1958 ALGOL        1983 Objective-C
   1960 Lisp         1983 Ada
   1960 COBOL        1986 C++
   1962 APL          1986 Eiffel
   1962 SIMULA       1987 Perl
   1964 BASIC        1988 Tcl/Tk
   1964 PL/I         1990 Haskell
   1970 Prolog       1991 Python
   1972 C            1993 Ruby
   1975 Pascal       1995 Java
   1975 Scheme       1995 PHP
   1975 Modula       2000 C#
Linea del tiempo.
El lenguaje máquina de una computadora consta
de cadenas de números binarios (ceros y unos) y es
el único que “entienden” directamente los
procesadores. Todas las instrucciones preparadas
en cualquier lenguaje de máquina tienen por lo
menos dos partes. La primera es el comando u
operación, que dice a la computadora cuál es la
función que va a realizar. Todas las computadoras
tienen un código de operación para cada una de
sus funciones. La segunda parte de la instrucción
es el operando, que indica a la computadora dónde
hallar o almacenar los datos y otras instrucciones
que se van a manipular; el número de operandos
de una instrucción varía en las distintas
computadoras.
A principios de la década de 1950, y con el fin
de facilitar la labor de los programadores, se
desarrollaron códigos nemotécnicos para las
operaciones y direcciones simbólicas. La
palabra nemotécnico se refiere a una ayuda
para la memorización. Uno de los primeros
pasos para mejorar el proceso de preparación
de programas fue sustituir los códigos de
operaciones numéricos del lenguaje de
máquina por símbolos alfabéticos, que son los
códigos nemotécnicos.
Los primeros programas ensambladores producían sólo una
instrucción en lenguaje de máquina por cada instrucción del
programa fuente. Para agilizar la codificación, se
desarrollaron programas ensambladores que podían producir
una cantidad variable de instrucciones en lenguaje de
máquina por cada instrucción del programa fuente. Dicho de
otra manera, una sola macroinstrucción podía producir varias
líneas de código en lenguaje de máquina. Los primeros
programas ensambladores producían sólo una instrucción en
lenguaje de máquina por cada instrucción del programa
fuente. Para agilizar la codificación, se desarrollaron
programas ensambladores que podían producir una cantidad
variable de instrucciones en lenguaje de máquina por cada
instrucción del programa fuente. Dicho de otra manera, una
sola macroinstrucción podía producir varias líneas de código
en lenguaje de máquina.
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.
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.
La programación declarativa es una forma de programación
que implica la descripción de un problema dado en lugar de
proveer una solución para dicho problema, dejando la
interpretación de los pasos específicos para llegar a dicha
solución a un intérprete no especificado. La programación
declarativa adopta, por lo tanto, un enfoque diferente al de
la programación imperativa tradicional.
En otras palabras, la programación declarativa provee el
“qué”, pero deja el “cómo” liberado a la implementación
particular del intérprete. Por lo tanto se puede ver que la
programación declarativa tiene dos fases bien diferenciadas,
la declaración y la interpretación.
Es importante señalar que a pesar de hacer referencia a
intérprete, no hay que limitarse a “lenguajes interpretados”
en el sentido habitual del término, sino que también se
puede estar trabajando con “lenguajes compilados”.
-Los lenguajes declarativos están orientados a buscar la solución del problema, sin
preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse
en la lógica del algoritmo, más que en el control de la secuencia.
-Los programas están formados por un conjunto de definiciones o ecuaciones, las cuales
describen lo que debe ser calculado, no en sí la forma de hacerlo.
-Las variables sólo pueden tener asignado un solo valor a lo largo de la ejecución del
programa, lo cual implica que no puede existir asignación destructiva. Debido a esto,
cobra especial importancia el uso del anidamiento y la recursividad.
-Las listas representan la estructura fundamental de datos.
-El orden de la ejecución no resulta importante debido a que no existen efectos
colaterales; es decir, que al calcular un valor, resulta imposible afectar el cálculo de
otros y con esto se puede afirmar que cualquier secuencia de ejecución deberá
conducir al mismo resultado.
-Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se
pueden tratar como argumentos de otras definiciones.
-El control de la ejecución no es responsabilidad del programador.
La principal desventaja de la programación
declarativa es que no puede resolver cualquier
problema dado, sino que está restringida al
subconjunto de problemas para los que el
intérprete o compilador fue diseñado.
A pesar de lo anterior existen algunas ventajas en el
uso de la programación declarativa. Entre las ventajas
se destaca que la solución de un problema se puede
realizar con un nivel de abstracción considerablemente
alto, sin entrar en detalles de implementación
irrelevantes, lo que hace a las soluciones más fácil de
entender por las personas. La resolución de problemas
complejos es resuelta por el intérprete a partir de la
declaración de las condiciones dadas.
La programación declarativa es muy usada en la
resolución de problemas relacionados con inteligencia
artificial, bases de datos, configuración, y
comunicación entre procesos; sin embargo, ningún
leguaje declarativo se aproxima en popularidad a los
lenguajes imperativos.
· PROLOG
· SQL
· HTML
· WSDL (Web Services Description Language)
· XML Stylesheet Language for Transformation
En ciencias de la computación se llama lenguajes
imperativos a aquellos en los cuales se le ordena a
la computadora cómo realizar una tarea siguiendo
una serie de pasos o instrucciones, por ejemplo:

Paso 1,   solicitar número.
Paso 2,   multiplicar número por dos.
Paso 3,   imprimir resultado de la operación.
Paso 4,   etc.

El proceso anterior se puede realizar con un
lenguaje imperativo como por ejemplo BASIC, C,
C++, Java, Clipper, Dbase, C#, PHP, Perl, etc.
En los lenguajes declarativos las sentencias que se
utilizan lo que hacen es describir el problema que
se quiere solucionar, pero no las instrucciones
necesarias para solucionarlo. Esto último se
realizará mediante mecanismos internos de
inferencia de información a partir de la
descripción realizada.
Los lenguajes imperativos describen paso a paso un
conjunto de instrucciones que deben ejecutarse
para variar el estado un programa y hallar la
solución, es decir, un algoritmo en el que se
describen los pasos necesarios para solucionar un
problema.
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 y reutilizar.
La programación orientada a objetos es una nueva
forma de programar que trata de encontrar la
solución a problemas de una forma que ofrece
muchas ventajas y facilidades que no se tenían
anteriormente. Introduce nuevos conceptos, que
superan y amplían conceptos antiguos ya
conocidos. Entro ellos destacan los siguientes:

· OBJETO: entidad provista de un conjunto de
propiedades o atributos (datos) y de
comportamiento o funcionalidad (“métodos”).
Corresponden a los objetos reales del mundo que
nos rodea, o a objetos internos del sistema (del
programa).
-CLASE: definiciones de las propiedades y comportamiento de un tipo de
objeto concreto. La instanciación es la lectura de estas definiciones y la
creación de un objeto a partir de ellas. Una clase es una colección de
objetos similares o la implementación, declaración o definición de un tipo
de objeto. Cada vez que se construye un objeto de una clase se crea una
instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y
se pueden crear instancias de esa clase al tener Form1, Form2, etc. Así se
está creando una instancia de la clase Form.
-MÉTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya
ejecución se desencadena tras la recepción de un “mensaje”. Desde el
punto de vista del comportamiento, es lo que el objeto puede hacer. Un
método puede producir un cambio en lar propiedades del objeto, o la
generación de un “evento” con un nuevo mensaje para otro objeto del
sistema.
-EVENTO: un suceso en el sistema (tal como una interacción del usuario con
la máquina, o un mensaje enviado por un objeto). El sistema maneja el
evento enviando el mensaje adecuado al objeto pertinente.
-MENSAJE: una comunicación dirigida a un objeto, que le
ordena que ejecute uno de sus métodos con ciertos
parámetros asociados al evento que lo generó.
-PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos
asociados a un objeto (o a una clase de objetos), que hace
los datos visibles desde fuera del objeto, y cuyo valor puede
ser alterado por la ejecución de algún método.
-ESTADO INTERNO: es una propiedad invisible de los objetos,
que puede ser únicamente accedida y alterada por un
método del objeto, y que se utiliza para indicar distintas
situaciones posibles para el objeto (o clase de objetos).
En comparación con un lenguaje imperativo, una “variable no
es más que un contenedor interno del atributo del objeto o
de un estado interno, así como la “función” es un
procedimiento interno del método del objeto.
ABSTRACCIÓN: Cada objeto en el sistema sirve
como modelo de un "agente" abstracto que
puede realizar trabajo, informar y cambiar su
estado, y "comunicarse" con otros objetos en el
sistema sin revelar cómo se implementan estas
características. Los procesos, las funciones o
los métodos pueden también ser abstraídos y
cuando lo están, una variedad de técnicas son
requeridas para ampliar una abstracción.
ENCAPSULAMIENTO: también llamado "ocultación de la
información". Cada objeto está aislado del exterior, es un
módulo natural, y cada tipo de objeto expone una interfaz a
otros objetos que específica cómo pueden interactuar con los
objetos de la clase. El aislamiento protege a las propiedades
de un objeto contra su modificación por quien no tenga
derecho a acceder a ellas, solamente los propios métodos
internos del objeto pueden acceder a su estado. Esto asegura
que otros objetos no pueden cambiar el estado interno de un
objeto de maneras inesperadas, eliminando efectos
secundarios e interacciones inesperadas. Algunos lenguajes
relajan esto, permitiendo un acceso directo a los datos
internos del objeto de una manera controlada y limitando el
grado de abstracción. La aplicación entera se reduce a un
agregado o rompecabezas de objetos. Esta característica o
propiedad permite por tanto ejecutar la información al resto
de los objetos, impidiendo así accesos incorrectos o
conflictos.
POLIMORFISMO: comportamientos diferentes,
asociados a objetos distintos, pueden
compartir el mismo nombre, al llamarlos por
ese nombre se utilizará el comportamiento
correspondiente al objeto que se esté usando.
O dicho de otro modo, las referencias y las
colecciones de objetos pueden contener
objetos de diferentes tipos, y la invocación de
un comportamiento en una referencia
producirá el comportamiento correcto para el
tipo real del objeto referenciado. Por ejemplo
en Visual Basic, el polimorfismo se da al tener
diferentes tipos de objetos (Form, Label, etc.)
HERENCIA: las clases no están aisladas, sino que se
relacionan entre sí, formando una jerarquía de clasificación.
Los objetos heredan las propiedades y el comportamiento de
todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento permitiendo a
los objetos ser definidos y creados como tipos especializados
de objetos preexistentes. Estos pueden compartir (y
extender) su comportamiento sin tener que reimplementar su
comportamiento. Esto suele hacerse habitualmente
agrupando los objetos en clases y estas en árboles o
enrejados que reflejan un comportamiento común. Cuando
un objeto pertenece a más de una clase se dice que hay
herencia múltiple; esta característica no está soportada por
algunos lenguajes (como Java). Con esta propiedad, los
objetos heredan comportamientos dentro de una jerarquía
de clases.
· La programación orientada a objetos es más moderna, es
una evolución de la programación imperativa plasmada en el
diseño de una familia de lenguajes conceptos que existían
previamente, con algunos nuevos.
· La programación orientada a objetos se basa en lenguajes
que soportan sintáctica y semánticamente la unión entre los
tipos abstractos de datos y sus operaciones (a esta unión se
la suele llamar clase).
· La programación orientada a objetos incorpora en su
entorno de ejecución mecanismos tales como el polimorfismo
y el envío de mensajes entre objetos.
· Ada          · Objective-C
· C++          · Ocaml
· C#           · Oz
· VB.NET       · PHP
· Clarion      · PowerBuilder
· Delphi       · Pitón
· Eiffel       · Ruby
· Java         · Smalltalk
· Lexico (en
castellano)
   http://www.tiobe.com/index.php/content/paperinfo/tpci
    /index.html
   http://www.tagu.com.ar/135_Programaci%C3%B3n
   http://www.levenez.com/lang/
   http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-
    2009/tema-01.html
   http://jorgesaavedra.wordpress.com/2007/05/05/lenguaj
    es-de-programacion/
   http://es.kioskea.net/contents/langages/langages.php3
   http://www.desarrolloweb.com/articulos/2358.php
   http://www.iqcelaya.itc.mx/~vicente/Programacion/Leng
    uajes.pdf
   http://qbitacora.wordpress.com/2007/09/21/clasificacion
    -de-lenguajes-de-programacion/
   http://www.ilustrados.com/tema/9525/Tipos-Lenguajes-
    Programacion.html

Mais conteúdo relacionado

Mais procurados (17)

Programcion
ProgramcionProgramcion
Programcion
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTP
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de Algoritmos
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Apuntes c
Apuntes cApuntes c
Apuntes c
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introduccion a la Programación I parte
Introduccion a la Programación I parte Introduccion a la Programación I parte
Introduccion a la Programación I parte
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 

Destaque

Componentes de la computadora
Componentes de la computadoraComponentes de la computadora
Componentes de la computadora
Pati Lopez
 
CDM El Salvador Foro SQ Consult Edgar Cruz
CDM El Salvador Foro SQ Consult Edgar CruzCDM El Salvador Foro SQ Consult Edgar Cruz
CDM El Salvador Foro SQ Consult Edgar Cruz
ASI El Salvador
 
Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8
Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8
Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8
Pedro Vargas Perez
 
El escáner
El escánerEl escáner
El escáner
Curika
 
IE San Juan Bautista de la Sallé
IE San Juan Bautista de la SalléIE San Juan Bautista de la Sallé
IE San Juan Bautista de la Sallé
Morales1996
 
Taller semillas 2011 Guillermo Giraldo
Taller semillas 2011 Guillermo GiraldoTaller semillas 2011 Guillermo Giraldo
Taller semillas 2011 Guillermo Giraldo
CIAT
 

Destaque (20)

La guerra entre_dios_y_satanas
La guerra entre_dios_y_satanasLa guerra entre_dios_y_satanas
La guerra entre_dios_y_satanas
 
Moodle_Cài đặt và cấu hình he thong
Moodle_Cài đặt và cấu hình he thongMoodle_Cài đặt và cấu hình he thong
Moodle_Cài đặt và cấu hình he thong
 
Sucos E SaúDe
Sucos E SaúDeSucos E SaúDe
Sucos E SaúDe
 
Miss mayte 1
Miss mayte 1Miss mayte 1
Miss mayte 1
 
Componentes de la computadora
Componentes de la computadoraComponentes de la computadora
Componentes de la computadora
 
CDM El Salvador Foro SQ Consult Edgar Cruz
CDM El Salvador Foro SQ Consult Edgar CruzCDM El Salvador Foro SQ Consult Edgar Cruz
CDM El Salvador Foro SQ Consult Edgar Cruz
 
Análisis hashtag #Compolalc
 Análisis hashtag #Compolalc Análisis hashtag #Compolalc
Análisis hashtag #Compolalc
 
Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8
Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8
Frederic jameson-ensayos-sobre-el-posmodernismo-1222699390480659-8
 
El escáner
El escánerEl escáner
El escáner
 
Muñecas Reborn
Muñecas RebornMuñecas Reborn
Muñecas Reborn
 
Predicciónes tecnológicas: Metodos descriptivos y matrices, analogias
Predicciónes tecnológicas: Metodos descriptivos y matrices, analogiasPredicciónes tecnológicas: Metodos descriptivos y matrices, analogias
Predicciónes tecnológicas: Metodos descriptivos y matrices, analogias
 
A família, a rua e os afetos: etnografia da construção de vínculos entre home...
A família, a rua e os afetos: etnografia da construção de vínculos entre home...A família, a rua e os afetos: etnografia da construção de vínculos entre home...
A família, a rua e os afetos: etnografia da construção de vínculos entre home...
 
El crédito
El créditoEl crédito
El crédito
 
Risa
RisaRisa
Risa
 
Tokyo Otaku Mode での PayPal 活用事例
Tokyo Otaku Mode での PayPal 活用事例Tokyo Otaku Mode での PayPal 活用事例
Tokyo Otaku Mode での PayPal 活用事例
 
IE San Juan Bautista de la Sallé
IE San Juan Bautista de la SalléIE San Juan Bautista de la Sallé
IE San Juan Bautista de la Sallé
 
10 esculturas más famosas del mundo
10 esculturas más famosas del mundo10 esculturas más famosas del mundo
10 esculturas más famosas del mundo
 
Claude Monet
Claude MonetClaude Monet
Claude Monet
 
Taller semillas 2011 Guillermo Giraldo
Taller semillas 2011 Guillermo GiraldoTaller semillas 2011 Guillermo Giraldo
Taller semillas 2011 Guillermo Giraldo
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 

Semelhante a Lenguajes de desarrollo (programación)

Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
DavidGarca147527
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
Jalil Segura
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
Jalil Segura
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
nileyna
 
9º Algoritmos
9º Algoritmos9º Algoritmos
9º Algoritmos
nileyna
 
Programa informático
Programa informáticoPrograma informático
Programa informático
tomorrowland
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
Cecilia Díaz
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
detlefsen
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
detlefsen
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
adark
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
joel210696
 

Semelhante a Lenguajes de desarrollo (programación) (20)

Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
9º Algoritmos
9º Algoritmos9º Algoritmos
9º Algoritmos
 
Programación
ProgramaciónProgramación
Programación
 
Programa informático
Programa informáticoPrograma informático
Programa informático
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Introduccion a la prgrmacion.
Introduccion a la prgrmacion.Introduccion a la prgrmacion.
Introduccion a la prgrmacion.
 
QUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMASQUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMAS
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
 
Introduccion a la programación I Parte
Introduccion a la programación I Parte Introduccion a la programación I Parte
Introduccion a la programación I Parte
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
 
Generacionlenguajes
GeneracionlenguajesGeneracionlenguajes
Generacionlenguajes
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Lenguajes de desarrollo (programación)

  • 2. Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas 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. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.
  • 3. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
  • 4. También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:  El desarrollo lógico del programa para resolver un problema en particular.  Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa)  Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.  Prueba y depuración del programa.  Desarrollo de la documentación.
  • 5. Desde 1954 hasta la actualidad se han documentado más de 2.500 lenguajes de programación (consultar en The Language List ). Entre 1952 y 1972, la primera época de los lenguajes de programación, se desarrollaron alrededor de 200 lenguajes, de los que una decena fueron realmente significativos y tuvieron influencia en el desarrollo de lenguajes posteriores. Una lista parcial de algunos de los lenguajes de programación más importantes, junto con su año de creación:
  • 6. 1957 FORTRAN  1983 Smalltalk-80  1958 ALGOL  1983 Objective-C  1960 Lisp  1983 Ada  1960 COBOL  1986 C++  1962 APL  1986 Eiffel  1962 SIMULA  1987 Perl  1964 BASIC  1988 Tcl/Tk  1964 PL/I  1990 Haskell  1970 Prolog  1991 Python  1972 C  1993 Ruby  1975 Pascal  1995 Java  1975 Scheme  1995 PHP  1975 Modula  2000 C#
  • 8.
  • 9. El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos) y es el único que “entienden” directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar. Todas las computadoras tienen un código de operación para cada una de sus funciones. La segunda parte de la instrucción es el operando, que indica a la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular; el número de operandos de una instrucción varía en las distintas computadoras.
  • 10. A principios de la década de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron códigos nemotécnicos para las operaciones y direcciones simbólicas. La palabra nemotécnico se refiere a una ayuda para la memorización. Uno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticos, que son los códigos nemotécnicos.
  • 11. Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente. Dicho de otra manera, una sola macroinstrucción podía producir varias líneas de código en lenguaje de máquina. Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente. Dicho de otra manera, una sola macroinstrucción podía producir varias líneas de código en lenguaje de máquina.
  • 12. 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.
  • 13. 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.
  • 14. La programación declarativa es una forma de programación que implica la descripción de un problema dado en lugar de proveer una solución para dicho problema, dejando la interpretación de los pasos específicos para llegar a dicha solución a un intérprete no especificado. La programación declarativa adopta, por lo tanto, un enfoque diferente al de la programación imperativa tradicional. En otras palabras, la programación declarativa provee el “qué”, pero deja el “cómo” liberado a la implementación particular del intérprete. Por lo tanto se puede ver que la programación declarativa tiene dos fases bien diferenciadas, la declaración y la interpretación. Es importante señalar que a pesar de hacer referencia a intérprete, no hay que limitarse a “lenguajes interpretados” en el sentido habitual del término, sino que también se puede estar trabajando con “lenguajes compilados”.
  • 15. -Los lenguajes declarativos están orientados a buscar la solución del problema, sin preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse en la lógica del algoritmo, más que en el control de la secuencia. -Los programas están formados por un conjunto de definiciones o ecuaciones, las cuales describen lo que debe ser calculado, no en sí la forma de hacerlo. -Las variables sólo pueden tener asignado un solo valor a lo largo de la ejecución del programa, lo cual implica que no puede existir asignación destructiva. Debido a esto, cobra especial importancia el uso del anidamiento y la recursividad. -Las listas representan la estructura fundamental de datos. -El orden de la ejecución no resulta importante debido a que no existen efectos colaterales; es decir, que al calcular un valor, resulta imposible afectar el cálculo de otros y con esto se puede afirmar que cualquier secuencia de ejecución deberá conducir al mismo resultado. -Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se pueden tratar como argumentos de otras definiciones. -El control de la ejecución no es responsabilidad del programador.
  • 16. La principal desventaja de la programación declarativa es que no puede resolver cualquier problema dado, sino que está restringida al subconjunto de problemas para los que el intérprete o compilador fue diseñado.
  • 17. A pesar de lo anterior existen algunas ventajas en el uso de la programación declarativa. Entre las ventajas se destaca que la solución de un problema se puede realizar con un nivel de abstracción considerablemente alto, sin entrar en detalles de implementación irrelevantes, lo que hace a las soluciones más fácil de entender por las personas. La resolución de problemas complejos es resuelta por el intérprete a partir de la declaración de las condiciones dadas. La programación declarativa es muy usada en la resolución de problemas relacionados con inteligencia artificial, bases de datos, configuración, y comunicación entre procesos; sin embargo, ningún leguaje declarativo se aproxima en popularidad a los lenguajes imperativos.
  • 18. · PROLOG · SQL · HTML · WSDL (Web Services Description Language) · XML Stylesheet Language for Transformation
  • 19. En ciencias de la computación se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cómo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo: Paso 1, solicitar número. Paso 2, multiplicar número por dos. Paso 3, imprimir resultado de la operación. Paso 4, etc. El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo BASIC, C, C++, Java, Clipper, Dbase, C#, PHP, Perl, etc.
  • 20. En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada. Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado un programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar un problema.
  • 21. 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 y reutilizar.
  • 22. La programación orientada a objetos es una nueva forma de programar que trata de encontrar la solución a problemas de una forma que ofrece muchas ventajas y facilidades que no se tenían anteriormente. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entro ellos destacan los siguientes: · OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (“métodos”). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa).
  • 23. -CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Una clase es una colección de objetos similares o la implementación, declaración o definición de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener Form1, Form2, etc. Así se está creando una instancia de la clase Form. -MÉTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un “mensaje”. Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en lar propiedades del objeto, o la generación de un “evento” con un nuevo mensaje para otro objeto del sistema. -EVENTO: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente.
  • 24. -MENSAJE: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. -PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecución de algún método. -ESTADO INTERNO: es una propiedad invisible de los objetos, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). En comparación con un lenguaje imperativo, una “variable no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la “función” es un procedimiento interno del método del objeto.
  • 25. ABSTRACCIÓN: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.
  • 26. ENCAPSULAMIENTO: también llamado "ocultación de la información". Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos. Esta característica o propiedad permite por tanto ejecutar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.
  • 27. POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo en Visual Basic, el polimorfismo se da al tener diferentes tipos de objetos (Form, Label, etc.)
  • 28. HERENCIA: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto pertenece a más de una clase se dice que hay herencia múltiple; esta característica no está soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos heredan comportamientos dentro de una jerarquía de clases.
  • 29. · La programación orientada a objetos es más moderna, es una evolución de la programación imperativa plasmada en el diseño de una familia de lenguajes conceptos que existían previamente, con algunos nuevos. · La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones (a esta unión se la suele llamar clase). · La programación orientada a objetos incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos.
  • 30. · Ada · Objective-C · C++ · Ocaml · C# · Oz · VB.NET · PHP · Clarion · PowerBuilder · Delphi · Pitón · Eiffel · Ruby · Java · Smalltalk · Lexico (en castellano)
  • 31.
  • 32.
  • 33. http://www.tiobe.com/index.php/content/paperinfo/tpci /index.html  http://www.tagu.com.ar/135_Programaci%C3%B3n  http://www.levenez.com/lang/  http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008- 2009/tema-01.html  http://jorgesaavedra.wordpress.com/2007/05/05/lenguaj es-de-programacion/  http://es.kioskea.net/contents/langages/langages.php3  http://www.desarrolloweb.com/articulos/2358.php  http://www.iqcelaya.itc.mx/~vicente/Programacion/Leng uajes.pdf  http://qbitacora.wordpress.com/2007/09/21/clasificacion -de-lenguajes-de-programacion/  http://www.ilustrados.com/tema/9525/Tipos-Lenguajes- Programacion.html