Lenguajes de Programación
Lenguajes de Programación
En la actualidad hay en uso más de mil millones de computadoras de propósito ge- La computadora sólo entiende un
neral, además de miles de millones de teléfonos inteligentes y dispositivos portátiles, lenguaje conocido como código
este explosivo crecimiento está creando oportunidades importantes para la progra- binario o código máquina, consis-
mación de aplicaciones. tente en ceros y unos.
Figura 3.1.
Las computadoras pueden realizar cálculos y tomar decisiones con una rapidez in-
creíblemente mayor que los humanos, algunas realizan miles de millones de procesos
en un segundo, más de lo que un humano podría realizar en toda su vida. Procesan
datos bajo el control de instrucciones que se llaman programas de computadora,
estos guían a la computadora a ejecutar acciones especificadas por los programa-
dores de computadoras, quienes a su vez requieren de un lenguaje mediador para
que la computadora entienda las instrucciones, es decir de un lenguaje de progra-
mación. Éste es un lenguaje formal que proporciona una serie de instrucciones que
permiten a un programador escribir secuencias de órdenes y algoritmos a modo de
controlar el comportamiento físico y lógico de una computadora con el objetivo de
que produzca diversas clases de datos.
Los lenguajes de programación han revolucionado la vida del ser humano, su evolu-
ción tiene como principal propósito facilitar a los usuarios la realización de activida-
des cotidianas tan simples como diseñar la presentación electrónica para apoyar la
exposición de clase, enviar un mensaje instantáneo, compartir en redes sociales el
video de una broma hecha a un compañero en clase, disponer de efectivo en un cajero
automático, solicitar un servicio de traslado a un destino en particular, o tareas más
complejas como acudir a un laboratorio a conseguir una tomografía para verificar
que una caída no lastimó los huesos del cuerpo, jugar tu videojuego favorito haciendo
sentir cada movimiento como si se estuviera dentro de él o hacer descubrimientos del
sistema solar mediante naves espaciales, entre muchas actividades más.
En los cursos anteriores has administrado herramientas del sistema operativo, uti-
lizado aplicaciones para fines particulares, diseñado organizadores gráficos colabo-
rativos en línea y realizado búsquedas de información en medios electrónicos, entre
otros, has sido beneficiado con programas que programadores expertos en software
han desarrollado para que los utilices de forma sencilla. Pero detrás de cada progra-
ma y aplicación hay un proceso largo de diseño y verificación que es ajeno a la mayo-
ría de los usuarios.
Compilador. Traduce un progra- Los programadores escriben las instrucciones en diversos lenguajes, algunos los
ma escrito en un cierto lenguaje a comprende directamente la computadora, mientras que otros requieren pasos in-
otro. termedios de traducción. Aunque Fortran es enunciado como el primer lenguaje de
programación popular que utilizaba tarjetas perforadas para codificar instrucciones,
le anteceden lenguajes más rústicos y difíciles de comprender por el humano como
el lenguaje máquina, que consiste de cadenas de números que finalmente se tradu-
cen en unos y ceros, y que se definen de acuerdo a su diseño de hardware, esto es, que
cualquier computadora puede entender de manera directa sólo su propio lenguaje o
código máquina. Dada la lentitud de ese lenguaje, se comenzaron a utilizar abreviatu-
ras para representar las operaciones elementales que fueron la base para el lenguaje
ensamblador, conocido como programas traductores que convierten los programas
de lenguaje ensamblador a máquina.
Figura 3.3. Lenguaje ensamblador. En la siguiente tabla se detalla en qué son usados algunos lenguajes de programación:
88 Introducción a la programación
Año Lenguaje Característica Primero usos Usado para
FORTRAN - traducción Considerado el más viejo de los Aplicaciones de supercomputado- NASA, Tarjetas de
de fórmula. lenguajes que es usado hoy en día. ras. Inteligencia Artificial, software crédito, ATM.
LISP - lista de Es de Alto nivel. Creado para com- de trabajo.
1957-
procesador. putadoras de trabajo y científicas y
1959
COBOL - Lenguaje matemáticas.
común Orientado a
Negocios.
PASCAL - nombrado De alto nivel, para enseñar las es- Enseñar programación. Apple, Lisa (1983) y
en honor al físico tructuras de programación y de da- Es usado comúnmente para aplica- Skype.
1970
matemático Blaise tos. Versiones comerciales usadas ciones para mejoramiento de Win-
Pascal. en los años 80. dows.
C - basado en un Propósito general y de bajo nivel. Programación de plataformas, Sis- Unix (en 1973),
lenguaje anterior Creado por sistemas Unix, es el se- temas de programación, programas clientes iniciales del
llamado B. gundo lenguaje más popular (des- Unix, desarrollo de juegos de compu- servicio del www
1972
pués de JAVA). Deriva varios lengua- tadora.
jes como: C#, Java, Java script, Perl,
Php y Python.
C++ - Formalmente Nivel intermedio, orientado a ob- Desarrollo de aplicaciones comer- Google Chrome,
C con clases; ++ es jetos. Es una extensión de C con ciales, software ensamblador, apli- Mozilla Firefox, MS
1983 el incremento del mejoras como clases, funciones y caciones de cliente/servidor y video Internet Explorer.
operador en C plantillas. juegos.
OBJETIVE C - Propósito general de alto nivel. Ex- Programas de Apple. Sistemas operativos
Extensión de C pansión de C que añade la función de Apple: X e IOS
1983
orientado a objetos. de mensajes basados en lenguaje
Smalltalk
PERL - Pearl ya Propósito general de alto nivel. Crea- CGI, aplicaciones de bases de da- IMDb, Amazon,
estaba ocupado. do para reportes de procesamientos tos, sistemas de administración, Priceline,
1987
en sistemas Unix. Hoy es conocido programas de internet y gráficos. Ticketmaster.
por su gran poder y versatilidad.
Python – nombrado Propósito general, alto nivel. Es un Aplicaciones web, desarrollo de soft- Google, Yahoo,
por la afición del lenguaje multiparadigma, ya que ware y seguridad de la información. Spotify.
creador a la tropa soporta orientación a objetos, pro-
1991 británica cómica: gramación imperativa y, en menor
Monty Python. medida, programación funcional. Es
un lenguaje interpretado, dinámico y
multiplataforma.
RUBY – Creado Propósito general, alto nivel. Len- Desarrollo de aplicaciones web y Twitter, Hulu,
por el programador guaje de enseñanza influenciado Ruby on rails. Gruopon.
1993
japonés Yukihiro Matz por Perl, Ada, Lisp. Smalltalk, etc.
Matsumoto. Diseñado para productivo divertido.
JAVA -Lenguaje Propósito general, alto nivel. Creado Programación de internet, desarrollo Aplicaciones del
de programación para un proyecto interactivo de TV. de aplicaciones web, desarrollo de sistema operativo
y una plataforma Actualmente es el lenguaje de pro- software, desarrollo de interfaces Android.
1995
informática gramación más popular en el mun- gráficas.
comercializada por do.
Sun Microsystems.
Existen lenguajes de programación cada vez más completos, que son concebidos a
partir diversos enfoques, características y propósitos, y que pueden clasificarse de
distintas formas, tal como a se describe continuación:
2. Según su propósito:
a. Propósito general: Son lenguajes que pueden usarse para programar
Gráfico con los nombres de detec-
cualquier tipo de procesos.
ción de los productos de ESET y b. Propósito específico: Están orientados para el desarrollo de aplicacio-
porcentajes para las amenazas en nes en específico, por ejemplo: PHP cuyo enfoque es el desarrollo de apli-
México durante enero y junio de caciones Web.
2019. Fuente: Security Report 2019.
3. Según su orientación a:
a. Procedimiento: En ellos se describen los pasos que se han de realizar
para resolver un problema específicamente.
b. Problema: Son de tipo declarativo, ya que lo que hacen es describir el
problema en sí.
c. Objetos: Son lenguajes que modelan la realidad centrándose en los ele-
mentos que la componen.
90 Introducción a la programación
Sin importar la clasificación, los lenguajes de programación en general tienen un con- Glosario
junto de símbolos con estructura gramatical, reglas semánticas y de sintaxis.
Lenguaje de bajo nivel. Len-
guaje de abstracción reducida en-
Por otro lado, existen distintas estrategias de programación, cada una define las for- tre el lenguaje y el hardware. Sus
mas de desarrollar las secuencias lógicas de un programa, algunas estrategias son: instrucciones ejercen un control
directo sobre el hardware y están
1. Estructurada, que se centra en la creación de abstracciones funcionales orga- condicionados por la estructura
nizadas de forma compositiva de acuerdo a una estructura jerárquica. física de las computadoras que lo
soportan.
2. Modular, es un paradigma de programación que consiste en dividir un progra-
ma en módulos o subprogramas con el fin de hacerlo más legible y manejable. Lenguaje de alto nivel. Expre-
3. Orientada a objetos, es un paradigma que innova la forma de obtener resulta- san los algoritmos de una manera
adecuada a la capacidad cognitiva
dos, los objetos manipulan los datos de entrada para la obtención de datos de
humana.
salida específicos.
Figura 3.5.
Teniendo el programa objeto, se debe instruir al sistema operativo que realice el mon-
taje o enlace, carga del programa objeto con las bibliotecas del programa del compi-
lador. Este último proceso de montaje es el que produce el programa ejecutable, el
cual puede “correr” el programa con sólo teclear su nombre desde el sistema opera-
tivo. De no encontrarse en este paso errores en tiempo de ejecución, se obtendrá
como salida los resultados del programa o aplicación.
92 Introducción a la programación
3.1.2.3. Verificación e implementación ¿Sabías que…?
La verificación e implementación de un programa es el proceso de ejecución del pro- Para que el código objeto pueda
grama con una amplia variedad de datos de entrada, llamados datos de prueba, realizar la interpretación es nece-
que determinarán si el programa tiene errores (bugs). Para realizar la verificación se sario contar con sistemas de tra-
debe desarrollar una amplia gama de datos de prueba: valores normales de entrada, ducción que son conocidos bajo
los nombres de Compiladores,
valores extremos de entrada que comprueben los límites del programa y valores de
Intérpretes o Ensambladores, en-
entrada que comprueben aspectos especiales del programa. tre otros sistemas de traducción,
que son los encargados de llevar
Por otro lado, la depuración es el proceso de encontrar los errores del programa y estos lenguajes hacia un Sistema
corregir o eliminarlos. Durante la ejecución se pueden encontrar errores: Binario de ceros y unos (es decir,
transmisión o no-transmisión de
la energía eléctrica a través de los
• De compilación: Normalmente son por el uso incorrecto de las reglas del len- dispositivos electrónicos).
guaje de programación y suelen ser errores de sintaxis. De existir un error de
este tipo la computadora no logra comprender la instrucción y no se produci-
rá el programa/código objeto. En este caso se imprimirá una lista de todos los
errores encontrados durante la compilación.
• De ejecución: Se producen por instrucciones que la computadora puede com-
prender, pero no ejecutar, por ejemplo: la división por el número cero y las raíces Relaciónalo con…
cuadradas de números negativos. C++ es un lenguaje de programa-
• Lógicos: Se producen en la lógica y la fuente del error suele ser el diseño del al- ción creado por Bjarne Stroustrup
goritmo. Estos errores son más fáciles de detectar porque la aplicación puede en los laboratorios de At&T en 1983.
Stroustrup tomó como base el len-
funcionar y no producir errores de compilación ni de ejecución, sólo se advierte
guaje de programación más popu-
error por obtención de resultados incorrectos. En este caso se debe ir al algoritmo, lar en aquella época, el cual era C.
modificarlo y cambiar el programa fuente para compilar y ejecutar de nuevo.
94 Introducción a la programación
3.1.3.2. Sintaxis de C++ ¿Sabías que…?
Sintaxis de la estructura básica de un programa en lenguaje C++. B es el nombre de un lenguaje de
programación desarrollado en los
Bell Labs, y es predecesor del len-
guaje de programación C.
A practicar
Es momento de poner en práctica el uso de las estructuras de control selectivas. Con la guía de tu profesor co-
rrige el código fuente del algoritmo que resuelve el siguiente problema que abordaste en la secuencia 1.1 de la
Unidad 1 de este curso:
96 Introducción a la programación
#include <bits/stdc++.h>
using namespace std;
int main(){
float numero = 0, divisor = 0, cociente = 0, residuo = 0;
cout<<”Introduce un numero entero a dividir: “;
cin>>numero;
cout<<”Introduce un divisor entero: “;
cin>>divisor;
cociente = numero/divisor;
residuo = numero%divisor;
cout<<”El cociente de la división: “<<numero<<” / “ “<<divisor<<” = “<<cociente;
cout<<”El residuo de la división: “<<numero<<” / “ “<<divisor<<” = “<<residuo;
return 0;
}
4. Ve al menú Archivo a la opción Guardar o Guardar Como… o bien presiona las teclas <Ctrl + S>, para
guardar el código, colócale el nombre que tu profesor indique con extensión .cpp.
5. Continúa con la revisión de errores de codificación ejecutando la compilación, hazlo presionando la
tecla <F9> o mediante el comando de acceso rápido Compilar.
6. Observa en la sección inferior de la ventana de Dev C++ los errores de codificación y solicita a tu profesor
ayuda si algunos no logras comprenderlos.
7. Continúa realizando el punto número 5 hasta que ya no aparezcan errores de compilación.
8. Una vez corregidos todos los errores, ejecuta el código de la consola del sistema presionando el comando
Ejecutar o la tecla <F10>.
9. Después de probar el funcionamiento de tu aplicación de consola y verificar que todo marchó bien, envía
a tu profesor el archivo cpp que creaste y espera realimentación.
3.1.4. Consola
El proceso de codificar un programa depende del lenguaje y herramientas de programa- Relaciónalo con…
ción que se utilice y que se ajuste mejor al problema que se intenta resolver. Los desa- Los programas VDE (Ambiente
rrolladores suelen emplear un procesador de textos, un editor de programas o un VDE Visual de Desarrollo) ofrecen a los
para codificar programas. Un editor de programas es un tipo de editor de textos espe- programadores herramientas para
cialmente diseñado para introducir código para programas de cómputo. Estos editores desarrollar secciones sustanciales de
un programa por medio de clics, en
se obtienen en versiones gratuitas y de paga. Las funciones entre diferentes editores son
lugar de escribir líneas de código. Por
variables, pero todas incluyen ayudas de programación muy útiles, como palabras clave ejemplo, el editor de Visual Basic.
de colores, conclusión de frases, macros de teclado y búsqueda/reemplazo.
Existen una diversidad de editores de código de acceso libre y de fácil uso los
que pueden ser utilizados como medio de simbolización de algoritmos, entre
ellos: GNU Emacs, Brackets, Notepad++, CodeBlock, DevC++, Araneae y Atom que
son soportados por el sistema operativo Windows y macOS, estos últimos cua-
tro son gratuitos; también los hay para dispositivos móviles, por ejemplo, Coda
para iOS y DroidEdit es un editor de código para Android.
Figura 3.10.
98 Introducción a la programación