1-
Para crear un programa, y que la computadora lo intérprete y ejecute las instrucciones escritas en él, debe usarse un lenguaje de programación. En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (sistema binario). Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; las codificaron y crearon así un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con sólo una. Una vez que se termina de escribir un programa, sea en ensamblador o en algunos lenguajes de alto nivel, es necesario compilarlo, es decir, traducirlo completo a lenguaje máquina.1 Eventualmente será necesaria otra fase denominada comúnmente link edición o enlace, durante la cual se anexan al código, generado durante la compilación, los recursos necesarios de alguna biblioteca. En algunos lenguajes de programación, puede no ser requerido el proceso de compilación y enlace, ya que pueden trabajar en modo intérprete. Esta modalidad de trabajo es equivalente pero se realiza instrucción por instrucción, a medida que es ejecutado el programa.
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 analítica" de propósito general, capaz de resolver cualquier operación matemática. Murió sin poder terminarla, debido al escepticismo de sus patrocinadores y a que la tecnología de la época no era lo suficientemente avanzada. Un equipo del Museo de las Ciencias de Londres, en 1991, consiguió construir la máquina analítica de Babbage, totalmente funcional, siguiendo sus dibujos y especificaciones.
2-
Formas de programación
Pueden encontrarse las siguientes programaciones:
Programación declarativa: Mantiene un paradigma de programación el cual se basa en el desarrollo de programas que están especificando un conjunto de determinadas condiciones, proposiciones, afirmaciones, restricción, ecuaciones o transformaciones las cuales pueden mostrar, describir y detallar un problema y su solución. Esta solución se obtiene mediante diversos mecanismos internos de control. Las mismas no son específicas en cuanto a su localización, solo se le pide a la computadora que busque algo.
Programación estructurada: Conocido también como un paradigma de la programación el cual se encuentra orientado a mejorar la calidad, claridad y el tiempo que tarde en se desarrollado un programa de computadora.
Para esto utiliza solamente subrutinas y tres estructuras: secuencia, selección e iteración. Este surgió en 1960 del trabajo de Böhm y Jacopini.
Programación modular: Este tipo de programación consiste principalmente en dividir los programas en partes llamadas subprogramas o módulos, los cuales son más legibles y manejables, es decir, tienen como fin facilitar su uso. Es el resultado evolutivo de la programación estructura para solucionar algunos problemas más grandes y difíciles de lo que la primera puede llegar a resolver.
Una vez aplicada la programación modular, un problema de índole complejo se divide en varios subproblemas mucho más simples los cuales son divididos, a su vez, en otros subproblemas más simples todavía. Este proceso se continúa hasta que se encuentra un subproblema lo suficientemente simple como para poder ser resuelto fácilmente. Esta técnica es conocida como refinamiento sucesivo o análisis descendente.
Un módulo es considerado cada una de las partes de un programa que puede resolver uno de los subproblemas encontrados, en los que se divide el problema original. Todos estos módulos contienen una tarea específica y definida diferente una de otra por lo que es posible que unos necesiten de otros para poder operar y concretar la finalización de un subproblema.
En los casos en los que un módulo necesita de otro, pueden comunicarse a través de una interfaz de comunicación la cual también se encuentra bien definida. En la práctica el módulo es considerado un proceso y función, muy diferente a la parte teórica el cual puede entenderse como una parte del programa. Sin embargo, no debe ser confundido el término procedimiento o función con el término módulo ya que el mismo puede contener muchos de ellos por lo que se debe tener cuidado.
Programación orientada a objetos: Puede ser encontrado bajo las siglas POO, y se refiere a un paradigma de la programación el cual utiliza los objetos resultantes en sus interacciones para poder diseñar aplicaciones y programas informáticos.
Para esto basa sus conceptos en varias técnicas como la herencia, la cohesión, la abstracción, el polimorfismo, el encapsulamiento y el acoplamiento. Comienza su utilización en la década de los años 1990 y se mantiene hasta hoy, donde pueden encontrarse grandes variedades de lenguajes de programación que soportan la orientación a objetos
PROGRAMACIÓN ESTRUCTURADA
|
PROGRAMACIÓN ORIENTADA A OBJETO
| ||
VENTAJAS
|
DESVENTAJAS
|
VENTAJAS
|
DESVENTAJAS
|
|
|
|
|
4-5-
Microsoft Visual Studio.NET
Básicamente, Microsoft Visual Studio.NET es un entorno de desarrollo integrado (IDE, en inglés) desarrollado para crear aplicaciones para el sistema operativo Windows. Este entorno es capaz de ofrecer soporte a múltiples lenguajes de programación como Visual C++, Visual C#, Visual J#, y Visual Basic .NET. Del mismo modo, ofrece soporte a entornos de desarrollo web como ASP.NET.
Java SDK
Java es un lenguaje de programación diseñado para que el producto desarrollado con el lenguaje pueda ser interpretado y ejecutado independientemente del sistema operativo en el que se utilice mediante una máquina virtual Java (JVM).
La principal característica de Java es que fue diseñado para tener la menor cantidad de dependencias posibles, lo que favorece que los desarrolladores, ya que sólo tendrán que escribir el programa una sola vez, sin necesidad de tener que recopilarlo para otras plataformas o sistemas operativos.
NetBeans
Básicamente, NetBeans es un entorno de desarrollo integrado (IDE) libre con el cual el desarrollador podrá diseñar sus aplicaciones de escritorio usando el lenguaje Java a partir de un conjunto de componentes llamados “Módulos”.
En el caso de que quieras obtener más información acerca de la interrelación entre Java y NetBeans, pulsa sobre este enlace.
Delphi
Delphi es un entorno de desarrollo de software orientado a la programación general con un marcado hincapié en la programación visual. Utilizando Object Pascal como lenguaje, es posible desarrollar programas para Windows y el sistema operativo Linux.
Ruby on Rails
Ruby on Rails es un framework específicamente diseñado para trabajar en conjunto con el lenguaje de programación Ruby. Ruby es un lenguaje de programación orientado a objetos que le brinda a los desarrolladores una sintaxis similar a Perl, y cuya principal característica es la facilidad y velocidad con que se pueden desarrollar aplicaciones web.
Velneo
Velneo es un entorno de desarrollo para aplicaciones de negocios sobre bases de datos como CRM y ERP. Se trata de un entorno de programación totalmente visual y muy potente. Además, la curva de aprendizaje es bastante suave, lo que permite que incluso aquellos que no tienen conocimientos profundos en el ámbito de la programación puedan desarrollar aplicación en poco tiempo.
GeneXus
GeneXus es una herramienta de desarrollo multiplataforma, en la cual se hace hincapié en la capacidad para el diseño de aplicaciones orientadas a la plataforma Windows en escritorio, smartphones, tablets y web empresariales.
WinDev
WinDev es un entorno de desarrollo integrado que permite crear aplicaciones basadas en un motor de ejecución. Del mismo modo que los lenguajes de programación Java, Visual Basic o C#, el código obtenido con Windev se precompila e interpreta en la ejecución por el framework, lo que convierte al producto desarrollado mediante el entorno en completamente independiente de la plataforma o sistema operativo empleado en su ejecución.
No hay comentarios:
Publicar un comentario