martes, 27 de mayo de 2008

BASIC

BASIC es un lenguaje de programación que originalmente fue desarrollado como una herramienta de enseñanza; se diseminó entre las microcomputadores hogareñas a partir de la década de 1980, y sigue siendo muy popular hoy en día, en muchos dialectos bastante distintos del original.

BASIC es el acrónimo de Beginners All-purpose Symbolic Instruction Code; por correspondencia con Thomas E. Kurtz. (traducido al español: "código de instrucciones simbólicas de propósito general para principiantes") y está ligado al nombre de un trabajo sin publicar del coinventor del lenguaje, Thomas Kurtz (el nombre no está relacionado con la serie de C. K. Ogden, Basic English).

Disponibilidad y variantes del Lenguaje

BASIC está disponible para casi todas las plataformas y sistemas operativos existentes. Una implementación gratuita que cumple con estándares y es multiplataforma es Bywater BASIC (bwBASIC). El intérprete está escrito en C y viene bajo la licencia GNU. Está diseñado para interfase de texto o consola (no gráfica), no incluye soporte para crear interfaces gráficas de usuario (GUI's). Hay un BASIC gratuito que si incluye soporte para GUI(Graphical User Interface), es similar a Visual BASIC y se ejecuta en Windows y Linux, es Phoenix Object BASIC.

Las versiones de intérpretes/compiladores más conocidos son la línea de productos Quick BASIC de Microsoft, y QBASIC como sólo intérprete. En la actualidad lo es el moderno Visual BASIC, que Microsoft ha tratado de mantener al menos mínimamente compatible con incluso las primeras versiones de sus BASIC (en realidad es escasamente compatible).

Otras versiones incluyen PowerBASIC de PowerBASIC, así como TrueBASIC de TrueBASIC, que cumple con los últimos estándares oficiales de BASIC. (True BASIC Inc. fue fundada por los creadores originales de Dartmouth BASIC.)

REALbasic es una variante disponible para Mac OS Classic, Mac OS X, Microsoft Windows y Linux. Una versión de un dialecto simple de BASIC para la parrot virtual machine muestra como se implementa un intérprete de BASIC en un lenguaje similar al ensamblador. SmallBASIC es un dialecto que ejecuta en muchas plataformas (Win32, DOS, Linux y PalmOS) y viene bajo la licencia GNU (GPL).

ENSAMBLADOR

El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.

Tipos de ensambladores

Podemos distinguir entre tres tipos de ensambladores:

  • Ensambladores básicos. Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de direccionamiento. Además, reconoce una serie de directivas (o meta instrucciones) que indican ciertos parámetros de funcionamiento del ensamblador.
  • Ensambladores modulares,o macro ensambladores. Descendientes de los ensambladores básicos, fueron muy populares en las décadas de los 50 y los 60, antes de la generalización de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y además proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros). Véase X86. Ensambladores modulares 32-bits o de alto nivel. Son
  • ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.

JAVA SCRIPT

JavaScript es un lenguaje de programación interpretado, es decir, que no requiere compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java y el lenguaje C.

Al igual que Java, JavaScript es un lenguaje orientado a objetos propiamente dicho, ya que dispone de Herencia, si bien esta se realiza siguiendo el paradigma de programación basada en prototipos, ya que las nuevas clases se generan clonando las clases base (prototipos) y extendiendo su funcionalidad.

Todos los navegadores modernos interpretan el código JavaScript integrado dentro de las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del DOM.

El lenguaje fue inventado por Brendan Eich en la empresa Netscape Communications, que es la que desarrolló los primeros navegadores web comerciales. Apareció por primera vez en el producto de Netscape llamado Netscape Navigator 2.0.

Tradicionalmente, se venía utilizando en páginas web HTML, para realizar tareas y operaciones en el marco de la aplicación únicamente cliente, sin acceso a funciones del servidor. JavaScript se ejecuta en el agente de usuario al mismo tiempo que las sentencias van descargándose junto con el código HTML.

Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue rebautizado como JavaScript en un anuncio conjunto entre Sun Microsystems y Netscape, el 4 de diciembre de 1995.

En 1997 los autores propusieron JavaScript para que fuera adoptado como estándar de la European Computer Manufacturers' Association ECMA, que a pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA, con el nombre de ECMAScript. Poco después también lo fue como un estándar ISO.

JScript es la implementación de ECMAScript de Microsoft, muy similar al JavaScript de Netscape, pero con ciertas diferencias en el modelo de objetos del navegador que hacen a ambas versiones con frecuencia incompatibles.

Para evitar estas incompatibilidades, el World Wide Web Consortium diseñó el estándar Document Object Model (DOM, ó Modelo de Objetos del Documento en castellano), que incorporan Konqueror, las versiones 6 de Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla desde su primera versión.

JAVA

Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.

La implementación original y de referencia del compilador, la máquina virtual y las librerías de clases de Java fueron desarrollados por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolución del lenguaje a través del Java Community Process, si bien otros han desarrollado también implementaciones alternativas de estas tecnologías de Sun, algunas incluso bajo licencias de software libre.

Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las especificaciones del Java Community Process, de tal forma que prácticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java todavía no es software libre).

C ++

El C++ (pronunciado "ce más más" o "ce plus plus") es un lenguaje de programación, diseñado a mediados de los años 1980, por Bjarne Stroustrup, como extensión del lenguaje de programación C.

Se puede decir que C++ es un lenguaje que abarca tres paradigmas de la programación: la programación estructurada, la programación genérica y la programación orientada a objetos.

Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes como ROOT (enlace externo). Las principales características del C++ son las facilidades que proporciona para la programación orientada a objetos y para el uso de plantillas o programación genérica (templates).

Además posee una serie de propiedades difíciles de encontrar en otros lenguajes de alto nivel:
  • Posibilidad de redefinir los operadores (sobrecarga de operadores)
  • Identificación de tipos en tiempo de ejecución (RTTI)

C++ está considerado por muchos como el lenguaje más potente, debido a que permite trabajar tanto a alto como a bajo nivel, sin embargo es a su vez uno de los que menos automatismos trae (obliga a hacerlo casi todo manualmente al igual que C) lo que "dificulta" mucho su aprendizaje.

El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.

CLIPPER

Clipper es un lenguaje de programación imperativo creado en 1985 por Nantucket Corporation. En un principio se pensó en que Clipper sería un compilador para el sistema gestor de bases de datos dBase III (de hecho las versiones estacionales de Nantucket incluían una etiqueta que lo indicaba así), pero con el tiempo el producto maduró, convirtiéndose en un lenguaje más poderoso que el original, no sólo por sus propias implementaciones sino también por las ampliaciones al lenguaje desarrolladas por terceros en C y Pascal, de los que va heredando características. Esto lo convierte en la herramienta líder de desarrollo bajo MS-DOS de aplicaciones relacionadas con bases de datos, sobre todo programas de contabilidad y facturación (SAGE-SP, líder del mercado español, lo usa para Contaplus y FacturaPlus), y agendas comerciales y programas de tarificación (aproximadamente el 80% de las compañías de seguros de España lo utilizaron en los programas para sus agentes).

Caracteristicas

A diferencia de otros lenguajes xBase, Clipper nunca contó con un modo intérprete similar al de dBase, y sus utilidades para manejo de base de datos se entregaban con el código fuente. Como muchos otros lenguajes xBase, Clipper en realidad no es un compilador puro, pues traduce el código fuente a P-code (también llamado pseudocódigo) que es interpretado por una máquina virtual. Este sistema es rápido pero no tanto como lo sería un compilador puro que generara ensamblador. Por ello siempre necesita tener los ficheros de runtime.

FORTRAN

Lenguaje de programación informática, de alto nivel y propósito general, ha sido ampliamente adoptado por la comunidad científica para escribir aplicaciones de cálculos intensivos. La inclusión en el lenguaje de la aritmética de números complejos amplió la gama de aplicaciones para las cuales el lenguaje se adapta especialmente; muchas técnicas de compilación de lenguajes se han implementado para mejorar la calidad del código generado por los compiladores de Fortran.

Ventajas e inconvenientes de su sintaxis

Lo que fue la primera tentativa de proyección de un lenguaje de programación de alto nivel, tiene una sintaxis considerada arcaica por muchos programadores que aprenden lenguajes más modernos. Es difícil escribir un bucle "for", y errores en la escritura de sólo un carácter pueden llevar a errores durante el tiempo de ejecución en vez de errores de compilación, en el caso de que no se usen las construcciones más frecuentes. Algunas de las versiones anteriores no poseían facilidades que son consideradas como útiles en las máquinas modernas, como la colocación dinámica de memoria. Se debe tener en cuenta que la sintaxis de Fortran fue afinada para el uso en trabajos numéricos y científicos y que muchas de sus deficiencias han sido abordadas en revisiones más recientes del lenguaje. Por ejemplo, Fortran 95 posee comandos mucho más breves para efectuar operaciones matemáticas con matrices y dispone de tipos. Esto no sólo mejora mucho la lectura del programa sino que además aporta información útil al compilador. Por estas razones Fortran no es muy usado fuera de los campos de la informática y el análisis numérico, pero permanece como el lenguaje a escoger para desempeñar tareas de computación numérica de alto rendimiento

Experimentalmente, se han efectuado medidas de tiempo comparando Fortran con lenguajes de alto nivel. En el caso de Visual Basic 6, a la hora de ejecutar un código que produce el mismo resultado, las medidas de tiempo obtenidas son las siguientes:

Visual Basic 80 Horas

Fortran 10 segundos

Por tanto, la decisión sobre qué lenguaje de programación usar depende del tipo de aplicación a desarrollar, tiempo disponible y necesidad de cálculos intensivos.

FLOW-MATIC

Es el primer lenguaje de alto nivel orientado al ámbito de gestión. Fue creado por Grace Murray Hopper (1906 – 1992) en 1955 para UNIVAC. Estableció el concepto de lenguajes de programación basados en palabras del lenguaje natural también desarrolló los primeros compiladores de la historia el A-0 (Math Matic) y el B-0. Y en 1960 presentó su primera versión del lenguaje COBOL (Common Business-Oriented Language).

GAMBAS

Gambas es un lenguaje de programación libre derivado de BASIC. Es similar al producto de Microsoft Visual Basic y se distribuye con licencia GNU GPL. Aunque desde otro punto de vista, está muy inspirado también por Java.

Permite crear formularios, botones de comandos, cuadros de texto o enlazar bases de datos como MySQL, PostgreSQL o SQLite.

Es una herramienta sencilla e interesante para estudiantes de programación visual o gráfica.

OZ

Oz es un lenguaje de programación multi-paradigma y Lenguaje_de_programación_esotérico

Oz fue originalmente desarrollado en el laboratorio de Programación de Sistemas en la Universidad de Saarland por Gert Smolka y sus estudiantes a comienzos de 1990. En 1996 el desarrollo de Oz continuó en cooperación con el grupo de investigación de Seif Haridi en el Instituto Sueco de Ciencias de la Computación. Desde 1999, Oz ha sido continuamente desarrollado por un grupo internacional, el Consorcio Mozart, que estuvo compuesto originalmente por la Universidad de Saarland, el Instituto Sueco de Ciencias de la Computación, y la Universidad Católica de Louvain. En 2005, la responsabilidad de gestionar el desarrollo de Mozart fue transferida a un grupo base, el Tablero Mozart, con el propósito expreso de abrir el desarrollo de Mozart a una comunidad mayor.

Oz tiene una implementación de gran calidad, el Sistema de Programación Mozart, el cual fue liberado con una licencia de Código Abierto por el Consorcio Mozart. Mozart ha sido portado a diferentes plataformas como Unix, FreeBSD, Linux, Microsoft Windows, y Mac OS X.

PASCAL

Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth a finales de los años 60. Su objetivo era crear un lenguaje que facilitara el aprendizaje de la programación a sus alumnos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
  1. El código esta dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.
  2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.

Características únicas

A diferencia de lenguajes de programación descendientes de C, Pascal utiliza el símbolo := para la asignación en vez de =. Si bien el segundo es más conciso, la práctica ha demostrado que muchos usuarios utilizan el símbolo de igualdad para comparar valores en lugar del comparador de C que es el símbolo ==. Esta sintaxis conduce a muchos errores o bugs difíciles de rastrear en código C. Dado que Pascal no permite asignaciones dentro de expresiones y utiliza sintaxis distinta para asignaciones y comparaciones, no sufre estos errores.

Además sus programas tienen definidas dos partes: declarativa y ejecutiva. En la primera debe aparecer todo lo que se usará en la segunda, de lo contrario se detecta como desconocido y evita ciertas incomprensiones como veremos más adelante. En la parte declarativa se enuncian Unit existentes, procedimientos, funciones, variables, constantes y nuevos tipos de datos estructurados.

Otra diferencia importante es que en Pascal, el tipo de una variable se fija en su definición; la asignación a variables de valores de tipo incompatible no están autorizadas (En C, en cambio, el compilador hace el mejor esfuerzo para dar una interpretación a casi todo tipo de asignaciones). Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido. Esto también evita la necesidad de notación húngara, esto es prefijos que se añaden a los nombres de las variables y que indican su tipo.

El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.

PROLOG

Prolog, proveniente del francés Programation et Logique, es un lenguaje de programación lógico e interpretado, bastante popular en el medio de investigación en Inteligencia Artificial.

Se trata de un lenguaje de programación ideado a principios de los años 70 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel. Inicialmente se trataba de un lenguaje totalmente interpretado hasta que, a mediados de los 70, David H.D.

Warren desarrolló un compilador capaz de traducir Prolog en un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-interpretado. Prolog se enmarca en el paradigma de los lenguajes lógicos, lo que lo diferencia enormemente de otros lenguajes más populares tales como Fortran, Pascal, C.

RUBY

Ruby es un lenguaje de programación reflexivo y orientado a objetos(lenguaje interpretado), creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python, Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre. Características orientado a objetoscuatro niveles de ambito de variable: global, clase, instancia y local.manejo de excepcionesiteradores y clausuras o closures (pasando bloques de código)expresiones regulares nativas similares a las de Perl a nivel del lenguajeposibilidad de redefinir los operadores (sobrecarga de operadores)recolección de basura automáticaaltamente portableHilos de ejecución simultáneos en todas las plataformas usando green threadsCarga dinámica de DLL/librerias compartidas en la mayoría de las plataformasintrospección, reflexión y metaprogramaciónamplia librería estándarsoporta inyección de dependenciassoporta alteración de objetos en tiempo de ejecucióncontinuaciones y generadores

VELNEO

Velneo es un entorno de desarrollo integrado (IDE) visual que integra lenguaje de programación con un conjunto de instrucciones de proceso (más de 150), un motor propio de base de datos, un servidor de aplicaciones multitarea y multiprocesador que permite atacar aplicaciones albergadas en él vía TCP/IP y un servidor web con pasarela propia, pensado para desarrollo de productos empresariales.

Ofrece un paradigma de programación bastante diferente a los lenguajes tradicionales utilizando un entorno de desarrollo RAD (Rapid Application Development) ya que tienen entre su misión acortar el tiempo necesario para realizar un proyecto, y que apenas sea necesario escribir código.

El motor de base de datos es propio y está integrado en el servidor de aplicaciones. Es un modelo de base de datos real integrada, cuya primera versión apareció hace más de 20 años. Es compatible con sistemas de traspaso de datos como XML y SOAP. Destaca por el soporte de transacciones, su estabilidad y su escalabilidad.

Dispone de objetos TCP para comunicaciones avanzadas, Servicios Web, WSDL, POP3, SMTP, SOAP, etc. Permite la ejecución de funciones remotas, dotando al sistema de interconectividad entre servidores, replicación, consolidación y arquitecturas on-off.

Dispone de una interfaz para la implementación y manejo de todo tipo de DLL´s y permite el acceso nativo a bases de datos como Oracle e Informix y el acceso a bases de datos externas vía ODBC como DB2, MySQL, SQL Server, Access, etc. La ejecución de aplicaciones en arquitectura Cliente / Servidor se realiza por TCP/IP mediante el protocolo de acceso VATP (propietario de la plataforma Velneo) con cifrado de 128 bits, por el puerto 690 asignado por la IANA y HTTP (para la explotación del contenido Web). La evolución de esta plataforma se convertirá en un nuevo producto, llamado V7, que se encuentra actualmente bajo desarrollo en fase Beta y será multiplataforma utilizando para ello las Qt de Trolltech, pudiendo ejecutarse en plataformas Windows, Linux y Mac.