+1300042774
+1400593419
+1200274027
La programación en lenguaje máquina era demasiado lenta y tediosa para la mayoría de los programadores.
En vez de utilizar las cadenas de números que las computadoras podían entender directamente, los programadores
empezaron a utilizar abreviaturas del inglés para representar las operaciones elementales. Estas abreviaturas for-
maron la base de los
lenguajes ensambladores
. Los
programas traductores
conocidos como
ensambladores
se desarrollaron para convertir los primeros programas en lenguaje ensamblador a lenguaje máquina, a la velo-
cidad de la computadora. A continuación se muestra un ejemplo de un programa en lenguaje ensamblador, que
también suma el pago de las horas extras al sueldo base y almacena el resultado en el sueldo bruto:
load
sueldobase
add
sueldoextra
store
sueldobruto
Aunque este código es más claro para los humanos, las computadoras no lo pueden entender sino hasta que se
traduce en lenguaje máquina.
El uso de las computadoras se incrementó rápidamente con la llegada de los lenguajes ensambladores, pero
los programadores aún requerían de muchas instrucciones para llevar a cabo incluso hasta las tareas más simples.
Para agilizar el proceso de programación se desarrollaron los
lenguajes de alto nivel
, en donde podían escribirse
instrucciones individuales para realizar tareas importantes. Los programas traductores, denominados
compilado-
res
, convierten, a lenguaje máquina, los programas que están en lenguaje de alto nivel. Estos últimos permiten a
los programadores escribir instrucciones que son muy similares al inglés común, y contienen la notación matemá-
tica común. Un programa de nómina escrito en un lenguaje de alto nivel podría contener una instrucción como
la siguiente:
sueldoBruto = sueldoBase + sueldoExtra
Obviamente, desde el punto de vista del programador, los lenguajes de alto nivel son mucho más recomen-
dables que los lenguajes máquina o ensamblador. C, C++ y los lenguajes .NET de Microsoft (por ejemplo, Visual
Basic .NET, Visual C++ .NET y C#) son algunos de los lenguajes de programación de alto nivel que más se
utilizan; sin embargo, Java es
el más utilizado.
El proceso de compilación de un programa escrito en lenguaje de alto nivel a un lenguaje máquina puede
tardar un tiempo considerable en la computadora. Los programas
intérpretes
se desarrollaron para ejecutar
programas en lenguaje de alto nivel directamente, aunque con más lentitud. Los intérpretes son populares en los
entornos de desarrollo de programas, en los cuales se agregan nuevas características y se corrigen los errores. Una
vez que se desarrolla un programa por completo, se puede producir una versión compilada para ejecutarse con la
mayor efi ciencia.
Actualmente se sabe que existen dos formas de traducir un programa en lenguaje de alto nivel a un formato
que la computadora pueda entender: compilación e interpretación. Como veremos en la sección 1.13, Java utiliza
una mezcla inteligente de estas tecnologías.
1.8 Historia de C y C++
Java evolucionó de C++, el cual evolucionó de C, que a su vez evolucionó de BCPL y B. En 1967, Martin
Richards desarrolló BCPL como un lenguaje para escribir software para sistemas operativos y compiladores. Ken
Th
ompson modeló muchas características en su lenguaje B a partir del trabajo de sus contrapartes en BCPL, y
utilizó a B para crear las primeras versiones del sistema operativo UNIX, en los laboratorios Bell en 1970.
El lenguaje C evolucionó a partir de B, gracias al trabajo de Dennis Ritchie en los laboratorios Bell, y se
implementó originalmente en 1972. Inicialmente, se hizo muy popular como lenguaje de desarrollo para el sis-
tema operativo UNIX. En la actualidad, la mayoría del código para los sistemas operativos de propósito general
(por ejemplo, los que se encuentran en las computadoras portátiles, de escritorio, estaciones de trabajo y pequeños
servidores) se escribe en C o C++.
A principios de la década de los ochenta, Bjarne Stroustrup desarrolló una extensión de C en los laboratorios
Bell: C++. Este lenguaje proporciona un conjunto de características que “pulen” al lenguaje C pero, lo más impor-
1.8 Historia de C y C++
7
01_MAQ_CAP_01.indd7
4/19/081:18:11AM