Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
Lenguaje De Programación Java

Lenguaje de programación Java

Java es una plataforma virtual de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales ( "Diferentes plataformas"). La plataforma Java consta de las siguientes partes:
- El lenguaje de programación, mismo.
- La máquina virtual de Java o JRE, que permite la portabilidad en ejecución.
- El API Java, una biblioteca estándar para el lenguaje. Originalmente llamado OAK por los ingenieros de Sun Microsystems, Java fue diseñado para correr en computadoras incrustadas. Sin embargo, en 1995, dada la atención que estaba produciendo la Web, Sun Microsystems la distribuyó para sistemas operativos tales como Microsoft Windows. El lenguaje mismo se inspira en la sintaxis de C++, pero su funcionamiento es más similar al de Smalltalk que a éste. Incorpora sincronización y manejo de tareas en el lenguaje mismo (similar a Ada) e incorpora interfaces como un mecanismo alternativo a la herencia múltiple de C++. A fines del siglo XX, Java llegó a ser el lenguaje de mayor acogida para programas de servidor. Utilizando una tecnología llamada JSP (similar a otras tecnologías del lado del servidor como ASP de Microsoft o PHP), se hizó muy fácil escribir páginas dinámicas para sitios de Internet. Sumado a JSP la tecnología de JavaBeans, permitía adaptar al mundo web el patrón MVC (modelo-vista-controlador) que ya se había aplicado con éxito a interfaces gráficas. Java llegó a ser extremadamente popular cuando Sun Microsystems introdujo la especificación J2EE (Java 2 Enterprise Edition). Este modelo permite, entre otras cosas, lograr una separación entre la presentación de los datos al usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) es una tecnología de objetos distribuidos que pudo lograr el sueño de muchas empresas como Microsoft e IBM de crear una plataforma de objetos distribuidos con un monitor de transacciones. Con este nuevo estándar, empresas como BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron gran acogida en el mercado. Además de programas del servidor, Java permite escribir programas de interfaz gráfica o textual. También se pueden correr programas de manera incorporada o incrustada en los navegadores web de Internet en forma de Java applets, aunque no llegó a popularizarse como se esperaba en un principio. Los programas en Java generalmente son compilados a un lenguaje intermedio llamado bytecode, que luego son interpretados por una máquina virtual (JVM). Esta última sirve como una plataforma de abstracción entre la máquina y el lenguaje permitiendo que se pueda "escribir el programa una vez, y correrlo en cualquier lado". También existen compiladores nativos de Java, tanto software libre como no libre. El compilador GCC de GNU compila Java a código de máquina con algunas limitaciones al año 2002. Con la evolución de las diferentes versiones, no sólo se han producido cambios en el lenguaje, sino que se han producido cambios mucho más importantes en sus bibliotecas asociadas, que han pasado de unos pocos cientos en Java 1.0, a más de tres mil en Java 5.0. En particular, se han añadido APIs completamente nuevas, tales como Swing y Java2D.

Ejemplo de programa en Java

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HolaMundo extends JFrame 

Véase también


- Javapedia

Enlaces externos


- [http://certificadojava.blogspot.com Web sobre Java y certificaciones Java de Sun]
- [http://java.sun.com/ Java Technology]
- [http://www.techbooksforfree.com/java.shtml Libros de Java], en inglés

Principales IDEs (Entornos de Desarrollo Integrados)


- Eclipse ([http://eclipse.org/ Eclipse.org]) - Software libre
- [http://www.netbeans.org/ netBeans] - Software libre
- [http://www.bluej.org/ BlueJ] - Software libre
- [http://www.jcreator.com/ jCreator] - Software no libre, versión gratuita disponible.
- [http://wwws.sun.com/software/sundev/jde/ Sun Java Studio] - Software no libre, extensión de netBeans.
- [http://www.borland.com/jbuilder/ JBuilder] - Software no libre
- [http://www.jetbrains.com/idea/ IntelliJ IDEA] - Software no libre
- [http://www.oracle.com/tools/jdev_home.html JDeveloper] - Software no libre Java ja:Java言語 ko:자바 프로그래밍 언어 th:ภาษาจาวา

Software

Software -también conocido como programática o equipamiento lógico- es el conjunto de programas que puede ejecutar el hardware para la realización de las tareas de computación a las que se destina. Se trata del conjunto de instrucciones que permite la utilización del ordenador.

Breve reseña histórica

El término software fue usado por primera vez en 1957 por John W. Turkey, ingeniero en ciencias de la computación. Surge por analogía con la palabra hardware, el sustrato físico donde se ejecuta el software. Hoy día, el software está presente en casi todo lo que nos rodea, aunque no siempre de manera perceptible.

Definición

Probablemente la definición más formal de software es la atribuida a la IEEE en su estándar 729: la suma total de los programas de cómputo, procedimientos, reglas [,] documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo (Ver: IEEE Std 729-1993, IEEE Software Engineering Standard 729-1993: Glossary of Software Engineering Terminology. IEEE Computer Society Press, 1993). Bajo esta definición el concepto de software va más allá de los programas de cómputo en sus distintas formas: código fuente, binario o código ejecutable, además de su documentación.

Tipología

El software se clasifica en dos categorías:
- Software de base o de sistema. Consistente en todo aquel software cuyo propósito es facilitar la ejecución de otro software. Entran en esta categoría:
  - Sistemas operativos.
  - Compiladores.
  - Sistemas gestores de bases de datos.
  - Etc.
- Software de aplicación. Consistente en aquel software que automatiza un sistema de información, es decir, con relevancia para un fin concreto. Entran en esta categoría:
  - Procesadores de texto.
  - Hojas de cálculo.
  - Etc.

Formas

El software adopta varias formas en distintos momentos de su ciclo de vida:
- Código fuente: escrito por programadores. Contiene el conjunto de instrucciones, inteligibles por el ser humano, destinadas a la computadora.
- Código objeto: resultado del uso de un compilador sobre el código fuente. Consiste en una traducción de éste último. El código objeto no es directamente inteligible por el ser humano, pero tampoco es directamente entendible por la computadora. Se trata de una representación intermedia del código fuente.
- Código ejecutable: resultado de enlazar uno o varios fragmentos de código objeto. Constituye un archivo binario con un formato tal que el sistema operativo es capaz de cargarlo en la memoria de un ordenador, y proceder a su ejecución. El código ejecutable es directamente inteligible por la computadora.

El proceso Software

El proceso de creación de software es materia de la Ingeniería del software. Es un proceso complejo que involucra diversas tareas de gestión y desarrollo.

Véase también


- Programación
- Aplicaciones
- Software colaborativo
- Software Libre

Enlaces externos


- [http://www.care-t.com/index.html OlivaNova Model Execution System, un programa que programa]. Categoría:Software ja:ソフトウェア ko:컴퓨터 소프트웨어 simple:Software th:ซอฟต์แวร์

Lenguaje de programación

Un lenguaje de programación es una técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen un programa informático. Aunque, muchas veces se usa lenguaje de programación y lenguaje informático como fuesen sinónimos, no tiene porque ser así, ya los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. Un lenguaje de programación permite a un programador especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y, qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. Un programa escrito en un lenguaje de programación necesita pasar por un proceso de compilación, es decir, ser traducido al lenguaje de máquina, o ser interpretado para que pueda ser ejecutado por el ordenador.

Véase también


- Programación
- Paradigmas de programación

Enlaces externos


- [http://www.levenez.com/lang/ Árbol cronológico de los lenguajes de programación] (en inglés)
- [http://delta.cs.cinvestav.mx/~gmorales/ta/ta.html Principios de Autómatas Finitos]
- [http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm Lista de lenguajes de programación] (hay unos 2500 pero están en inglés) Categoría:Lenguajes de programación ja:プログラミング言語

JRE

JRE o Java Runtime Environment proporciona únicamente un subconjunto del lenguaje de programación Java sólo para ejecución. El usuario final normalmente utiliza JRE en paquetes y añadidos. El JRE es básicamente la máquina virtual de Java y las librerías básicas del J2SE sin las herramientas de desarrollo. Un usuario sólo necesita el JRE (Java Runtime Enviroment -> Entorno de Ejecución Java ) para ejecutar las aplicaciones desarrolladas en lenguaje Java, mientras que para desarrollar nuevas aplicaciones en dicho lenguaje es necesario un entorno de desarrollo, denominado JSDK, que además del JRE (mínimo imprescindible) incluye, entre otros, un compilador para Java. Categoría:Programación

API Java

El API Java es una interface de programación de aplicaciones o API provista por los creadores del lenguaje Java, y que da a los programadores un ambiente de desarrollo completo así como una infraestructura. Como el lenguaje Java es un lenguaje orientado a objetos, la API de Java provee de un conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un programa. La API Java está organizada en paquetes, donde cada paquete contiene un conjunto de clases relacionadas semánticamente. Categoría:Bibliotecas y APIs ja:Java 2 Platform, Standard Edition

Ingeniero

puede ser:
- Persona que se dedica a la ingeniería.
- Militar perteneciente al Arma de Ingenieros (zapador).

Ingeniero de Vuelo

Llamado también Segundo Oficial en los medios aeronáuticos. Desde la invención de los aviones grandes,digamos de más de dos motores, tanto en aviones de hélice como en los Jet fué necesaria la función del Ingeniero de Vuelo como un tercer tripulante aéreo, además del piloto y copiloto en la operación de vuelo de un avión. El Ingeniero de Vuelo es quien tiene que ver con la operación de los sistemas, motores, cálculos de performances, control de consumo de combustible, operatibilidad de equipos de radioayudas para el vuelo, chequeo del avión antes del vuelo, conocer la Aeronavegabilidad del aeroplano y tener conocimiento de todo lo que se refiera al Mantenimiento que se le haya efectuado. El Ingeniero de Vuelo Asiste a los pilotos en todo lo referente a la performance del avión en todas las condiciones de vuelo y en tierra, durante las emergencias es el elemento que, en union de uno de los pilotos, efectua una serie de chequeos para consolidar el problema. Es el tercer tripulante técnico muy importante para la actividad del vuelo, dada la complejidad de la tecnología Aeronáutica. Los aviones con motores a reacción de segunda generación, llevan abordo al Ingeniero de Vuelo. En los aviones de última generación AirBus, Boeing ya no llevan a éste valioso tripulante, porque la tecnología de vanguardia en aviación lo ha sustituido con el adelanto de las Computadoras y otros elementos electrónicos. th:วิศวกร

Sun Microsystems

Sun Microsystems es una empresa informática del Silicon Valley, fabricante de semiconductores y software. Algunos de sus productos han sido servidores y estaciones de trabajo para procesadores SPARC, los sistemas operativos SunOS y Solaris, el NFS, la plataforma de programación Java y conjuntamente con AT&T, la estandarización del UNIX System V Release 4. Además de otros proyectos quizás menos rentables como un nuevo entorno gráfico, NeWS o la interfaz gráfica de usuario OpenLook.

Java

Java es una plataforma, desarrollado al comienzo de los años 90 con el objetivo concreto de permitir ejecutar programas sin tener relativamente en cuenta el hardware final, sin volver a reescribir todo el código del programa. Consiste en tres grandes bloques, el lenguaje Java, una máquina virtual y un programa de aplicación de interfaz o API. El lenguaje Java es un lenguaje de programación orientado a objetos. Desde su introducción a finales de 1995, es uno de los lenguajes más conocidos. Para lograr ejecutar los programas sobre una unidad (virtual), se compilan a código binario como bytecode para cualquier máquina virtual de Java. El API facilita un amplio conjunto de bibliotecas de rutinas. Java está soportado por una gran comunidad de desarrolladores que activamente trabajan en productos y servicios alrededor de Java, que al mismo tiempo contribuyen a la evolución de la plataforma mediante el Java Community Process, una organización estándar, abierta y basada en comunidades.

OpenOffice.org

Sun compró el programa StarOffice a la compañía germana StarDivision y la renombró como OpenOffice.org bajo las licencias GNU LGPL y la SISSL, colaborando de esta forma con el movimiento del software libre. Es similar a la suite de Microsoft Office y es multiplataforma. StarOffice continúa existiendo como un producto comercial de software propietario asentado en el desarrollo de OpenOffice.org. Sus ventajas son, el servicio o mantenimiento propio de Sun, ante un problema por ejemplo, además de incluir una abundante documentación, o una amplia variedad de fuentes y plantillas.

Enlaces externos


- [http://www.sun.com/ Sun.com], página oficial en inglés.
- [http://es.openoffice.org OpenOffice.org ], página oficial en Español. Categoría:Empresas de electrónica Categoría:Empresas de informática Categoría:Empresas de Estados Unidos ja:サン・マイクロシステムズ th:ซัน ไมโครซิสเต็มส์

Computadora

Una computadora es un sistema digital con tecnología microelectrónica capaz de procesar información a partir de un grupo de instrucciones denominado programa. La estructura básica de una computadora incluye microprocesador (CPU), memoria y dispositivos de entrada/salida (E/S), junto a los buses que permiten la comunicación entre ellos. La característica principal que la distingue de otros dispositivos similares, como una calculadora no programable, es que puede realizar tareas muy diversas cargando distintos programas en la memoria para que los ejecute el procesador.

Sistema operativo

Una computadora normalmente utiliza un programa informático especial, denominado sistema operativo, que ha sido diseñado, construido y probado para gestionar los recursos de la computadora: la memoria, los dispositivos de E/S, los dispositivos de almacenamiento (discos duros, unidades de DVD y CD), etcétera.

Evolución del término computadora

Una computadora es cualquier dispositivo usado para procesar información de acuerdo con un procedimiento bien definido. En un principio, la palabra era usada para describir a las personas que hacían cálculos aritméticos, con o sin ayuda mecánica, pero luego se trasladó a las propias máquinas. Dentro de la definición que acabamos de dar, entraría el uso de dispositivos mecánicos como la regla de cálculo, toda la gama de calculadoras mecánicas desde el ábaco hacia adelante, además de todas las computadoras electrónicas contemporáneas. Sin embargo, la definición anterior incluye muchos dispositivos de usos específicos que sólo pueden realizar una función o un número determinado de funciones. Si pensamos en las computadoras modernas, la característica más importante que los distingue de los aparatos anteriores es que tienen una programación adecuada. Con cualquier computadora se puede emular el funcionamiento de otra (únicamente limitado por la capacidad de almacenamiento de datos y las diferentes velocidades) y, de hecho, se cree que con las actuales se puede emular a cualquier computadora que se invente en el futuro (aunque sean mucho más lentos). Por lo tanto, en cierto sentido, esta capacidad crítica es una prueba muy útil, para identificar las computadoras de uso general de los aparatos destinados a usos específicos(como las macrocomputadoras). Esta característica de poderse emplear para un uso general se puede formalizar en una regla según la cual con una máquina de estas características se debe poder emular el funcionamiento de una máquina de Turing universal. Las máquinas que cumplan con esta definición son homologables a la máquina de Turing. Originariamente, el procesamiento de la información estaba relacionado de manera casi exclusiva con problemas aritméticos. máquina de Turing

Uso actual del término

Sin embargo, en los últimos 20 años aproximadamente muchos aparatos domésticos, sobre todo las consolas para videojuegos, a las que hay que añadir los teléfonos móviles, los vídeos, los asistentes personales digitales (PDA) y un sinfín de aparatos caseros, industriales, para coches y electrónicos, tienen circuitos homologables a la máquina de Turing (con la limitación de que la programación de estos aparatos está instalada en un chip de memoria ROM que hay que remplazar cada vez que queremos cambiar la programación). Esta especie de computadoras que se encuentran dentro de otras computadoras de uso general son conocidos como microcontroladores o computadores integrados. Por lo tanto, muchas personas han restringido la definición de computadora a aquellas máquinas cuyo propósito principal sea el procesamiento de información y que puedan adaptarse a una gran variedad de tareas, sin ninguna modificación física, excluyendo a aquellos dispositivos que forman parte de un sistema más grande como los teléfonos, microondas o aviones.

Tipos de computadoras

Tradicionalmente existen tres tipos de computadoras que cumplen con estos requisitos: las computadoras centrales, las minicomputadoras y las computadoras personales. Las minicomputadoras, como tales, ya no existen, habiendo sido reemplazadas por computadoras personales con programas especiales para servicio de correo; las mismas computadoras centrales tienen características propias de la computadora personal, como el estar basadas en microprocesadores. Para finalizar, hay que decir que mucha gente que no está familiarizada con otras formas de computadoras, usa el término para referirse exclusivamente a los computadoras personales.

Cómo funcionan las computadoras

Aunque las tecnologías empleadas en las computadoras digitales han cambiado mucho desde que aparecieron los primeros computadores en los años 40, la mayoría todavía utilizan la arquitectura von Neumann, propuesta a principios de los años 1940 por John von Neumann. La arquitectura von Neumann describe un computador con 4 secciones principales: la unidad lógica y aritmética (ALU), la unidad de control, la memoria, y los dispositivos de entrada y salida (E/S). Estas partes están interconectadas por un conjunto de cables denominados buses. En este sistema, la memoria es una secuencia de celdas de almacenamiento numeradas, donde cada una es un bit, o unidad de información. La instrucción es la información necesaria para realizar, lo que se desea, con la computadora. Las «celdas» contienen datos que se necesitan para llevar a cabo las instrucciones, con la computadora. En general, la memoria puede ser rescrita varios millones de veces; se parece más a una libreta que a una lápida. El tamaño de cada celda y el número de celdas varía mucho de computadora a computadora, y las tecnologías empleadas para la memoria han cambiado bastante; van desde los relés electromecánicos, tubos llenos de mercurio en los que se formaban los pulsos acústicos, matrices de imanes permanentes, transistores individuales a circuitos integrados con millones de celdas en un solo chip. Con los circuitos electrónicos se simula las operaciones lógicas y aritméticas, se pueden diseñar circuitos para que realicen cualquier forma de operación. La unidad lógica y aritmética, o ALU, es el dispositivo diseñado y construido para llevar a cabo las operaciones elementales como las operaciones aritméticas (suma, resta), operaciones lógicas (Y, O, NO), y operaciones de comparación. En esta unidad es en donde se hace todo el trabajo computacional. La unidad de control sigue la dirección de las posiciones en memoria que contienen la instrucción que la computadora va a realizar en ese momento; recupera la información poniéndola en la ALU para la operación que debe desarrollar. Transfiere luego el resultado a ubicaciones apropiadas en la memoria. Una vez que ocurre lo anterior, la unidad de control va a la siguiente instrucción (normalmente situada en la siguiente posición, a menos que la instrucción sea una instrucción de salto, informando a la computadora de que la próxima instrucción estará ubicada en otra posición de la memoria). Los dispositivos E/S sirven a la computadora para, obtener información del mundo exterior y devolver los resultados de dicha información. Hay una gama muy extensa de dispositivos E/S como los teclados, monitores y unidades de disco flexible o las cámaras web. Las instrucciones que acabamos de discutir, no son las ricas instrucciones del ser humano. Una computadora sólo se diseña con un número limitado de instrucciones bien definidas. Los tipos de instrucciones típicas realizadas por la mayoría de las computadoras son como estos ejemplos: "...copia los contenidos de la posición de memoria 123, y coloca la copia en la posición 456, añade los contenidos de la posición 666 a la 042, y coloca el resultado en la posición 013, y, si los contenidos de la posición 999 son 0, tu próxima instrucción está en la posición 345...". Las instrucciones dentro de la computadora se representan mediante números. Por ejemplo, el código para copiar puede ser 001. El conjunto de instrucciones que puede realizar una computadora se conoce como lenguaje de máquina o código máquina. En la práctica, no se escriben las instrucciones para las computadoras directamente en lenguaje de máquina, sino que se usa un lenguaje de programación de alto nivel que se traduce después al lenguaje de la máquina automáticamente, a través de programas especiales de traducción (intérpretes y compiladores). Algunos lenguajes de programación representan de manera muy directa el lenguaje de máquina, como los ensambladores (lenguajes de bajo nivel) y, por otra parte, los lenguajes como Prolog, se basan en principios abstractos muy alejados de los que hace la máquina en concreto (lenguajes de alto nivel). Las computadoras actuales colocan la ALU y la unidad de control dentro de un único circuito integrado conocido como Unidad central de procesamiento o CPU. Normalmente, la memoria de la computadora se sitúa en unos pocos circuitos integrados pequeños cerca de la CPU. La gran mayoría de la masa de la computadora está formada por sistemas auxiliares (por ejemplo, para traer electricidad) o dispositivos E/S. Algunas computadoras más grandes se diferencian del modelo anterior, en un aspecto importante, porque tienen varias CPU y unidades de control que trabajan al mismo tiempo. Además, algunas computadoras, usadas principalmente para la investigación, son muy diferentes del modelo anterior, pero no tienen muchas aplicaciones comerciales. Por lo tanto, el funcionamiento de una computadora es en principio bastante sencillo. La computadora trae las instrucciones y los datos de la memoria. Se ejecutan las instrucciones, se almacenan los datos y se va a por la siguiente instrucción. Este procedimiento se repite continuamente, hasta que se apaga la computadora. Los Programas de computadora (software) son simplemente largas listas de instrucciones que debe ejecutar la computadora, a veces con tablas de datos. Muchos programas de computadora contienen millones de instrucciones, y muchas de esas instrucciones se ejecutan rápidamente. Una computadora personal moderna (en el año 2003) puede ejecutar de 2000 a 3000 millones de instrucciones por segundo. Las capacidades extraordinarias que tienen las computadoras no se deben a su habilidad para ejecutar instrucciones complejas. Las computadoras ejecutan millones de instrucciones simples diseñadas por personas inteligentes llamados programadores. Los buenos programadores desarrollan grupos de instrucciones para hacer tareas comunes (por ejemplo, dibujar un punto en la pantalla) y luego ponen dichos grupos de instrucciones a disposición de otros programadores. En la actualidad, podemos tener la impresión de que las computadoras están ejecutando varios programas al mismo tiempo. Esto se conoce como poliactividad o multitarea, siendo más usado el segundo término. En realidad, la CPU ejecuta instrucciones de un programa y después tras un breve periodo de tiempo, cambian a un segundo programa y ejecuta algunas de sus instrucciones. Esto crea la ilusión de que se están ejecutando varios programas simultáneamente, repartiendo el tiempo de la CPU entre los programas. Esto es similar a la película que está formada por una sucesión rápida de fotogramas. El sistema operativo es el programa que controla el reparto del tiempo generalmente. El sistema operativo es una especie de caja de herramientas lleno de rutinas. Cada vez que alguna rutina de computadora se usa en muchos tipos diferentes de programas durante muchos años, los programadores llevarán dicha rutina al sistema operativo, al final. El sistema operativo sirve para decidir, por ejemplo, qué programas se ejecutan, y cuándo, y qué fuentes (memoria o dispositivos E/S) se utilizan. El sistema operativo tiene otras funciones que ofrecer a otros programas, como los códigos que sirven a los programadores, escribir programas para una máquina sin necesidad de conocer los detalles internos de todos los dispositivos electrónicos conectados. En la actualidad, pero aunque no con mucha cotidianeidad, se está empezando a incluir dentro del sistema operativo algunos programas muy usados debido a que es una manera económica de distribuirlos. No es extraño que un sistema operativo incluya navegadores de internet, procesadores de texto, programas de correo electrónico, interfaces de red, reproductores de películas y otros programas que antes se tenían que conseguir aparte.

Usos de las computadoras

Las primeras computadoras digitales, de gran tamaño y coste, se utilizaban principalmente para hacer cálculos científicos. ENIAC, una de las primeras computadoras, calculaba densidades de neutrón transversales para ver si explotaría la bomba de hidrógeno. El CSIR Mk I, el primer computador australiano, evaluó patrones de precipitaciones para un gran proyecto de generación hidroeléctrica. Los primeros visionarios vaticinaron que la programación permitiría jugar al ajedrez, ver películas y otros usos. La gente que trabajaba para los gobiernos y las grandes empresas también usaron las computadoras para automatizar muchas de las tareas de recolección y procesamiento de datos, que antes eran hechas por humanos; por ejemplo, mantener y actualizar la contabilidad y los inventarios. En el mundo académico, los científicos de todos los campos empezaron a utilizar las computadoras para hacer sus propios análisis. El descenso continuo de los precios de las computadoras permitió su uso por empresas cada vez más pequeñas. Las empresas, las organizaciones y los gobiernos empiezan a emplear un gran número de pequeñas computadoras para realizar tareas que antes eran hechas por computadores centrales grandes y costosos. La reunión de varias pequeñas computadoras en un solo lugar se llamaba torre de servidores. Con la invención del microprocesador en 1970, fue posible fabricar computadoras muy baratas. Las computadoras personales se hicieron famosas para llevar a cabo diferentes tareas como guardar libros, escribir e imprimir documentos. Calcular probabilidades y otras tareas matemáticas repetitivas con hojas de cálculo, comunicarse mediante correo electrónico e Internet. Sin embargo, la gran disponibilidad de computadoras y su fácil adaptación a las necesidades de cada persona, han hecho que se utilicen para varios propósitos. Al mismo tiempo, las pequeñas computadoras, casi siempre con una programación fija, empezaron a hacerse camino entre las aplicaciones del hogar, los coches, los aviones y la maquinaria industrial. Estos procesadores integrados controlaban el comportamiento de los aparatos más fácilmente, permitiendo el desarrollo de funciones de control más complejas como los sistemas de freno antibloqueo en los coches. A principios del siglo 21, la mayoría de los aparatos eléctricos, casi todos los tipos de transporte eléctrico y la mayoría de las líneas de producción de las fábricas funcionan con una computadora. La mayoría de los ingenieros piensa que esta tendencia va a continuar.

Etimología de las palabras ordenador y computadora

La denominación recomendada de forma general en español es la de computadora, anglicismo procedente de computer (no hay que olvidar que el origen de las computadoras actuales está en los Estados Unidos). En España está generalizado el localismo ordenador, galicismo derivado de ordinateur. En italiano, se emplea usa el término en inglés, il computer (el computador). En Suecia el nombre está relacionado con los datos dator. En China, a la computadora se le denomina 计算机 (cerebro eléctrico). En un principio, la palabra inglesa se utilizaba para designar a una persona que realizaba cálculos aritméticos con o sin ayuda mecánica. Podemos considerar las computadoras programables modernas como la evolución de sistemas antiguos de cálculo o de ordenación, como la máquina diferencial de Babbage o la máquina tabuladora de Hollerith. Historia del hardware de cómputo, o también informática.

Enlaces externos


- [http://www.ericdigests.org/2001-3/ninos.htm Computadoras y niños pequeños]

Véase también


- Arquitectura de computadoras
- Generaciones de computadoras
- Clases de computadoras Categoría:Informática Categoría:Hardware ja:コンピュータ ko:컴퓨터 ms:Komputer nb:Datamaskin simple:Computer th:คอมพิวเตอร์

1995

Siglo: Tabla anual siglo XX (Siglo XIX - Siglo XX - Siglo XXI) Década: Años 1960 - Años 1970 - Años 1980 - Años 1990 - Años 2000 - Años 2010 - Años 2020 Años: 1990 1991 1992 1993 1994 - 1995 - 1996 1997 1998 1999 2000 ----
Año Internacional de la Tolerancia de las Naciones Unidas
Decenio Internacional de las Poblaciones Indígenas del Mundo de la UNESCO

Acontecimientos


- 1 de enero - Austria, Finlandia y Suecia ingresan a la Unión Europea
- 1 de enero - La Organización Mundial de Comercio reemplaza al GATT.
- 25 de enero - Incidente del cohete noruego: un equívoco pone a Rusia en prealerta general para la guerra termonuclear.
- 14 de marzo - Se aprueban los Estatutos de Autonomía para las Ciudades Autónomas de Ceuta y Melilla (en España).
- 25 de marzo - Undécima Encíclica de Juan Pablo II, Evangelium Vitae.
- 19 de abril - Ataque terrorista en Oklahoma City, Estados Unidos, perpetrado por Timothy McVeigh, que deja como resultado 168 muertos.
- 13 de mayo - Se celebra en Dublín, Irlanda, la XL Edición de Eurovisión. El tema de Noruega, "Nocturne" de la banda Secret Garden, es el vencedor.
- 14 de mayo - Tenzin Gyatso, el Dalai Lama número 14, proclama a Gedhun Choekyi Nyima, de 6 años de edad, como la reencarnación 11ª del Panchen Lama.
- 25 de mayo - Ducodécima Encíclica de Juan Pablo II, Ut Unum Sint.
- 27 de junio - Atentado fallido contra Hosni Mubarak, presidente de Egipto en Addis Abeba por comandos de Sudán.
- 24 de agosto - El sistema operativo Windows 95 entra en el mercado.
- 30 de octubre - En la provincia canadiense de Quebec gana el NO a la independencia por 54.000 votos y un 50,4% de votos.

Nacimientos

Fallecimientos


- 7 de enero - Murray Rothbard, político y economista estadounidense.
- 18 de enero - Adolph Butenandt, bioquímico alemán, premio Nobel de Química en 1939.
- 4 de febrero - Patricia Highsmith, escritora estadounidense.
- 8 de marzo - Ingo Schwichtenberg,baterista del grupo Helloween
- 18 de abril - Arturo Frondizi, presidente de Argentina.
- 6 de mayo - Maria Pia de Saxe-Coburg-Gotha-Braganca, duchesse de Bragança.
- 16 de mayo - Lola Flores, artista española.
- 14 de junio - Roger Zelazny, escritor estadounidense.
- 23 de junio - Jonas Salk, fisiólogo estadounidense.
- 25 de julio - Osvaldo Pugliese, pianista, director de orquesta y compositor argentino.
- 18 de agosto - Julio Caro Baroja, antropólogo, historiador, lingüista y ensayista español.
- 21 de agosto - Subrahmanyan Chandrasekhar, físico, astrofísico y matemático indio. Premio Nobel de Física.
- 28 de agosto - Michael Ende, escritor alemán.
- 29 de octubre - Rubén Lena, poeta y compositor uruguayo.
- 31 de octubre - Sir Wallace Rowling, primer ministro de Nueva Zelanda.
- 4 de noviembre - Gilles Deleuze, filósofo francés.
- 18 de diciembre - Konrad Zuse, ingeniero alemán
- 20 de diciembre - Vicente Zabala, crítico taurino.

Arte y literatura


- 6 de enero - Ignacio Carrión Hernández obtiene el premio Nadal por su novela Cruzar el Danubio.

Ciencia y tecnología

Medicina


- Robert Gallo identifica inhibidores naturales en las células humanas capaces de ralentizar la progresión del VIH
- Joan Massaguer y Carlos Cordón-cardó descubren la oncoproteína p27
- Se identifica el gen de la ataxia telangiectasia
- Luis Rojas Marcos es nombrado presidente de la Corporación de salud y Hospitales de Nueva York

Deporte

Fútbol


- Balón de Oro: El nigeriano George Weah, del AC Milan, es designado mejor jugador del Mundo del año por la revista France Football. Este es el primer año en optar al premio cualquier jugador no nacido en Europa, bajo la condición de participar en una liga europea.

Automovilismo


- Michael Schumacher gana el campeonato mundial de Fórmula 1

Atletismo


- Campeonato del Mundo de Atletismo: Se celebra la quinta edición en Gotemburgo (Suecia).

Baloncesto


- Liga ACB: El FC Barcelona se proclama campeón.

Balonmano


- El FC Barcelona se proclama campeón de la Recopa de Europa de Balonmano.

Ciclismo


- Miguel Induráin gana su 5º Tour de Francia
- Laurent Jalabert gana la Vuelta ciclista a España
- Tony Rominger gana el Giro de Italia

Tenis


- Estados Unidos gana la Copa Davis

Cine


- Trainspotting

Música


- AC/DC - Ballbreaker
- Barricada - Los singles
- Duran Duran - "Thank You"
- Enya - The Memory of Trees
- Fear Factory - Demanufacture
- Iced Earth - Burnt Offerings
- Iron Maiden - The x Factor
- Morbid Angel - Domination
- Motörhead - Sacrifice
- Nirvana - "Unplugged in New York"
- Oasis - (What's the story) morning glory?
- Ol' Dirty Bastard - Return to the 36 Chambers: The Dirty Version
- Pedro Guerra - Golosinas
- Radiohead - The Bends
- Red Hot Chili Peppers - One Hot Minute
- Siniestro Total - Policlínico miserable
- Steve Vai - Alien Love Secrets
- The Smashing Pumpkins - Mellon Collie and The Infinite Sadness
- Van Halen - Balance

Premios Nobel


- Física - Martin L. Perl, Frederick Reines
- Química - Paul J Crutzen, Mario J Molina, F. Sherwood Rowland
- Medicina - Edward B. Lewis, Christiane Nüsslein-Volhard, Eric Wieschaus
- Literatura - Seamus Heaney
- Paz - Joseph Rotblat
- Economía - Robert Lucas Jr.

Premios Príncipe de Asturias


- Artes - Fernando Fernán Gómez
- Ciencias Sociales - Joaquim Veríssimo Serrão y Miquel Batllori y Munné
- Comunicación y Humanidades - Agencia EFE y José Luis López Aranguren
- Concordia - Hussein de Jordania
- Cooperación Internacional - Mário Soares
- Deportes - Hassiba Boulmerka
- Investigación Científica y Técnica - Manuel Losada Villasante y el Instituto Nacional de Biodiversidad de Costa Rica.
- Letras - Carlos Bousoño

Premio Cervantes


- Camilo José Cela

Videojuegos


- Super Mario World 2 de Nintendo para la consola Super Nintendo
- Romancing Saga 3 de Squaresoft para la consola Super Nintendo
- Seyken Dentesu 3 de Squaresoft para la consola Super Nintendo
- Chrono Trigger de Squaresoft para la consola Super Nintendo

Manga


- Tomos 40-42 de Dragon Ball

Anime


- Episodios 252-287 de Dragon Ball Categoría: Siglo XX als:1995 ja:1995年 ko:1995년 ms:1995 simple:1995 th:พ.ศ. 2538

Web

La World Wide Web (del inglés, Telaraña Mundial), la Web o WWW, es un sistema de hipertexto que funciona sobre Internet. Para ver la información se utiliza una aplicación llamada navegador web para extraer elementos de información (llamados "documentos" o "páginas web") de los servidores web (o "sitios") y mostrarlos en la pantalla del usuario. El usuario puede entonces seguir hiperenlaces que hay en la página a otros documentos o incluso enviar información al servidor para interactuar con él. A la acción de seguir hiperenlaces se le suele llamar "navegar" por la Web. No se debe confundir la Web con Internet, que es la red física mundial sobre la que circula la información. Del mismo modo que se puede distinguir entre "una internet" (una inter-red) y "la Internet", uno puede referirse a "una web" como un conjunto de sitios que proveen información por los medios descritos, y "la Web", que es la enorme e interconectada web disponible prácticamente en todos los sitios de Internet.

Evolución

La Web nació alrededor de 1989 a partir de un proyecto del CERN, en el que Tim Berners-Lee construyó el prototipo que dio lugar al núcleo de lo que hoy es la World Wide Web. La intención original era hacer más fácil el compartir textos de investigación entre científicos y permitir al lector revisar las referencias de un articulo mientras lo fuera leyendo. Un sistema de hipertexto enlazaría todos los documentos entre sí para que el lector pudiera revisar las referencias de un articulo mientras lo fuera leyendo. El nombre original del prototipo era "Enquire Within Upon Everything". La funcionalidad elemental de la Web se basa en tres estándares: El Localizador Uniforme de Recursos (URL), que especifica cómo a cada página de información se asocia una "dirección" única en donde encontrarla; el Protocolo de Transferencia de Hipertexto (HTTP), que especifica cómo el navegador y el servidor intercambian información en forma de peticiones y respuestas, y el Lenguaje de Marcación de Hipertexto (HTML), un método para codificar la información de los documentos y sus enlaces. Berners-Lee dirige en la actualidad el World Wide Web Consortium, que desarrolla y mantiene estos y otros estándares que permiten a los ordenadores de la Web almacenar y comunicar todo tipo de información. El programa inicial del CERN, "www", sólo presentaba texto, pero navegadores web posteriores, como Viola de Pei Wei (1992) añadieron la capacidad de presentar también gráficos. Marc Andreesen de NCSA presentó un navegador web llamado "Mosaic para X" en 1993 que disparó la popularidad de la Web entre principiantes. Andreesen fundó Mosaic Communications Corporation (hoy Netscape Communications), añadiendo características adicionales como contenido dinámico, música y animación que están incluidas en los modernos navegadores. A menudo la capacidad de los navegadores y servidores avanza mucho más rápido que los estándares, con lo cual es habitual que las características más nuevas no funcionen en todas las máquinas, impidiendo la accesibilidad universal. El imparable avance técnico de la WWW permite hoy incluso servicios en tiempo real como webcasts, radio web y webcams en directo. Una de las tecnologías en constante evolución en el mundo de la WWW es Flash, un formato registrado por la compañía Macromedia que aportan un gran dinamismo a las webs. El lenguaje de scripting que usan, Actionscript, goza de un gran potencial que abarca desde la aplicación visual hasta la interactividad con el servidor. Actionscript, ya en su versión 2.0, va abriéndose paso entre los grandes lenguajes de la programación web del lado del cliente. Otro avance importante fue la plataforma Java, de Sun Microsystems, que permitió a las páginas web incluir pequeños programas (llamados applets) que se ejecutan en la máquina del cliente y mejoran la presentación y la interactividad. La web ha crecido hasta arrinconar otras formas de comunicación anteriores, como los tableros electrónicos (BBS), los servicios de noticias (News), el Gopher, los buscadores de documento (Archie) y ha mantenido cierta convivencia con el protocolo de transferencias de ficheros (FTP) y los protocolos de correo electrónico: SMTP, POP3 e IMAP. La W3C es el organismo que regula los estandares web, necesario para asegurar así el acceso universal a la información. Aun así, hay quien ignora estos estándares dando lugar a páginas web que solo se ven bien con uno o unos pocos navegadores concretos.

Tecnologías Web

Navegadores


- Amaya
- Internet Explorer
- Konqueror
- Mozilla
- Mozilla Firefox
- Netscape Navigator
- Opera
- Safari

Plataformas de publicación web


- Weblogic
- WebSphere
- Zope

Servidores Web


- CERN httpd
- Servidor HTTP Apache (Libre, servidor más usado del mundo)
- IIS
- Resin
- Tomcat (Libre, del proyecto http://jakarta.apache.org/ Jakarta de http://www.apache.org/ Apache)
- Geronimo (Libre, orientado a J2EE, del proyecto http://jakarta.apache.org/ Jakarta de http://www.apache.org/ Apache, actualmente se encuentra en desarrollo)
- JBoss
- JOnAS

Otras tecnologías


- OAI-PMH
- CFM Coldfusion
- DHTML
- PHP
- ASP
- CGI
- JSP (Tecnología Java )
- .NET

Tipología web


- Buscador Internet
- Software social
- Páginas personales
- Portal web o CMS
- Bitácora o Weblog/Blog
- Wiki

Véase también


- Internet
- Informática Categoría:Acrónimos de informática Categoría:Internet ja:World Wide Web ko:월드 와이드 웹 simple:World Wide Web th:เวิลด์ไวด์เว็บ

Sistema operativo

Un sistema operativo (SO) es un conjunto de programas o software destinado a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera cómoda y eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la máquina desde los niveles más básicos. Hoy en día un sistema operativo se puede encontrar normalmente todos los aparatos electrónicos complejos que podamos utilizar, ya que gracias a estos podemos entender la máquina y que ésta cumpla con sus funciones; éste es el caso de: teléfonos móviles, reproductores de DVD, minicadenas, autoradios, y muchos más; incluyendo más visiblemente a los Ordenadores Personales (PC).

Otra definición

Otra definición posible y bastante aceptada define un sistema operativo como una capa compleja entre el hardware y el usuario, concebible también como una máquina virtual, que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar sus tareas informáticas, abstrayéndole de los complicados procesos necesarios para llevarlas a cabo. Por ejemplo, un usuario normal simplemente abre los ficheros grabados en un disco, sin preocuparse por la disposición de los bits en el medio físico, los tiempos de espera del motor del disco, la posición de un cabezal, el acceso de otros usuarios, etc. Aunque es un tema propenso a la discusión, algunos expertos están de acuerdo en que un sistema operativo debe constar de, por lo menos, un conjunto de programas similar al siguiente:
- Un compilador de algún lenguaje de programación, en Unix es de C.
- Un enlazador.
- Un ensamblador.
- Un intérprete de comandos.
- Una amplia biblioteca del lenguaje de la plataforma.
- Un kernel o núcleo.

Definición coloquial

Otra definición, más coloquial, denomina sistema operativo a todo el software que viene con el ordenador antes de que se instale ninguna aplicación. Según esta definición, orientada al usuario final, las herramientas de desarrollo no son necesarias y, sin embargo, se consideran elementos imprescindibles un amplio número de programas orientados a diferentes tareas, como editores de texto, administradores de archivos, navegadores, etc.
En industrias como la manufacturera o de servicios, se denomina sistema operativo a la aplicación de software que se usa como principal fuente de datos de entrada de la compañía, es decir, el sistema que se usa en las operaciones internas. El Sistema operativo es el encargado de brindar al usuario de manera mas fácil, sencilla y amigable la de operar, codificar, interpretar y emitir órdenes al procesador central para que éste realice la tareas necesarias para completar la orden.

Características


- Administración de tareas:
  - Monotarea: Si solamente puede ejecutar un programa (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a funcionar un programa, continuará haciéndolo hasta su finalización o interrupción.
  - Multitarea: Si es capaz de ejecutar varios programas al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternativa a los programas que los solicitan, de manera que el usuario percibe que todos funcionan a la vez.
- Administración de usuarios:
  - Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
  - Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos del ordenador. Normalmente estos SS.OO. utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
- Manejo de recursos:
  - Centralizado: Si permite utilizar los recursos de un solo ordenador.
  - Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de un ordenador al mismo tiempo.
- Organización interna:
  - Kernel monolítico (Linux, BSD, skyOS, Windows, Syllable).
  - Microkernel (BeOS, Mach, Mac OS X, newOS).
  - Nanokernel (AdeOS, Eros, KeyKOS, Brix-OS).
  - VOiD (unununium, TUNES, Vapour).
  - Sasos (Opal, Mungi, BriX).
  - VM (Merlin, Argante).
  - Exokernel (MIT exokernel).
  - Cache kernel (Universidad de Stanford).

Sistemas operativos

AtheOS/Syllable/Cosmoe

OSBOS


- BeOS
- Haiku
- Zeta
- BlueEyedOS
- Cosmoe
- BeFree
- Sequel
- Mockup

SkyOS

Familia Amiga


- AmigaOS 1.x
- AmigaOS 2.x
- AmigaOS 3.0-3.1
- AmigaOS 3.5/3.9
- WarpOS (AmigaOS 3.x + subsistema PowerPC)
- MorphOS
- AmigaOS 4.0

Familia Macintosh


- Mac OS 8
- Mac OS X

Familia QNX


- RTOS
- Neutrino
- RTP

Familia DOS


- MS-DOS
- DR-DOS
- PC-DOS
- FreeDOS
- Novell DOS

Familia Windows


- Windows 1.0
- Windows 2.0
- Windows 3.0
- Windows 3.1
- Windows 3.11
- Windows 95
- Windows 98
- Windows ME
- Windows NT
- Windows 2000
- Windows 2000 server
- Windows XP
- Windows Server 2003
- Windows CE
- Windows Mobile
- Windows Vista (Longhorn)

Familia UNIX


- AIX
- AMIX
- GNU/Linux
  - Distribuciones Linux
- GNU / Hurd
- HP-UX
- Irix
- Minix
- System V
- Solaris
- UnixWare
- LynxOS
- Xenix
- Digital UNIX

Familia BSD


- FreeBSD
- PC-BSD
- DragonFlyBSD[http://www.dragonflybsd.org/]
- NetBSD
  - VINO[http://www.eecs.harvard.edu/~vino/vino/]
- OpenBSD
- PicoBSD
- Darwin
  - GNU-Darwin

Familia Mach


- GNU / Hurd
- BSD lites
- Mac OS X
- NEXTSTEP
- YAMIT
- MKlinux

Familia IBM


- OS/2
  - eComStation
- OS/360
- OS/370
- OS/390
- OS/400

Sistemas operativos académicos o experimentales(betas)


- Chorus/Jaluna
- Amoeba
- MIT Exokernel
- BriX

Librerías para la creación de sistemas operativos


- Kernel Toolkit

Véase también


- Historia y evolución de los sistemas operativos
- Comparación de sistemas operativos
- Planificador

Enlaces externos


- [http://www.osnews.com/ OSnews.com], en inglés.
- [http://www.freeos.com/ FreeOS.com: The Resource Center for Free Operating Systems], en inglés.
- [http://200.75.54.18/libro/ Fundamentos de Sistemas Operativos con Énfasis en GNU/Linux], libro en español con conceptos básicos acerca de los sistemas operativos y en varios formatos. (PDF, HTML, Archivo de texto, entre otros) Categoría:Sistemas operativos Categoría:Acrónimos de informática als:Betriebssystem ja:オペレーティングシステム ko:운영 체제 ms:Sistem pengoperasian simple:Operating system th:ระบบปฏิบัติการ zh-min-nan:Chok-gia̍p hē-thóng

Sintaxis

La sintaxis es una subdisciplina de la lingüística. Es la parte de la gramática que se encarga de estudiar las reglas que gobiernan la forma en que las palabras se organizan en sintagmas y, a su vez, estos sintagmas en oraciones. La escuela sistémico funcional incluye en sus análisis sintácticos el modo en que las oraciones se organizan en estructuras de texto. Se cree que el padre de la disciplina fue Apolonio Díscolo, cuya obra Sintaxis es un clásico de la materia. La escuela del generativismo, también llamada transformacional centra sus estudios en la sintaxis, con el fin de poder llegar a entender elementos de lo que ellos llaman Gramática Universal. Existen diversos modos de realizar análisis sintácticos, mediante corchetes, mediante diagramas arbóreos, etc. Dichos análisis proveen tres tipos distintos de información acerca de la oración que representan:
- El orden lineal de aparición de las palabras en la oración (aunque esto no es así en todas las escuelas).
- La agrupación de palabras dentro de categorías sintácticas.
- La estructura jerárquica mediante la que se organizan los constituyentes, la cual se explica con la Teoría de la X' (X-barra).

Enlaces externos


- [http://www.uned.es/sel/pdf/jul-dic-99/29-2-257-281.PDF Sobre las relaciones de la morfología con la sintaxis] (nivel avanzado). Artículo escrito por Soledad Valera Ortega y publicado en la Revista Española de Lingüística. Categoría:Gramática ja:統語論

C Más Más

C++ (pronunciado /ce.mas.más/ en español) es un lenguaje de programación, diseñado a mediados de los ochenta, por Bjarne Stroustrup, como extensión del lenguaje de programación C. Es un lenguaje híbrido, que se puede compilar y resulta más sencillo de aprender para los programadores que ya conocen C. 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 [http://root.cern.ch/ ROOT] (enlace externo). Las principales características del C++ son abstracción (encapsulación), el soporte para programación orientada a objetos (polimorfismo) y el soporte de plantillas o programación genérica (Templates). Por ende, 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. Las plantillas se definen de la manera siguiente: template declaración X y se las instancia con X. Además añade una serie de propiedades que se encuentran más difícilmente en otros lenguajes de alto nivel:
- Posibilidad de redefinir los 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 Masciatti 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++, "C++" significa "uno más de C" y se refiere a que C++ es una extensión de C. Algunos dicen que "C++" todavía significa "C", porque "++" en este caso es el operador de la postincrementación, es decir, aumenta el valor de la expresión a la que se refiere, después, en las instrucciones siguientes. Por esto el valor de la expresión en este momento permanece original.

Un ejemplo

A continuación se cita un programa de ejemplo escrito en C++: #include   int main()

Conceptos generales de la programación orientada a objetos


- Clase: Es una plantilla de la cual se pueden sacar varios objetos. Estos contienen prototipos de atributos y métodos que puede heredar cada una de sus instancias. De forma general puede definirse como la representación que hace la programación orientada a objetos de un objeto matemático.
- Objeto: Es la instanciación de una clase, es decir, un ejemplo concreto de las propiedades que puede tener una clase. Una clase define una idea, así como un objeto es su representación.
- Identidad: Permite al objeto diferenciarse de los demás.

Tipos Primitivos en C++

En C y en C++ exiten dos clases de tipos primitivos: enteros y flotantes los cuales pueden ser clasificados de la siguiente manera: # Enteros ## int ## long int ## long long ## short ## char # Flotantes ## float (IEEE754 Simple) ## double (IEEE754 Normal) ## long double (IEEE754 Extendido) El modificador unsigned se puede aplicar a enteros para obtener números sin signo, por defecto los enteros contienen signo. Según la máquina y el compilador que se utilize los tipos primitivos pueden ocupar un determinado tamaño en memoria. La siguiente lista ilustra el número de bits que ocupan los distintos tipos primitivos en un PC de la familia 386 con gcc.

Principios

Todo programa en C++ debe tener la función main() :
int main()

El Concepto de Clase

Los objetos en C++ son abstraídos mediante una Clase. Según el paradigma de la programación orientada a objetos un objeto consta de: # Métodos o funciones # Variables Miembro Un ejemplo de una clase

class Punto
;

Constructores

Son unos métodos especiales que se ejecutan automáticamente al crear un objeto de la clase. En su declaración no se especifica el tipo de dato que devuelven, y poseen el mismo nombre que la clase a la que pertenecen. Al igual que otros métodos, puede haber varios constructores sobrecargados, aunque no pueden existir constructores virtuales. Como característica especial a la hora de implementar un constructor, justo después de la declaración de los parámetros, se encuentra lo que se llama "lista de inicializadores". Su objetivo llamar a los constructores de los atributos que conforman el objeto a construir. Tomando el ejemplo de la Clase Punto, si deseamos que cada vez que se cree un objeto de esta clase las coordenadas del punto sean igual a cero podemos agregar un construtor como se muestra a continuación:

// Clase Punto
//-----------------------------------------------------------------------
class Punto
;
//-----------------------------------------------------------------------

// Main para demostrar el funcionamiento de la clase
#include 
using namespace std;

int main()

Si compilamos y ejecutamos el anterior programa, obtenenemos una salida que debe ser similar a la siguiente: \\ Coordenada X:0 \\ Coordenada Y:0 \\

Destructores

Los destructores son funciones miembro especiales llamadas automáticamente en la ejecución del programa, y que por tanto no deben ser llamadas explicitamente por el programador. Su cometido liberar los recursos computacionales que el objeto de dicha clase haya adquirido en tiempo de ejecución al expirar este. Los destructores al alcanzar el fin del ámbito en el que está declarado el objeto.

Funciones Miembro

Función miembro es aquella que está declarada en ámbito de clase. Son similares a las funciones habituales, con la salvedad de que el compilador realizara el denominado Name Mangling: Cambiara el nombre de la función añadiendo un identificador de la clase en la que está declarada. Además, las funciones miembro reciben implícitamente un parámetro adicional: El puntero this, que referencia al objeto que ejecuta la función.

Plantillas

Las plantillas son el mecanismo de C++ para implantar el paradigma de la Programación genérica. Permiten que una clase o función trabaje con tipos de datos abstractos, especificándose más adelante cuales son los que se quieren usar. Por ejemplo, es posible construir un vector genérico que pueda contener cualquier tipo de estructura de datos. De esta forma se pueden declarar objetos de la clase de este vector que contengan enteros, flotantes, polígonos, figuras, fichas de personal, etc. Se antepone template a la estructura de programación (clase, función, etc.).

Espacios de Nombres

Excepciones

Herencia


- Herencia Simple
- Herencia Multiple

Sobrecarga de Operadores

Es posible definir el comportamiento de un operador del lenguaje para que trabaje con tipos de datos definidos por el usuario. Estos comportamientos se implementa de la misma manera que una función, salvo que esta tendrá un nombre especial: Tipo de dato de devolución operator (parámetros)
- Operador +
- Operador ++
- Operador -
- Operador --
- Operador
-
- Operador /
- Operador %
- Operador new
- Operador delete
- Operador ()
- Operador []

Biblioteca Estándar de Plantillas (STL)

Los lenguajes de programación suelen tener una serie de bibliotecas integradas para la manipulación de datos a nivel más básico. En C++, además de poder usar las bibliotecas de C, se puede usar la nativa STL (Standard Template Library), propia del lenguaje. Proporciona una serie de clases parametrizadas (véase más arriba plantillas) que permite efectuar operaciones sobre el almacenado de datos, procesado y flujos de entrada/salida. La STL es más que una biblioteca un conjunto de ellas. De esta forma únicamente se incluyen en el fichero ejecutable final aquellas que sean necesarias para la aplicación que se esté programando, reduciendo drásticamente el uso innecesario de memoria.

ostreams / istreams

Cabe destacar las clases basic_ostream y basic_stream, y los objetos cout y cin, pertenecientes a estas clases, respectivamente. Proporcionan la entrada y salida estándar de datos (teclado/pantalla). También está disponible cerr, similar a cout, usado para la salida estándar de errores. Estas clases tienen sobrecargados los operadores << y >>, respectivamente, con el objeto de ser útiles en la inserción/extracción de datos a dichos flujos. Son operadores inteligentes, ya que son capaces de adaptarse al tipo de datos que reciben, aunque tendremos que definir el comportamiento de dicha entrada/salida para clases/tipos de datos definidos por el usuario. Por ejemplo:
ostream& operator<<(ostream& fs,const Punto& punto)

De esta forma, para mostrar un punto, solo habría que realizar la siguiente expresión:
//...
Punto p(4,5);
//...
cout << "Las coordenadas son: " << p << endl;
//...
Es posible formatear la entrada/salida, indicando el número de dígitos decimales a mostrar, si los textos se pasarán a minúsculas o mayúsculas, si los números recibidos están en formato octal o hexadecimal, etc.

fstreams

Tipo de flujo para el manejo de ficheros. La definición previa de ostreams/istreams es aplicable a este apartado. Existen tres clases (ficheros de lectura, de escritura o de lectura/escritura): ifstream,ofstream y fstream. Pueden abrirse pasando al constructor los parámetros relativos a la ubicación del fichero y el modo de aperura: Para cerrar un fichero, puede usarse el método close, o esperar a que el destructor de las clases lo cierre automáticamente.

sstreams

Se destacan dos clases, ostringstream e istringstream. Todo lo anteriormente dicho es aplicable a estas clases. Tratan a una cadena como si de un flujo de datos se tratase. ostringstream permite elaborar una cadena de texto insertando datos cual flujo, e istringstream puede extraer la información contenida en una cadena (pasada como parámetro en su constructor) con el operador >>. Ejemplos:
ostringstream s;
s << nombre << "," << edad << "," << estatura << "," << punto(5,6) << endl;
cout << s.str();
istringstream s(cadena);
s >> nombre >> edad >> estatura >> p;

Contenedores

Son clases plantillas especiales utilizadas para almacenar tipos de datos genéricos, sean cuales sean. Según la naturaleza del almacenado, disponemos de varios tipos:
- Vectores: Se definen por
vector nombre_del_vector;
Equivalen a los array de cualquier lenguaje, con diversas salvedades. Tienen tamaño dinámico, con lo que se puede insertar elementos aún si el vector está lleno. A diferencia de los vectores clásicos a bajo nivel de C, también pueden lanzar excepciones si se accede a un elemento cuyo rango está fuera del vector en cuestión, usando, en vez del operador [], el método at().
- Colas dobles.
- Listas.
- Adaptadores de secuencia.
- Contenedores asociativos: map y multimap.
- Contenedores asociativos: set y multiset. Métodos comunes y no comunes entre los contenedores de la STL.

Iteradores

Pueden considerarse como una generalización de la clase de "puntero". Un iterador es un tipo de dato que permite el recorrido y la búsqueda de elementos en los contenedores. Como las estructuras de datos (contenedores) son clases genéricas, y los operadores (algoritmos) que deben operar sobre ellas son también genéricos (funciones genéricas), Stepanov y sus colaboradores tuvieron que desarrollar el concepto de iterador como elemento o nexo de conexión entre ambos. El nuevo concepto resulta ser una especie de punteros que señalan a los diversos miembros del contenedor (punteros genéricos que como tales no existen en el lenguaje).

Compiladores

Uno de los mejores compiladores de C++ es el de GNU, el compilador G++ (parte del proyecto Gcc, que engloba varios compiladores para distintos lenguajes), descargable desde la dirección http://www.gnu.org. Actualmente los compiladores más comunes que pueden encontrarse para C++ en el sistema operativo Windows son Visual C++ y MinGW. Visual C++ pertenece a Microsoft y es de pago, mientras que MinGW es una versión del compilador de GNU adaptada para este sistema operativo .Dev-C++ es un IDE de libre distribuición para este compilador y puede ser descargado de [http://www.bloodshed.net su web oficial Bloodshed] gratuitamente. También existe DJGPP, aunque actualmente está en desuso.

Enlaces externos


- [http://www.cplusplus.com/ cplusplus resources] (inglés) Category:Lenguajes compilados ja:C Plus Plus ko:C 플러스 플러스 simple:C plus plus

Lenguaje de programación Ada

Ada es un lenguaje de programación estructurado y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los EE.UU. Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++. Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecución (desactivables en beneficio del rendimiento). La sincronización de tareas se realiza mediante la primitiva rendezvous. Ada se usa principalmente en entornos en los que se necesita una gran seguridad y confiabilidad como la defensa, la aeronáutica (Boeing o Airbus), la gestión del tráfico aéreo (como Indra en España) y la industria aeroespacial entre otros.

Historia

El lenguaje fue diseñado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD). Durante los años 1970, este departamento tenía proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software. Para solucionarlo se buscó un lenguaje único que cumpliese unas ciertas normas recogidas en el documento Steelman. Después de un estudio de los lenguajes existentes en la época se decidió que ninguno las cumplía totalmente, por lo que se hizo un concurso público al que se presentaron cuatro equipos, cuyas propuestas se nombraron con un color: Rojo (Intermetrics), Verde (CII Honeywell Bull), Azul (SofTEch) y Amarillo (SRI International). Finalmente en mayo de 1979 se seleccionó la propuesta Verde diseñada por Jean Ichbiah de CII Honeywell Bull, y se le dio el nombre de Ada. Esta propuesta era un sucesor de un lenguaje anterior de este equipo llamado LIS y desarrollado durante los años 1970. El nombre se eligió en conmemoración de lady Ada Augusta Byron (1816-1852)Condesa de Lovelace,hija del poeta Lord George Byron, a quien se considera la primera programadora de la Historia, por su coolaboración y relación con Charles Babbage, creador de la máquina analítica. El lenguaje se convirtió en un estándar de ANSI en 1983 (ANSI/MIL-STD 1815) y un estándar ISO en 1987 (ISO-8652:1987). El Departamento de Defensa de los EE. UU. y los ministerios equivalentes de varios países de la OTAN exigían el uso de este lenguaje en los proyectos que contrataban (el Ada mandate). La obligatoriedad en el caso de Estados Unidos terminó en 1997, cuando el DoD comenzó a usar productos COTS (commercial off the shelf).

Estándar ISO

Hasta la fecha la ISO ha publicado dos ediciones del estándar de Ada: la original Ada 83 y la última Ada 95 (ISO/IEC 8652:1995). A diferencia de otros estándares de ISO, el de Ada es libremente reproducible [http://www.adahome.com/rm95/]. Ada 83 incluía conceptos novedosos como el manejo de excepciones y la programación genérica. Por sus capacidades de encapsulación y polimorfismo paramétrico (genéricos), se podía considerar ya en esa época un lenguaje basado en objetos. La revisión Ada 95 fue diseñada por Tucker Taft de Intermetrics entre 1992 y 1995. Esta edición entre otras cosas añadió la capacidad de herencia y el despachado dinámico (dynamic dispatching) para completar sus características de lenguaje orientado a objetos. De hecho fue el primer lenguaje orientado a objetos estandarizado por ISO. Actualmente se está trabajando en Ada 200Y, la siguiente revisión del lenguaje que seguramente se publicará a finales de 2005 o principios de 2006. Todavía no está decidido si finalmente se denominará Ada 2005 o Ada 2006.

Compiladores

Un compilador de Ada muy usado es GNAT, originalmente desarrollado por la Universidad de Nueva York bajo patrocinio del DoD. Está basado en la tecnología de GCC y es software libre. Actualmente está mantenido por AdaCore (antes llamada Ada Core Technologies), empresa que ofrece soporte y servicios sobre el compilador. Existen otros compiladores comerciales.

Ejemplo de código Ada

El típico ejemplo de Hola mundo en Ada es: with Ada.Text_IO; use Ada.Text_IO; procedure Hola_Mundo is begin Put_Line ("Hola Mundo"); end; Aquí debajo hay un ejemplo más elaborado (función de Ackermann) de código fuente escrito en Ada, para mostrar algunos de sus rasgos sintácticos. with Ada.Command_Line; use Ada.Command_Line; with Ada.Text_IO; use Ada.Text_IO; procedure Ackermann is function Ack (X, Y: Integer) return Integer is begin if X = 0 then return Y + 1; elsif Y = 0 then return Ack(X - 1, 1); else return Ack(X - 1, Ack(X, Y - 1)); end if; end Ack; X, Y, Resultado : Integer; begin if Argument_Count = 2 then X := Integer'Value (Argument(1)); Y := Integer'Value (Argument(2)); elsif Argument_Count = 1 then X := 3; Y := Integer'Value (Argument(1)); else X := 3; Y := 3; end if; Resultado := Ack (X, Y); Put_Line ("Ack (" & Integer'Image (X) & "," & Integer'Image (Y) & ") = " & Integer'Image (Resultado)); end Ackermann; Entre las características que encontramos en este ejemplo se puede destacar:
- La sintaxis, inspirada en Pascal, es bastante legible incluso para personas que no conozcan el lenguaje. Es un lenguaje que no escatima en la longitud de las palabras clave, en la filosofía de que un programa se escribe una vez, se modifica decenas de veces y se lee miles de veces (legibilidad es más importante que rapidez de escritura).
- Identificadores y palabras claves son equivalentes sea cual sea el uso de mayúsculas y minúsculas, es decir es un lenguaje case-insensitive.
- En este caso, todo el programa es un único procedimiento, que puede contener subprogramas (procedimientos o funciones) (en este caso: la función Ack).
- Cada sentencia se cierra con end qué_cerramos. Es un modo de evitar errores y facilitar la lectura. No es necesario hacerlo en el caso de subprogramas, aunque todos los manuales lo aconsejan y casi todos los programadores de Ada lo hacen.
- El operador de asignación es :=, el de igualdad =. A los programadores de C y similares les puede confundir este rasgo inspirado en Pascal.
- La sintaxis de atributos predefinidos es Objeto'Atributo (o Tipo'Atributo) (nota: esto sólo aplica a atributos predefinidos por el lenguaje, ya que no es el concepto de atributo típico de OOP).
- Se distingue entre "procedimientos" (subrutinas que no devuelven ningún valor pero pueden modificar sus parámetros) y "funciones" (subrutinas que devuelven un valor y no modifican los parámetros). Muchos lenguajes de programación no hacen esta distinción. Las funciones de Ada favorecen la seguridad al reducir los posibles efectos colaterales, pues no pueden tener parámetros in out.

Véase también


- Lenguaje de programación SPARK
- Perfil de Ravenscar

Enlaces externos


- En español:
  - [http://iio.ens.uabc.mx/~jmilanez/escolar/sistemas_operativos/expo-1.html Curso básico de Ada 83 en uabc.mx]
  - [http://www.gedlc.ulpgc.es/docencia/NGA/index.html Curso básico de Ada 95 en ulpgc.es]
  - [http://www.adaspain.org Asociación Ada-Spain]
  - [http://dmoz.org/World/Espa%c3%b1ol/Computadoras/Programaci%c3%b3n/Lenguajes/Ada/ Directorio de páginas sobre Ada]
  - [http://www.canalada.org/ canalada.org - Foro sobre Ada]
- En inglés:
  - [http://www.adaworld.com Ada World]
  - [http://www.adapower.com Ada Power]
  - [http://www.ada-europe.com Asociación Ada-Europe]
  - [http://dmoz.org/Computers/Programming/Languages/Ada/ Directorio de páginas sobre Ada]
  - [http://www.iuma.ulpgc.es/users/jmiranda/ Página personal de Javier Miranda sobre Ada] Ada ja:Ada

Siglo XX

Siglo: Tabla anual siglo XX (Siglo XIX - Siglo XX - Siglo XXI) Década:
Años 1900 | Años 1910 | Años 1920 | Años 1930 | Años 1940
Años 1950 | Años 1960 | Años 1970 | Años 1980 | Años 1990
---- Desde el punto de vista matemático el siglo XX comprende los años 1901-2000 ambos incluidos. No obstante, el uso popular le ha dado el significado de los años 1900-1999. El siglo XX se ha caracterizado por los avances de la tecnología, medicina y ciencia en general, pero también por atrocidades humanas tales como las guerras, el genocidio y sin que se hayan resuelto las diferencias económicas entre países. En los últimos años del siglo ha comenzado un fenómeno llamado globalización.

Acontecimientos relevantes

Ciencia y Tecnología
  - Producción industrial de todo tipo de productos.
  - Invención de máquinas voladoras más pesadas que el aire.
  - Vuelo espacial y aterrizaje en la Luna
  - Invención del transistor, del circuito integrado, de la luz laser, de los ordenadores y de internet.
  - Desarrollo de la radio y de la televisión.
  - Teoría de la relatividad y del modelo cosmológico del Big Bang.
  - Mecánica cuántica