El documento describe la programación y los lenguajes de programación. La programación implica escribir código en un lenguaje de programación para indicarle a una computadora qué hacer. Los lenguajes de programación permiten especificar operaciones y datos para que una computadora pueda procesarlos. Existen diferentes tipos de lenguajes de programación que se utilizan para diferentes propósitos.
Esencialmente, podemos decir que software son "programas de instrucciones que dan a la computadora una tarea en particular". Una vez escrito mediante algún lenguaje de codificación o programación, el software se hace funcionar en computadores, que transitoriamente se convierten en esa máquina para la que el programa sirve de plan. Sin ese conjunto de instrucciones programadas, los ordenadores serían objetos inertes, sin lógica, sin poder siquiera expresar algo en la pantalla.
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. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.
Esencialmente, podemos decir que software son "programas de instrucciones que dan a la computadora una tarea en particular". Una vez escrito mediante algún lenguaje de codificación o programación, el software se hace funcionar en computadores, que transitoriamente se convierten en esa máquina para la que el programa sirve de plan. Sin ese conjunto de instrucciones programadas, los ordenadores serían objetos inertes, sin lógica, sin poder siquiera expresar algo en la pantalla.
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. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que 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, es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Técnicas de programación
• Estilo y codificación
• Documentación
• Depuración
• Pruebas
Creado por Ing. Alvaro Enrique Ruano
1. Programación:
En computación, la programación es el proceso de escribir -en un lenguaje de programación- el
código fuente de un software para indicarle a este qué tiene que hacer y como realizarlo. Un
término más amplio de programación puede incluir no sólo a escribir, sino a analizar, probar,
depurar y mantener el código programado.
El fin último de la programación es crear programas o software, que luego será ejecutado por otro
programa o directamente por el hardware de la computadora.
La programación es una parte del Ciclo de vida del software. Los modelos de análisis y desarrollo
general de software son estudiados por la ingeniería del software.
La programación se realiza mediante el uso de algoritmos, que son secuencias finitas, ordenadas y
no ambiguas de instrucciones que deben seguirse para resolver un problema.
Una vez que el programa informático ya se encuentra escrito, es necesario compilar el código para
que pueda ser ejecutado por la computadora.
El propósito de la programación es crear programas que exhiban un comportamiento deseado.
Características de la Programación
Exactitud y precisión: Un programa debe aceptar datos, procesarlos y generar resultados sin
errores de sintaxis o de lógica; de ahí la necesidad de exactitud y precisión. Integridad o
completitud: Un programa es completo sólo si ejecuta todas las operaciones que el usuario espera
al procesar un conjunto de datos.
Generalidad: La generalidad se entiende en dos sentidos: Un programa bien diseñado se puede
generalizar; es decir puede procesar conjuntos de datos que varían en el número de transacciones
y en la naturaleza de los datos mismos. Las instrucciones se deben elaborar para que no se limiten
a un número específico de transacciones en el conjunto de datos. No debe suponerse que una
parte específica de datos siempre sea de igual tamaño. El programa contiene diferentes opciones
que pueden o no ser aplicadas durante una corrida. Los usuarios pueden seleccionar la opción
adecuada cada vez.
Eficiencia: Debe asegurarse que las instrucciones para procesar datos se selecciones tan rápida y
fácilmente como sea posible. La rapidez y la eficiencia del procesamiento de datos puede variar
debido a: modo como se introducen los datos, orden en que se procesan los datos, instrucciones
particulares que se empleen para controlar el proceso, etc.
Documentación: Consiste en la inclusión de auxiliares que explican con claridad como ocurre el
procesamiento de los datos en un programa. La documentación incluida en un programa es de dos
tipos: externa: No está incluida en el programa mismo sino que va por separado. Comprende:
diagrama de flujo que muestre los pasos y los procedimientos y el orden en el cual tienen lugar;
explicación que describa en el lenguaje común cómo es el procesamiento de los datos; descripción
2. de los datos que van a introducirse y procesarse, incluyendo su tipo y tamaño. Interna: Consiste en
comentarios y descripciones que se insertan entre los enunciados ejecutables de un programa.
Explica la sucesión de los pasos del procesamiento y los objetivos de los diferentes grupo de
enunciados del programa
3. Objetivos de la programación: La programación debe perseguir la
obtención de programas de calidad. Para ello se establece una serie de factores que
determinan la calidad de un programa.
Corrección. Un programa es correcto si hace lo que debe hacer tal y como se
estableció en las fases previas a su desarrollo. Para determinar si un programa hace
lo que debe, es muy importante especificar claramente qué debe hacer el programa
antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
Claridad. Es muy importante que el programa sea lo más claro y legible posible,
para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa
se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo
en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la
fase de creación como en las fases posteriores de corrección de errores,
ampliaciones, modificaciones, etc.
Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
creado y a la cantidad de memoria que necesita, pero hay otros recursos que
también pueden ser de consideración al obtener la eficiencia de un programa,
dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que
genera, etc.).
Portabilidad. Un programa es portable cuando tiene la capacidad de poder
ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la
que se elaboró. La portabilidad es una característica muy deseable para un
programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para
sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos
Windows. Esto permite que el programa pueda llegar a más usuarios más
fácilmente.
Entorno de programación: Es el banco de trabajo del programador
Da soporte a las actividades de la fase de codificación (preparación del código y
prueba de unidades)
Los mismos productos sirven también para el diseño detallado y para las pruebas de
integración.
4. Se sitúa, por tanto, en la parte central del ciclo de desarrollo
Funciones de un Entorno de Programación
Como se ha dicho, la misión de un Entorno de Programación es dar soporte a la preparación
de programas, es decir, a las actividades de codificación y pruebas.
Las tareas esenciales de la fase de codificación son:
o Edición (creación y modificación) del código fuente
o Proceso/ejecución del programa
Interpretación directa (código fuente)
Compilación (código máquina) - montaje - ejecución
Compilación (código intermedio) - interpretación
Otras funciones:
o Examinar (hojear) el código fuente
o Analizar consistencia, calidad, etc.
o Ejecutar en modo depuración
o Ejecución automática de pruebas
o Control de versiones
o Generar documentación, reformar código
o ... y otras muchas más ...
5. Un lenguaje de programación es un idioma artificial diseñado para expresar
computaciones que pueden ser llevadas a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una
máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa
informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de
computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes
pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación'
y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de
programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de
páginas web que no es propiamente un lenguaje de programación, sino un conjunto de
instrucciones que permiten diseñar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo
deben ser almacenados o 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. Una característica relevante de los lenguajes de
programación es precisamente que más de un programador pueda usar un conjunto común
de instrucciones que sean comprendidas entre ellos para realizar la construcción de un
programa de forma colaborativa.
Uso de los lenguajes de programación:
Una vez que se identifica una tarea y se conoce el algoritmo para resolverla, el programador
debe codificarlo en una lista de instrucciones, propias de algún lenguaje de computación.
Los programas pueden ser escritos en cualquier lenguaje de la amplia gama disponibles. La
escogencia del más adecuado, dependerá de factores como la experiencia del programador
con un lenguaje, determinar cuál producirá el programa menos complicado, la flexibilidad y
la compatibilidad del programa como resultado del lenguaje usado.
A continuación se presenta como ejemplo un sencillo programa fuente, escrito en C, el
cual, es un lenguaje de programación que llegó a ser muy popular, y justo al lado se explica
6. la acción que realizará la computadora en respuesta a los comandos del programa. El
programa tiene como finalidad el cálculo del promedio de una lista de cinco números.
En computación se suele hablar de niveles y generaciones de los lenguajes de
programación. Respecto al nivel, se clasifican en lenguajes de bajo y alto nivel. Los
lenguajes de bajo nivel, son aquellos que se asemejan al lenguaje empleado por la
computadora, mientras que los lenguajes de alto nivel, son aquellos que se asemejan al
lenguaje humano.
Los lenguajes de alto nivel son resultado de una evolución, desde los lenguajes de bajo
nivel. La computadora sólo es capaz de comprender su lenguaje máquina. Pero para las
personas no es fácil entender y manejar este código máquina de combinaciones binarias.
Las investigaciones dieron un primer paso que llevó a la evolución desde las hileras de
números binarios del código máquina, a un lenguaje ensamblador, que las representaba
como una serie de comandos más entendibles. Los lenguajes de nivel superior están
orientados más hacia lo que se quiere realizar, que en la manera como se ejecutarán los
comandos.
Generaciones de los lenguajes de programación
Primera generación: Lenguaje máquina Son los lenguajes más básicos. Los lenguajes de
máquina se representan en bytes, los cuales, están compuestos de bits, que son números
binarios o que consisten únicamente de ceros (0) o unos (1). Estos valores pueden
corresponder a que la electricidad esté encendida o apagada en la máquina, o a la presencia
o ausencia de carga magnética en un medio de almacenamiento. A partir de estos dos
estados se forman los esquemas de codificación (como el código ASCII) que permiten
generar letras, números, signos de puntuación y caracteres especiales. Una computadora
sólo es capaz de comprender su lenguaje máquina original, el conjunto de instrucciones
para realizar sus operaciones elementales.
Segunda generación: lenguajes ensambladores:
Están constituidos por nemotécnicos similares a palabras en idioma inglés. En primer
lugar, se crea un archivo fuente con las instrucciones que se desea que la computadora
ejecute, usando un editor, que es una especie de procesador de palabras. El código
fuente es traducido al lenguaje máquina mediante programas traductores
(compiladores). Los programadores rara vez escriben programas de tamaño relevante
en este tipo de lenguajes, debido a que, a pesar que es mucho más fácil que utilizar
código de máquina, siguen siendo altamente detallados (instrucciones muy
básicas). Sólo se hace en los casos donde la velocidad es clave (como en la
programación de juegos de video) y para afinar partes importantes de los programas que
son escritos en lenguajes superiores.
• Tercera generación: Lenguajes de alto nivel:
Son llamados de alto nivel porque se asemejan más al lenguaje que utilizan los
humanos al comunicarse. Fueron desarrollados con la finalidad de facilitar el proceso
de programación. Cuentan con comandos que se acercan más a las palabras de uso
común en lugar de tener que usar combinaciones binarias del código máquina o los
7. comandos básicos del ensamblador. Estos lenguajes hacen más fácil la lectura,
escritura y comprensión de los programas, aunque de manera semejante a los lenguajes
ensambladores, deben ser convertidos a lenguaje máquina, para poder ser usados en la
computadora.
Los programas de la tercera generación son capaces de soportar programación estructurada,
es decir, permiten el uso de estructuras de programación específicas para ramificaciones y
ciclos en el flujo del programa. Por otro lado, resultan más claros puesto que usan palabras
o comandos semejantes al lenguaje normal, lo que permite compartir el desarrollo entre
diferentes programadores. Los programadores que conforman un equipo pueden leer el
código realizado por los demás y comprender la lógica y el flujo de control del programa.
Entre los lenguajes de tercera generación se incluyen:
- FORTRAN (Traductor de Fórmulas: Formula TRANslator), diseñado específicamente
para programas matemáticos y de ingeniería, motivo por el cual, no fue de amplio uso en
computadoras personales. Su uso se dirige especialmente a equipos de cómputo
dedicados a la investigación y la educación. La versión más actual (1990) fue
denominada FORTRAN-90.
- COBOL (Lenguaje simbólico de programación, orientado hacia aplicaciones comerciales
y de gestión: Common Business Oriented Languaje) desarrollado en 1960, con el fin de
solucionar las incompatibilidades de los fabricantes de computadoras. Ganó amplia
aceptación como lenguaje estandarizado llegándose a utilizar ampliamente en los
negocios, pero perdió seguidores en la pasada década. Motivado al problema del año
2000 fueron requeridos programadores especializados en este lenguaje para reprogramar
las millones de líneas de código escritas en COBOL para que tales programas
continuasen funcionando.
- BASIC (Código de instrucción simbólica universal para principiantes: Begginners
Allpurpose Symbolic Instruction Code) comienza como una herramienta para enseñar
sobre programación a estudiantes. Fue desarrollado por Jhon Kemeny y Thomas Kurtz
en 1964. Por su simplicidad se volvió ampliamente popular y usado en educación y entre
los programadores aficionados, pero no ha llegado a ser un lenguaje viable para
aplicaciones comerciales. Esto último se debe a que no posee un amplio repertorio de
herramientas como el que ofrecen otros lenguajes. Además, sus compiladores no
producen archivos ejecutables tan compactos, rápidos y eficientes como los que
producen otros lenguajes.
- PASCAL, nombrado en honor del inventor francés Blas Pascal, es introducido por
Niklaus Wirth en 1971. El Pascal, buscaba superar las limitaciones de los otros lenguajes
de programación y demostrar la manera adecuada de implementar un lenguaje de
cómputo. Ha llegado a considerarse un excelente lenguaje de enseñanza. Las personas
que se inician en la programación le consideran fácil para implementar algoritmos, su
compilador es estricto con el uso de programación estructurada, asegurándose de que los
errores sean señalados al principio.
8. - C, desarrollado a principios de los sesenta por Brian Kernighan y Dennis Ritchie, quienes
buscaban un mejor lenguaje de integrar con el sistema operativo UNIX, para que los
usuarios pudiesen hacer modificaciones y mejoras con facilidad. El código ejecutable
obtenido del lenguaje C, es rápido y eficiente. El C es poderoso, puesto que brinda la
libertad de conseguir que se realice casi cualquier cosa en una computadora. Esta es una
de las razones por la cual se ha vuelto tan popular entre quienes desarrollan software para
aplicaciones comerciales profesionalmente. Su dificultad estriba, en que no es tan
sencillo de aprender en comparación con otros lenguajes.
- C++, Es un lenguaje de principios de los ochenta desarrollado por Bjarne Stroustrup. Es
extremadamente poderoso y eficiente igual que el C. Su aprendizaje implica aprender
todo acerca de C y además aprender sobre la programación orientada a objetos y su
aplicación mediante el C++. Desde su origen ha ido ganando terreno entre quienes
desarrollaban en C.
- Java (1991) es desarrollado por Sun Microsistema. Cuando Internet comenzó a ganar
popularidad como red de comunicaciones a mediados de los noventa, Sun redirige a Java
para convertirlo en un ambiente de programación que permitiese crear sistemas
interactivos y dinámicos (denominados applets) para las páginas Web. La complejidad de
Java es similar a C++, pero ha ido ganando popularidad por la demanda de aplicaciones
para páginas Web, incluso se estima que puede llegar a desplazar a C++ como ambiente
de programación.
Las cinco generaciones de lenguajes de programación
Generación Nombre Particularidad
Específico para cada microprocesador, uso de
Primera De máquina
código binario
Uso de nemotécnicos que abstraen del lenguaje
Segunda Ensamblador
máquina.
Lenguajes estructurados con comandos
Tercera De procedimientos
cercanos al lenguaje común.
Cuarta Orientados a procesos Programas orientados a problemas específicos.
Incluye inteligencia artificial y sistemas
Quinta Natural
expertos.