domingo, 10 de junio de 2007

"Lenguaje de Programación"

Priscila Zúñiga

El lenguaje de programación (LP) es un lenguaje pensado para ser usado por una persona para expresar un proceso por el cual el computador puede solucionar un problema.

En la década de los 40: era prelingual.
Konrad Zuse, 1944, Plankalkül (programa de cálculo). LP con parámetros, más preocupados de la estructura que de la eficiencia.

Década de los 50:
aprovechamiento de la potencia de la máquina.
Nacen los primeros LP de alto nivel: Fortran (IBM Mathematical Formula Translating Sustem). También incluyen procedimientos y algunas estructuras de control de flujo.

Década de los 60:
atención a la potencia de expresión de los LP.
Aparecen muchos LP: COBOL , LISP, ALGOLGO, PL/I.
Proponen nuevas ideas: datos estructurados (COBOL, PL/I), recursión (LISP, ALGOL 60), interacción con el usuario (BASIC) y computación simbólica (LISP, primer lenguaje funcional)

Década de los 70:
portabilidad, reducción de la dependencia de la máquina.
Crisis de software y corrección de los programas.
Lenguajes: PASCAL, ALGOL 68 y C. Considerable portabilidad y más abtracción del proceso de computación.

Década de los 80:
reducción de la complejidad en la progamación y la administración de programas.
Para ayudar a manejar la complejidad aparecen: Ada y Modula-2.
Surgen "otras formas de pensar" en la programación: lenguajes orientados a objetos (Smalltalk), funcionales (ML, Miranda) y logicos (PROLOG)

Década de los 90:
explosión del hardware paralelo y distribuido.
Tratamiento sistemático de este tipo de hardware por parte de los LP.
Estos lenguajes permiten solucionar un problema de manera eficiente dividiéndolo en subproblemas que pueden ejecutarse en paralelo por procesadores diferentes.

Por ejemplo un lenguaje:

C++ es un lenguaje de programación de propósito general basado en el lenguaje de programación C. Soporta la idealización de datos y la programación orientada a objetos. El lenguaje fue creado por Bjarne Stroustrup (AT&T Bell Laboratories) y documentado en varios libros suyos. Se trata de un lenguaje mixto que ha adoptado todas las características de la programación orientada a objetos, que no dañan la efectividad de C mejorando esencialmente las capacidades de C. Este hecho dota a C++ de una potencia, eficacia y flexibilidad que lo convierten en un patrón dentro de los lenguajes de programación orientados a objetos.

Una de las primeras cosas que programe fue este programa en el ramo de Programación:




#include   /*necesario para utilizar printf*/

main()
{
printf ("Hola Mundo\n") ;
}
Lo cual imprime solo "Hola Mundo"



Estefanía González C

¿Qué es un lenguaje de programación?
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente.
Todo lenguaje de programación tiene sus propias palabras con sus propios significados dependiendo del lenguaje.
Algunos lenguajes de programación: C, C++, C#, Java, JavaScript, PHP, pascal, FORTRAN, Visual Basic entre otros.
En este caso la investigación será focalizada en un lenguaje de programación específico, el “C”.

Un poco de historia sobre Lenguaje C…

C es un lenguaje de programación creado en el año 1969 por un grupo de programación en los laboratorios Bell como evolución del lenguaje B y es usado también en la implementación de sistemas operativos tal como el Unix incluso llegando a ser el lenguaje con el cual se ha programado Windows el sistema operativo mas usado en el mundo.

Conociendo su terminología

C utiliza ciertos nombres para designar funciones, dichos nombres se conocen como palabras reservadas y al interior del lenguaje existen 48 de ellas:

asni continue float new signed try
auto default for operator sizeof typedef
break delete friend private static union
case do goto protected struct unsigned
catch double if public switch virtual
char else inline register template void
class enum int return this volatile
const extern long short throw while

Existen muchos usos que uno puede aplicar en este lenguaje como por ejemplo la declaración de variables de cualquier tipo ya sean enteros (int) o caracteres (char), etc.

Aparte de estas palabras también existen palabras que nos permiten realizar mas acciones aun como es el caso del printf (muestra datos en la pantalla) o el scanf(lee dato escrito en pantalla).



Que mejor manera de explicar lo que puede hacer este programa que con un simple programa.

Ejemplo

Programa que suma 2 números enteros ingresados por el usuario

#include
#include

int A=0; DECLARA LA VARIABLE A
int B=0; DECLARA LA VARIABLE B
int resultado=0; DECLARA LA VARIABLE resultado

int main() PROGRAMA PRINCIPAL
{
printf("Ingrese el primer numero entero de la suma: ");
scanf ("%i",&A); LEE PRIMER NUMERO DE LA SUMA
printf("\nIngrese el segundo numero entero de la suma: ");
scanf ("%i",&B); LEE SEGUNDO NUMERO DE LA SUMA
resultado=A+B; REALIZA LA SUMA Y EL RESULTADO LO GUARDA EN resultado
printf("\nEl resultado de la suma es %i\n",resultado); MUESTRA RESULTADO
system("PAUSE");
return 0;
}


Rene Bravo


Lenguaje de programación C
C es un lenguaje de programación relativamente minimalista. Uno de los objetivos de diseño de este lenguaje fue que sólo fueran necesarias unas pocas instrucciones en
lenguaje máquina para traducir cada elemento del lenguaje, sin que hiciera falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes.
En parte a causa de ser de relativamente bajo nivel y de tener un conjunto de características modesto, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas (seguramente más que cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portable puede compilarse en muchos computadores.
C se desarrolló originalmente (conjuntamente con el sistema operativo
Unix, con el que ha estado asociado mucho tiempo) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programación de sistemas, para la que se diseñó originalmente.
C tiene las siguientes características de importancia:
Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de ficheros, proporcionadas por
bibliotecas.
Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado no llevado al extremo (permitiendo ciertas licencias rupturistas).
Un sistema de tipos que impide operaciones sin sentido.
Usa un lenguaje de
preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples ficheros de código fuente.
Acceso a memoria de bajo nivel mediante el uso de
punteros.
Un conjunto reducido de
palabras clave.
Los
parámetros se pasan por valor. El paso por referencia se puede simular pasando explícitamente el valor de los punteros.
Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de
encapsulado y polimorfismo.
Tipos de datos agregados (struct) que permiten que datos relacionados se combinen y se manipulen como un todo.
Aunque la lista de las características útiles de las que carece C es larga, este factor ha sido importante para su aceptación, porque escribir rápidamente nuevos
compiladores para nuevas plataformas, mantiene lo que realmente hace el programa bajo el control directo del programador, y permite implementar la solución más natural para cada plataforma. Ésta es la causa de que a menudo C sea más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los microprocesadores modernos han reducido gradualmente esta diferencia.
En algunos casos, una característica inexistente puede aproximarse. Por ejemplo, la implementación original de C++ consistía en un preprocesador que traducía código fuente C++ a C. La mayoría de las funciones orientadas a objetos incluyen un puntero especial, que normalmente recibe el nombre "this", que se refiere al objeto al que pertenece la función. Mediante el paso de este puntero como un argumento de función, esta funcionalidad puede desempeñarse en C. Por ejemplo, en C++ se puede escribir.

Denisse Cadenas

Lenguajes de Programación.

Los lenguajes de programación nacieron por la necesidad de abstracción del lenguaje básico propio de los procesadores. Estos se clasifican, entre otros, por el nivel de abstracción que ellos poseen. En definitiva, mientras más alto sea el nivel de abstracción, vale decir, mientras más se acerque a nuestro lenguaje natural, de más alto nivel es el lenguaje de programación.
Existen dos tipos de traducciones: la compilación y la interpretación.

Compilador: Es un programa que recibe el archivo de texto con las correspondientes instrucciones en algún lenguaje de programación. Revisa si lo escrito obedece a las reglas del lenguaje. Si hubo un error lo señala, sino, traduce cada instrucción a las correspondientes instrucciones en lenguaje de máquina, generando un nuevo archivo. Normalmente el archivo generado posee el mismo nombre que el original, pero su extensión es “.exe”. En forma cotidiana al archivo original se le llama: “archivo fuente”, “código fuente”, “programa fuente”; y al resultado de la compilación: “ejecutable”, “archivo objeto”, “compilado”, “código objeto”.
Intérprete: También es un software que traduce cada instrucción del lenguaje original a lenguaje de máquina y la ejecuta, entregando inmediatamente el resultado de la instrucción. No genera archivo alguno con tal traducción.

Existen diferentes lenguajes de programación, en términos del enfoque para definir sus instrucciones, y el tipo de problema sobre el que es mejor aplicarlo. Sin embargo, se pueden distinguir en la mayoría de ellos los siguientes elementos:

§ Funciones: Cada lenguaje de programación permite encapsular conjunto de instrucciones en bloques, cuya tarea está definida, y para lo que recibe datos de entrada (parámetros de entrada) y entrega una salida. Normalmente las funciones se manejan con un nombre (identificador).
§ Variables: Datos cuyos valores pueden cambiar en la medida que se ejecutan las instrucciones de un programa. Se les reconoce por un nombre (identificador) y poseen un valor.
§ Constantes: Datos cuyos valores no cambian durante la ejecución de un programa. Se les reconoce por un nombre (identificador).
§ Identificadores: Son los nombres de los objetos de un programa (constantes, variables, funciones). Definiendo identificadores es posible nombrar las celdas de memoria donde están almacenadas, en lugar de trabajar con la dirección de memoria (recuerda que son números hexadecimales).
§ Palabras Reservadas: palabras o secuencias de caracteres propias de cada lenguaje, por lo que el programador no puede usarlas como identificadores en su programa.
§ Estructura de Control: define la forma de cada lenguaje en que se ejecutarán las instrucciones. La forma normal es una instrucción y luego la de abajo. Sin embargo, los lenguajes de programación permiten trabajar con:

- Instrucciones de Bifurcación: En base a un análisis lógico esta instrucción permite decidir entre dos posibles caminos. La instrucción de bifurcación puede ser: “if – then – else”, “if – else”.
- Instrucciones de Repetición: Estas instrucciones permiten que un conjunto de una o más instrucciones se repitan: a) una cierta cantidad de veces, b) hasta que tal condición sea verdadera, ó c) mientras tal condición sea verdadera. Existe una gran variedad de instrucciones de repetición, según el lenguaje: “while – ”, “while – do”, “do – while – ”, “for”, “for – to – until”, “repeat”.

- Llamadas a otras Funciones (obviamente escritas en el mismo lenguaje): Normalmente, los programas se entienden como conjuntos de instrucciones. Sin embargo, se subentiende que ellas están organizadas en una o más funciones. Si es el caso de más de una función, cada lenguaje define la forma de “usar cada función”. Este concepto es similar a la composición de funciones en matemáticas. En general, para “llamar a otra función” (y así ocupar el resultado que de ella entrega), se escribe su nombre y se le pasa los operandos (o “parámetros de entrada”) que necesita para funcionar.

§ Operadores: Los operadores básicos que posee cualquier lenguaje de programación son los siguientes:

- Matemáticos: +, -, /, *

- Lógicos: “y” (“and”, “&&”, “&”); “o inclusivo” (“or”, “”); “no” (“not”, “!”).

- Relacionales
§: “<”, “>”, “<=”, “>=”, “igual?” (“=”, “==”), “distinto?” (“<>”, “!=”).
Asignación: este operador permite copiar un valor en una variable. Existe la convención que a la izquierda se escribe la variable destino y después del operador de asignación, el valor que se asignará. (“=”, “:=”)

Monica Valenzuela

Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 1990. 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.
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 como punteros. JavaScript, un lenguaje interpretado, comparte un nombre similar y una sintaxis similar, pero no está directamente relacionado con Java.
Sun Microsystems proporciona una implementación
GNU General Public License de un compilador Java y una máquina virtual Java, conforme a las especificaciones del Java Community Process, aunque la biblioteca de clases que se requiere para ejecutar los programas Java no es software libre.
Orientado a Objetos

La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que use estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software.

El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos. Otra de las grandes promesas de la programación orientada a objetos es la creación de entidades más genéricas (objetos) que permitan la reutilización del software entre proyectos, una de las premisas fundamentales de la Ingeniería del Software. Un objeto genérico “cliente”, por ejemplo, debería en teoría tener el mismo conjunto de comportamiento en diferentes proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele suceder en las grandes organizaciones. En este sentido, los objetos podrían verse como piezas reutilizables que pueden emplearse en múltiples proyectos distintos, posibilitando así a la industria del software a construir proyectos de envergadura empleando componentes ya existentes y de comprobada calidad; conduciendo esto finalmente a una reducción drástica del tiempo de desarrollo. Podemos usar como ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y su “comportamiento” (soldar dos piezas, etc.), el objeto “aluminio” puede ser reutilizado en el campo de la construcción, del automóvil, de la aviación, etc.

La reutilización del software ha experimentado resultados dispares, encontrando dos dificultades principales: el diseño de objetos realmente genéricos es pobremente comprendido, y falta una metodología para la amplia comunicación de oportunidades de reutilización. Algunas comunidades de “código abierto” (open source) quieren ayudar en este problema dando medios a los desarrolladores para diseminar la información sobre el uso y versatilidad de objetos reutilizables y librerías de objetos.

Dragomir Cvitanovic}

Visual Basic

Visual Basic es un
lenguaje de programación desarrollado por Alan Cooper para Microsoft. El lenguaje de programación es un dialecto de BASIC, con importantes añadidos. Su primera versión fue presentada en 1991 con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitara la creación de interfaces gráficas y en cierta medida también la programación misma. Visual Basic fue discontinuado por Microsoft hace ya varios años. Muchos programadores estan migrando a Real Basic o hacia Delphi que es un entorno de desarrollo mas avanzado y mucho mas actual (ultima edicion en 2007 y con planes anunciados hasta el 2009). Microsoft propone abandonar el desarrollo en Win32 y pasar al Visual Basic.NET que presenta serias incompatibilidades con el codigo Visual Basic existente.

Características generales

Es un lenguaje de fácil aprendizaje pensado tanto para
programadores principiantes como expertos, guiado por eventos, y centrado en un motor de formularios que facilita el rápido desarrollo de aplicaciones gráficas. Su sintaxis, derivada del antiguo BASIC, ha sido ampliada con el tiempo al agregarse las características típicas de los lenguajes estructurados modernos. Se ha agregado una implementación limitada de la programación orientada a objetos (los propios formularios y controles son objetos), aunque sí admite el polimorfismo mediante el uso de los Interfaces, no admite la herencia. No requiere de manejo de punteros y posee un manejo muy sencillo de cadenas de caracteres. Posee varias bibliotecas para manejo de bases de datos, pudiendo conectar con cualquier base de datos a través de ODBC (Informix, DBase, Access, MySQL, SQL Server, PostgreSQL ,etc) a través de ADO.
Es utilizado principalmente para aplicaciones de gestión de empresas, debido a la rapidez con la que puede hacerse un programa que utilice una base de datos sencilla, además de la abundancia de programadores en este lenguaje.
El compilador de Microsoft genera ejecutables que requieren una
DLL para que funcionen, en algunos casos llamada MSVBVMxy.DLL (acrónimo de "MicroSoft Visual Basic Virtual Machine x.y", siendo x.y la versión) y en otros VBRUNXXX.DLL ("Visual Basic Runtime X.XX"), que provee todas las funciones implementadas en el lenguaje. Además existen un gran número de bibliotecas (DLL) que facilitan el acceso a muchas funciones del sistema operativo y la integración con otras aplicaciones. Sin embargo esto sólo es una limitación en sistemas obsoletos, ya que las bibliotecas necesarias para ejecutar programas en Visual Basic vienen de serie en todas las versiones de Windows desde Windows 2000.

Ventajas

La facilidad del lenguaje permite crear aplicaciones para Windows en muy poco tiempo. En otras palabras, permite un desarrollo eficaz y menor inversión en tiempo que con otros lenguajes.
Permite generar librerías dinámicas (DLL) ActiveX de forma nativa y Win32 (no ActiveX, sin interfaz COM) mediante una reconfiguración de su enlazador en el proceso de compilación.
Permite la utilización de formularios (Forms) tanto a partir de recursos (como en otros lenguajes) como utilizando un IDE para diseñarlos.
Posibilidad de desarrollar y ejecutar aplicaciones de Visual Basic 6.0 en
Windows Vista sin realizar cambios en la mayoria de los casos pero no se logra aprovechar al máximo las caracteristicas de este sistema como permite hacerlo Visual Basic 2005 o el proximo Visual Basic 9 de Visual Studio Orcas (Noviembre 2007).
Inconvenientes
Es software propietario por parte de Microsoft, por tanto nadie que no sea del equipo de desarrollo de esta compañía decide la evolución del lenguaje.
En Visual Basic 6.0 y anteriores sólo existe un compilador e IDE, llamado igual que el lenguaje.
No existe forma alguna de exportar el código a otras plataformas fuera de Windows.
Los ejecutables generados son relativamente lentos en Visual Basic 6.0 y anteriores al ser codigo pseudo-interpretado.
Por defecto permite la programación sin declaración de variables. (que puede ser sencillamente corregida escribiendo la frase Option Explicit en el encabezado de cada formulario, en cuyo caso será menester declarar todas las variables a utilizar, lo que a la postre genera código más puro).
Su sintaxis no es
case sensitive (no distinge entre minusculas y mayúsculas como C++ por ejemplo)
NO permite programación a bajo nivel ni incrustrar secciones de código en
ASM.
Sólo permite el uso de funciones de librerías dinámicas (DLL) stdcall.
Fuerte dependencia de librerías y componentes en las versiones 6.0 y anteriores, lo que dificultaba la distribución de los desarrollos entre maquinas.
Algunas funciones están indocumentadas.
La escasa implementación de POO en Visual Basic 6.0 y anteriores no permite sacar el máximo provecho de este modelo de programación.
NO soporta tratamiento de procesos como parte del lenguaje.
El
manejo de errores que tiene mediante la orden on error no sigue los patrones estructurados.
NO incluye operadores a nivel de bits.
NO permite el manejo de memoria dinámica, punteros, etc. como parte del lenguaje.
NO avisa de ciertos errores o advertencias (se puede configurar el compilador para generar ejecutables sin los controladores de desbordamiento de enteros o las comprobaciones de límites en matrices entre otros, dejando así más de la mano del programador la tarea de controlar dichos errores)
El tratamiento de mensajes de Windows es básico e indirecto.
La gran gama de controles incorporados son, sin embargo en algunos casos, muy generales, lo que lleva a tener que reprogramar nuevos controles para una necesidad concreta de la aplicación. Esto cambia radicalmente en Visual Basic .NET donde es posible reprogramar y mejorar o reutilizar los controles existentes.
Los controles personalizados no mejoran la potencia de la API de Windows, y en determinados c

Ventajas
La facilidad del lenguaje permite crear aplicaciones para Windows en muy poco tiempo. En otras palabras, permite un desarrollo eficaz y menor inversión en tiempo que con otros lenguajes.
Permite generar librerías dinámicas (DLL) ActiveX de forma nativa y Win32 (no ActiveX, sin interfaz COM) mediante una reconfiguración de su enlazador en el proceso de compilación.
Permite la utilización de formularios (Forms) tanto a partir de recursos (como en otros lenguajes) como utilizando un IDE para diseñarlos.
Posibilidad de desarrollar y ejecutar aplicaciones de Visual Basic 6.0 en
Windows Vista sin realizar cambios en la mayoria de los casos pero no se logra aprovechar al máximo las caracteristicas de este sistema como permite hacerlo Visual Basic 2005 o el proximo Visual Basic 9 de Visual Studio Orcas (Noviembre 2007).
Inconvenientes
Es software propietario por parte de Microsoft, por tanto nadie que no sea del equipo de desarrollo de esta compañía decide la evolución del lenguaje.
En Visual Basic 6.0 y anteriores sólo existe un compilador e IDE, llamado igual que el lenguaje.
No existe forma alguna de exportar el código a otras plataformas fuera de Windows.
Los ejecutables generados son relativamente lentos en Visual Basic 6.0 y anteriores al ser codigo pseudo-interpretado.
Por defecto permite la programación sin declaración de variables. (que puede ser sencillamente corregida escribiendo la frase Option Explicit en el encabezado de cada formulario, en cuyo caso será menester declarar todas las variables a utilizar, lo que a la postre genera código más puro).
Su sintaxis no es
case sensitive (no distinge entre minusculas y mayúsculas como C++ por ejemplo)
NO permite programación a bajo nivel ni incrustrar secciones de código en
ASM.
Sólo permite el uso de funciones de librerías dinámicas (DLL) stdcall.
Fuerte dependencia de librerías y componentes en las versiones 6.0 y anteriores, lo que dificultaba la distribución de los desarrollos entre maquinas.
Algunas funciones están indocumentadas.
La escasa implementación de POO en Visual Basic 6.0 y anteriores no permite sacar el máximo provecho de este modelo de programación.
NO soporta tratamiento de procesos como parte del lenguaje.
El
manejo de errores que tiene mediante la orden on error no sigue los patrones estructurados.
NO incluye operadores a nivel de bits.
NO permite el manejo de memoria dinámica, punteros, etc. como parte del lenguaje.
NO avisa de ciertos errores o advertencias (se puede configurar el compilador para generar ejecutables sin los controladores de desbordamiento de enteros o las comprobaciones de límites en matrices entre otros, dejando así más de la mano del programador la tarea de controlar dichos errores)
El tratamiento de mensajes de Windows es básico e indirecto.
La gran gama de controles incorporados son, sin embargo en algunos casos, muy generales, lo que lleva a tener que reprogramar nuevos controles para una necesidad concreta de la aplicación. Esto cambia radicalmente en Visual Basic .NET donde es posible reprogramar y mejorar o reutilizar los controles existentes.
Los controles personalizados no mejoran la potencia de la API de Windows, y en determinados casos acudir a ésta será el único modo de conseguir el control personalizado deseado.

Rosita Araya

Java

Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 1990. 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.
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 como punteros. JavaScript, un lenguaje interpretado, comparte un nombre similar y una sintaxis similar, pero no está directamente relacionado con Java.
Sun Microsystems proporciona una implementación
GNU General Public License de un compilador Java y una máquina virtual Java, conforme a las especificaciones del Java Community Process, aunque la biblioteca de clases que se requiere para ejecutar los programas Java no es software libre.
Java comenzó como un proyecto llamado "Green" y su objetivo inicial era crear un lenguaje que fuera capáz de ejecutarse en electrodomésticos que tuvieran microprocesadores pero se dieron cuenta que ese tipo de tecnología estaba aun muy lejos de poder existir. El proyecto dio como resultado un lenguaje muy parecido a C/C++ al cual le llamaron "Oak" (en referencia al roble que se encontraba en el exterior de las oficinas de Sun Microsystems) por
James Gosling en junio de 1991 para usarse en un proyecto de receptor digital externo. []Pero descubrieron que ya existía un lenguaje con este nombre, luego alguien sugirió el nombre de Java (se cree que es por un tipo de café y otros piensan que son siglas) y fue ese nombre el que quedó. La primera implementación pública fue Java 1.0 en 1995. Prometía "Escribir una vez, ejecutar en cualquier parte, proporcionando ningún coste extra en el tiempo de ejecución en las plataformas populares. Era bastante seguro y su seguridad era configurable, permitiendo restringir el acceso a archivos o a una red. Los principales navegadores web pronto incorporaron la capacidad de ejecutar "applets" Java seguros dentro de páginas web. Java adquirió popularidad rápidamente. Con la llegada de "Java 2", las nuevas versiones tuvieron múltiples configuraciones pensadas para diferentes tipos de plataformas. Por ejemplo, J2EE era para aplicaciones de empresa y la versión reducida J2ME era para aplicaciones para móviles. J2SE era la designación para la Edición Estándar. En 2006, las nuevas versiones "J2" fueron renombradas a Java EE, Java ME y Java SE, respectivamente. En 1997, Sun se dirigió al cuerpo de estándares ISO/IEC JTC1 y más tarde a Ecma International para formalizar Java, pero pronto se retiró del proceso.] Java permanece como un estándar de facto propietario que está controlado a través del Java Community Process. Sun hace disponibles la mayoría de sus implementaciones Java sin cargo alguno, generando los ingresos con productos especializados como el Java Enterprise System. Sun distingue entre su Software Development Kit (SDK) y su Java Runtime Environment (JRE) que es un subconjunto del SDK, siendo la principal distinción que en el JRE no está presente el compilador.



No hay comentarios: