domingo, 3 de marzo de 2013

LENGUAJES ESPECIALES


Son lenguajes interpretados como JavaScript o VB Script, o lenguajes especiales para uso en servidores como ASP, JSP o PHP. Todos ellos permiten crear páginas web usando código mezcla de página web y lenguajes de programación sencillos.


En programación, un lenguaje interpretado es un lenguaje de programación que necesita de un intérprete para implementar o ejecutar el código escrito en éste. Contrasta con los lenguajes compilados.

En teoría, cualquier lenguaje de programación puede ser tanto interpretado como compilado; la distinción entre lenguajes interpretados y lenguajes compilados es puramente una cuestión de práctica y conveniencia, y no por propiedades inherentes al lenguaje.


HTML

El HTML (Hyper Text Markup Language) es el lenguaje con el que se escriben las páginas web. Es un lenguaje de hipertexto, es decir, un lenguaje que permite escribir texto de forma estructurada, y que está compuesto por etiquetas, que marcan el inicio y el fin de cada elemento del documento.
Un documento hipertexto no sólo se compone de texto, puede contener imágenes, sonido, vídeos, etc., por lo que el resultado puede considerarse como un documento multimedia.
Los documentos HTML deben tener la extensión html o htm, para que puedan ser visualizados en los navegadores (programas que permiten visualizar las páginas web).
Los navegadores se encargan de interpretar el código HTML de los documentos, y de mostrar a los usuarios las páginas web resultantes del código interpretado.


JavaScriptEs un lenguaje de programación que se utiliza principalmente para crear páginas web dinámicas.
Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario.

Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios.


CÓDIGO DE HTML 



BIBLIOGRAFIA

http://www.juntadeandalucia.es/averroes/iesgaviota/informatica/html.html

http://lenguajesinformaticas.eu5.org/especializados.html

http://es.wikipedia.org/wiki/JavaScript

http://www.conocimientosweb.net/descargas/article1385.html

LENGUAJE ORIENTADO A OBJETOS

Tambien llamado POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.


Antes la programación se hacía de forma lineal y secuencial y antes ofrecían grandes ventajas, claro, al principio, el problema era cuando se volvían más y más complejos. Y el gran problema era cuando se tenían que mantener grandes cantidades de líneas de código dentro de un solo bloque, volviéndolo cada vez más complicado de lo que era antes. Entonces fue cuando entro la programación estructurada que tenía como objetivo principal separar las partes complejas en pequeños módulos que se ejecutaban conforme se requerían teniendo un diseño hecho por módulos independientes. Se vio que la forma de programación orientada estaba basada básicamente en estar descomponiendo el propio programa conduciéndonos a la programación orientada a objetos.
Gracias al objetivo de crear más programas grandes y complejos, se buscó una forma de programar de manera sencilla grandes sistemas empresariales, mostrando que la programación lineal y estructurada ya
no podía cumplir con los objetivos de los nuevo programas, naciendo de esa forma la programación orientada a objetos POO que se basa en dividir el programa en pequeñas unidades de código (llamadas objetos) que se comunican entre sí por medio de mensajes.

¿Cuáles son las ventajas de un lenguaje orientado a objetos?
Las ventajas de un lenguaje orientado a objetos son:
• Permite la reutilización de código y extensión
• Permite la creación de sistemas más elaborados.
• Relación sistema - mundo real.
• Facilita la creación de programas visuales.
• Permite la construcción de prototipos de software
• Agiliza el desarrollo

La ventaja de este modelo es que proporciona herramientas para modelar y representar un programa en el mundo real

Para poder entenderlo mejor, revisaremos los 4 conceptos básicos que son:
• Objetos: Base para entender cualquier lenguaje en el cual lo que necesitamos de saber es simplemente que es lo que hace o como interactúa dentro del mundo real. Cada objeto creado tiene un rol específico dentro del mismo programa realizando una función específica, la cual funciona por medio de dos componentes que son las características (atributos) y comportamiento (funciones o acciones que realiza).
• Clases: son características que contienen dichos objetos que pueden ser similares a otros objetos o que comparten ciertos atributos. Podría decirse que define variables
y atributos comunes a todos los objetos de cierta clase, como una plantilla que toman como base para la creación de los objetos.
• Herencia: Un concepto crucial, ya que una clase puede heredar variables, y métodos a otras clases
• Envío de mensajes: simplemente la forma en la cual se comunican los metodos de los objetos.



CÓDIGO DE HERENCIA.






Características asociadas al POO


EncapsulamientoUne en una Clase las características y comportamientos, las cuales son variables y métodos. En los lenguajes de antes que eran los estructurados era imposible, mostrando una gran ventaja y utilidad, ya que puede manejar complejidades. Lo que hace es que muestra lo que hace mas no como lo hace
Ocultamiento.
Simplemente oculta los detalles internos del comportamiento de una Clase y muestra únicamente detalles que sean necesarios para el resto del sistema. Nos permite el ocultamiento 2 cosas: restringir (hay comportamiento que es privado para el usuario, no podrá accesar a ello) y controlar (no tendrá el poder para manipularlo) el uso de la Clase. En Java el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y métodos.
Abstracción.
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. 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.

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.

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. 




BILBIOGRAFIA.

http://www.monografias.com/trabajos73/tipos-lenguajes-programacion/tipos-lenguajes-programacion2.shtml

http://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)

http://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_a_objetos)

http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html

http://html.rincondelvago.com/lenguajes-de-programacion_historia-y-evolucion.html

LENGUAJE LOGICO


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.
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.



En la programación lógica, se trabaja de una forma descriptiva, estableciendo relaciones entre entidades, indicando no cómo, sino qué hacer. La ecuación de Robert Kowalski (Universidad de Edimburgo) establece la idea esencial de la programación lógica: algoritmos = lógica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lógica de primer orden)


El programador especifica hechos y propiedades del problema, no como debe resolverse; es el sistema quién debe buscar la solución, usando:

  • Hechos o asertos y reglas para representar la información.
  • Deducciones para responder consultas, y generar nuevos hechos, a partir de sus componentes lógicos y secuencias de control del sistema, automatizando así la corrección del programa.
  • Verificación de las transformaciones, evaluadas partiendo de metas. Si se prueba que se ajustan a hechos o se deducen de alguna regla, entonces sus antecedentes se convierten en nuevas metas.
  • La solución final resulta de aplicar resultados intermedios de las variables de la meta inicial, usando un proceso iterativo, que concluye cuando las sub-metas son probadas.
CÓDIGO EJEMPLO DE PROLOG



La programación lógica encuentra su hábitat natural en aplicaciones de inteligencia artificial o relacionadas: Sistemas expertos, donde un sistema de información imita las recomendaciones de un experto sobre algún dominio de conocimiento.
Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente.
Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana.



Lenguajes

El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas variantes. La más importante es la programación lógica con restricciones.






BILBIOGRAFIA.

http://www.amzi.com/articles/code07_whitepaper.pdf

http://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativa

http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html

http://html.rincondelvago.com/lenguajes-de-programacion_historia-y-evolucion.html

LENGUAJE DE PROGRAMACION 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 raíces en el cálculo lambda, un sistema formal desarrollado en los 1930 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.

La programación funcional incorpora el concepto de función como objeto de primera clase, lo que significa que las funciones se pueden tratar como datos (pueden pasar como parámetros, calculadas y devueltas como valores normales, y mezcladas en el cálculo con otras formas de datos).

En este paradigma el informático concibe la solución como una composición de funciones. Por ejemplo, para ordenar una lista, se puede diseñar la solución como una concatenación de listas más pequeñas, cada una de las cuales ya está clasificada. Esto reduce el problema a seleccionar las listas más pequeñas.

La forma en que se especifican las funciones puede variar. Se pueden especificar procedimentalmente o matemáticamente mediante su definición, sin secuencia de control.
Otra ventaja potencial de este enfoque es la posibilidad de restringirse únicamente a las funciones estrictas y asociarles un mecanismo de evaluación por valor. que es el más sencillo de implementar. Otra ventaja es la existencia de definiciones de nivel funcional que no son simplemente el correspondiente de una definición de nivel de valores. Estas definiciones, a veces un poco crípticas por lo concisas representan un estilo de programación muy poderoso. 

CÓDIGO FUNCIONAL EN HASKELL





Características

Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial, y por tanto, la carencia total de efectos colaterales.

Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).

Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido. 


LENGUAJES FUNCIONALES

Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales híbridos más conocidos son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML



BILBIOGRAFIA.


http://www.um.es/docencia/barzana/IAGP/Iagp3.html


http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional

http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html

http://html.rincondelvago.com/lenguajes-de-programacion_historia-y-evolucion.html

LENGUAJE IMPERATIVO O PROCEDURAL



Un paradigma de programación es un modelo básico de diseño y desarrollo de programas, que permite producir programas con unas directrices específicas, tales como: estructura modular, fuerte cohesión, alta rentabilidad, etc.

Este paradigma se caracteriza por un modelo abstracto de ordenador que consiste en un gran almacenamiento de memoria.El ordenador almacena una representación codificada de un cálculo y ejecuta una secuencia de comandos que modifican el contenido de ese almacenamiento.


La programación en el paradigma imperativo consiste en determinar qué datos son requeridos para el cálculo, asociar a esos datos unas direcciones de memoria, y efectuar paso a paso una secuencia de transformaciones en los datos almacenados, de forma que el estado final represente el resultado correcto.

CÓDIGO EJEMPLO





En su forma pura este paradigma sólo soporta sentencias simples que modifican la memoria y efectúan bifurcaciones condicionales e incondicionales. Incluso cuando se añade una forma simple de abstracción procedimental, el modelo permanece básicamente sin cambiar. Los parámetros de los procedimientos son "alias" de las zonas de memoria, por lo que pueden alterar su valor, y no retorna ningún tipo de cálculo. La memoria también se puede actualizar directamente mediante referencias globales.El paradigma imperativo debe su nombre al papel dominante que desempeñan las sentencias imperativas. Su esencia es el cálculo iterativo, paso a paso, de valores de nivel inferior y su asignación a posiciones de memoria.


A este tipo de paradigma de programación se le suele llamar algorítmico, dado que el significado de algoritmo es análogo al de receta, método, técnica, procedimiento o rutina, y se define como "un conjunto finito de reglas diseñadas para crear una secuencia de operaciones para resolver un tipo específico de problemas".

Atendiendo a los lenguajes imperativos, cabe clasificarlos en "orientados a expresiones" y "orientados a sentencias", según jueguen las expresiones o sentencias un papel más predominante en el lenguaje, respectivamente. Ambos son términos relativos y no se pueden aplicar de forma absoluta. Se puede decir que C, FORTRAN; Algol, Pascal, son lenguajes orientados a expresiones, mientras que COBOL y PL/1 están orientados a sentencias.


CÓDIGO EJEMPLO



BILBIOGRAFIA.

http://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativa
http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html
http://html.rincondelvago.com/lenguajes-de-programacion_historia-y-evolucion.html

PARADIGMAS DE LA PROGRAMACION


Un paradigma de programación es un modelo básico de diseño y desarrollo de programas, que permite producir programas con unas directrices específicas, tales como: estructura modular, fuerte cohesión, alta rentabilidad, etc.

Esa estructura conceptual de modelos está pensada de forma que esos modelos determinan la forma correcta de los programas y controlan el modo en que pensamos y formulamos soluciones, y al llegar a la solución, ésta se debe de expresar mediante un lenguaje de programación. Para que este proceso sea efectivo las características del lenguaje deben reflejar adecuadamente los modelos conceptuales de ese paradigma.



Ejemplo:
Probablemente el paradigma de programación que actualmente es el más usado a todos los niveles es la orientación a objeto. El nucleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".
Tradicionalmente datos y procesamiento se han separado en áreas diferente del diseño y la implementación de software. Esto provocó que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptación a los cambios y escalabilidad. Con la orientación a objetos y características como el encapsulado, polimorfismo o la herencia se permitió un avance significativo en el desarrollo de software a cualquier escala de producción. 

TIPOS DE PARADIGMAS


  • Imperativo o por procedimientos: es considerado el más común y está representado, por ejemplo, por C, BASIC o Pascal
  • Funcional: está representado por Scheme o Haskell. Este es un caso del paradigma declarativo.
  • Lógico: está representado por Prolog. Este es otro caso del paradigma declarativo.
  • Declarativo: por ejemplo la programación funcional, la programación lógica, o la combinación lógico-funcional.
  • Orientado a objetos: está representado por Smalltalk, un lenguaje completamente orientado a objetos.











BIBLIOGRAFIA.
http://www.youtube.com/watch?v=ZFzQsrVgz1c
http://www.youtube.com/watch?v=Aj_GskNVeu8
http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html
http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n


HISTORIA DE LA PROGRAMACION INICIOS.....


Gottfried Wilheml von Leibniz (1646-1716), quien aprendió matemáticas de forma autodidacta (método no aconsejable en programación) construyó una máquina similar a la de Pascal, aunque algo más compleja, podía dividir, multiplicar y resolver raíces cuadradas.

Pero quien realmente influyó en el diseño de los primeros computadores fue Charles Babbage(1793-1871). Con la colaboración de la hija de Lord Byron, Lady Ada Countess of Lovelace(1815-1852), a la que debe su nombre el lenguaje ADA creado por el DoD (Departamento de defensa de Estados Unidos) en los años 70. Babbage diseñó y construyó la "máquina diferencial" para el cálculo de polinomios. Más tarde diseñó la "máquina analitica" de propósito general, capaz de resolver cualquier operación matemática.


Pero la tecnología de la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores actuales responden a un esquema análogo al de la máquina analítica. En su diseño, la máquina constaba de cinco unidades básicas: 1) Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecución de las operaciones; 4) Unidad Aritmético-Lógica, que efectúa las operaciones; 5) Unidad de salida, encargada de comunicar al exterior los resultados. Charles Babbage, conocido como el "padre de la informática" no pudo completar en aquella época la construcción del computador que había soñado, dado que faltaba algo fundamental: la electrónica. El camino señalado de Babbage, no fue nunca abandonado y siguiéndolo, se construyeron los primeros computadores.

Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor ingles, que la principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquélla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación, sobre todo si observamos que en cuanto se empezó a programar, los programadores utilizaron las técnicas diseñadas por Charles Babagge, y Ada, que consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antaño, se adelantaron un siglo a su época, lo cual describe la inteligencia de la que se hallaban dotados.
 

Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programación se basaba en componentes físicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que sé hacia era cambiar cables de sitio para conseguir así la programación de la maquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.

BIBLIOGRAFIA.

http://www.ciberaula.com/articulo/historia_programacion/
http://clubensayos.com/Tecnolog%C3%ADa/Inicios-De-La-Programacion-De/515211.html
http://html.rincondelvago.com/lenguajes-de-programacion_historia-y-evolucion.html