SlideShare una empresa de Scribd logo
Capítulo 1
En este capítulo veremos en qué consiste la tarea
de programar, qué herramientas se necesitan para llevarla
a cabo, qué herramientas hay disponibles y cuáles
conviene elegir según el tipo de programación que se elija.
Además, construiremos un pequeño programa para contar
las palabras de una frase, el cual nos servirá para tener
nuestra primera experiencia con el lenguaje Pascal.
ATENCIÓN AL LECTOR > drmax@mpediciones.com
PRINCIPIOS BÁSICOS
DE LA PROGRAMACIÓN
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 7
8
INTRODUCCIÓN A LA PROGRAMACIÓN
¿QUÉ ES PROGRAMAR?
(CONCEPTOS BÁSICOS)
> La tarea de escribir un programa o programar consiste en escribir detalla-
da y minuciosamente las instrucciones que debe seguir una computadora pa-
ra realizar una tarea. Estas instrucciones deben escribirse en un lenguaje que
la computadora pueda entender, ya sea en forma directa o luego de una tra-
ducción realizada por un intérprete o un compilador, como se explica más
adelante en este capítulo.
El concepto más importante que hay que comprender antes de ponerse a pro-
gramar es que la computadora carece totalmente de sentido común. Los progra-
mas no deben (idealmente) dejar nada librado al azar, deben cubrir todos los po-
sibles casos que puedan suceder. Por ejemplo, imaginemos que mediante un pro-
grama queremos instruir una computadora para que maneje un auto. El progra-
ma podría ser más o menos así:
1. abrir la puerta del lado del conductor
2. entrar y sentarse frente al volante
3. introducir la llave de encendido
4. girar la llave de encendido presionando levemente el acelerador
5. presionar el embrague
6. usando la palanca de cambios, poner primera marcha
7. soltar el embrague gradualmente mientras se aumenta la presión sobre el acelerador, etc.
Estas instrucciones son, en apariencia, lo suficientemente detalladas como para
que cualquiera, incluso una computadora, pueda seguirlas. Sin embargo, hay
una gran cantidad de situaciones que este programa no prevé y que podrían
derivar en problemas de distinta índole. Por ejemplo, ¿qué pasaría si frente al
auto hubiera una pared? Un ser humano con el mínimo sentido común sabría
que, en vez de poner primera marcha (como le indican las instrucciones),
debería poner marcha atrás para arrancar. Pero la computadora hace
exactamente lo que le indica el programa, con lo cual, por más que vea que hay
una pared por delante, pondría primera y se chocaría tranquilamente con ella.
Es por eso que los programas deben prever cualquier eventualidad que pueda
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 8
9
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
ocurrir lidiando con ella debidamente. En el caso de nuestro programa para
conducir un auto, deberíamos reemplazar la instrucción:
6. usando la palanca de cambios, poner primera marcha
por un conjunto de instrucciones que involucran el análisis de una condición:
6. si no hay obstáculos adelante:
usando la palanca de cambios poner primera marcha
si no:
usando la palanca de cambios poner marcha atrás
De esta forma, le estamos dando al programa la capacidad de decidir si debe
avanzar o retroceder el auto en función de la existencia de obstáculos delante del
mismo. De paso, vamos captando la idea de lo que son las estructuras de
decisión, que veremos más profundamente en el Capítulo 4.
Para que nuestro programa sea realmente “robusto” (se denomina así a un
programa cuando tiene muy pocas probabilidades de fallar), tendríamos que
evaluar muchas otras posibles condiciones, por ejemplo, que tampoco haya
obstáculos detrás del auto, que el auto tenga nafta en el tanque, si fuera de
noche, encender las luces, etc.
Probablemente, una de las tareas más difíciles de la programación sea prever
todas las causas posibles que pueden provocar que un programa falle. Tanto es así
que ningún programador en sus cabales es capaz de afirmar con total seguridad
que un programa está ciento por ciento libre de errores.
PROGRAMACIÓN DE JUEGOS
En los albores de la programación
de juegos para PC, el lenguaje en-
samblador era el preferido por esta
“raza” de programadores. Con el
tiempo fueron apareciendo librerías
de alto nivel para manejo de gráfi-
cos y animaciones, y hoy los progra-
madores de juegos prefieren len-
guajes estructurados u orientados a
objetos, como el C o el C++, para
hacer sus creaciones. El lenguaje
C++ conserva todas las capacidades
de su antecesor y le suma ventajas
respecto del manejo de memoria.
›
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 9
10
INTRODUCCIÓN A LA PROGRAMACIÓN
> En párrafos anteriores vimos que los programas se escriben en lenguajes que
pueden traducirse a una forma que la computadora pueda entender (como vere-
mos más adelante, a esta forma se la llama lenguaje de máquina). Esto hizo que,
a lo largo de la historia de la programación, se fueran creando distintos lengua-
jes para distintas necesidades, cada uno con su correspondiente “traductor” a len-
guaje de máquina. Por lo general, los lenguajes de programación surgieron de
centros de investigación en universidades o empresas, cada uno con el objetivo
de cubrir alguna necesidad en particular.
Así nacieron, por ejemplo, el FORTRAN (por Formula Translator, o traduc-
tor de fórmulas), pensado especialmente para que los científicos de distintas
disciplinas pudieran escribir programas para hacer cálculos de gran compleji-
dad, y el COBOL (por Common Business Oriented Language o lenguaje co-
mún orientado a negocios), que fue pensado con el objetivo de escribir pro-
gramas para administrar empresas.
LOS DISTINTOS PARADIGMAS Y SUS LENGUAJES
Con el tiempo, los investigadores en ciencias de la computación observaron
que, más allá del propósito para el que fueron creados, los lenguajes podían di-
ferenciarse por la forma de trabajo que presentan al programador, ofreciendo di-
versas formas de “ver” y “pensar” un programa antes de escribirlo.
Así comenzaron a surgir distintos pa-
radigmas de programación, cada uno
representado por una familia de len-
guajes (Figura 1). Por ejemplo, a la for-
ma tradicional de programar –que con-
siste en detallar la secuencia de pasos
que debe seguir la computadora para
realizar una tarea– se la denominó pro-
gramación imperativa, porque el pro-
grama da órdenes que la computadora
debe cumplir obedientemente.
LENGUAJES DE PROGRAMACIÓN:
¿POR QUÉ HAY TANTOS?
(PARADIGMAS, LENGUAJES Y FORMAS DE PROGRAMAR)
LOS LENGUAJES .NET
El entorno .NET de Microsoft presen-
ta un marco de trabajo (llamado Fra-
mework) en el que se pueden utilizar
lenguajes muy diversos. Todos ellos
tienen la particularidad de ser orien-
tados a objetos y de compartir una
misma interfaz mediante la cual inte-
ractúan con el sistema operativo.
›
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 10
11
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
Figura 1. Los lenguajes más comunes –C, Pascal, Basic, FORTRAN, etc.– pertenecen al paradigma
de programación imperativa; los dos primeros enfatizan el concepto de programación estructurada.
Una rama dentro de la programación imperativa es la programación estructu-
rada, cuyo propósito fundamental es construir programas claros, fáciles de en-
tender y de mantener. Para ello se basa en el uso de módulos independientes
(funciones y procedimientos) que separan claramente las diferentes tareas que
Programación imperativa
El programa detalla los pasos necesarios para realizar una tarea. Existe un estado global de
programa que es modificado por una secuencia de órdenes o instrucciones.
Programación estructurada
Los programas se particionan
en múltiples tareas que encierran
funciones bien definidas y limitan
la visibilidad de los datos. Además,
impone restricciones en el diseño
de los algoritmos que facilitan
su posterior modificación
y mantenimiento.
Programación orientada
a objetos
Introduce el concepto de objeto
como forma de encapsular
algoritmos y datos en una unidad
indivisible, con el fin de que
los programas simulen
el comportamiento de los objetos del
mundo real.
Programación declarativa
Los programas describen el resultado a obtener y los mecanismos disponibles,
pero no detallan los pasos necesarios para obtenerlo
Programación funcional
Emplea expresiones funcionales para
combinar valores básicos
y obtener los resultados deseados.
Programación lógica
Se basa en el cálculo de predicados
para obtener resultados a partir
de hechos básicos y mediante la
aplicación de reglas de inferencia.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 11
12
INTRODUCCIÓN A LA PROGRAMACIÓN
realiza un programa y en estructuras que conducen claramente el flujo de ejecu-
ción (más sobre esto en el Capítulo 4). Algunos lenguajes que enfatizan el con-
cepto de programación estructurada son el C y el Pascal.
En contraposición a la programación imperativa se encuentra el paradigma de
programación declarativa, que en lugar de dar una secuencia detallada de órde-
nes para que la computadora lleve a cabo, simplemente enuncia el resultado que
se desea obtener y se deja que la computadora elija la forma más conveniente de
obtenerlo. Este paradigma no es tan común como el de programación imperati-
va y se usa para aplicaciones que involucran inteligencia artificial, simulaciones
científicas, etc. Dentro del paradigma de programación declarativa se encuentran
los lenguajes de programación lógica, como el ProLog y el Lisp, los lenguajes
de programación funcional, como Haskell, y otros lenguajes más específicos,
como el SQL (Structured Query Language), cuyo propósito es el armado de con-
sultas de bases de datos.
Otro paradigma importante derivado de la programación imperativa es el de la
programación orientada a objetos. De gran popularidad en nuestros días, este
paradigma permite pensar una aplicación como un conjunto de objetos autóno-
mos que interactúan entre sí enviándose mensajes, con los cuales un objeto le “pi-
de” a otro que realice una determinada tarea o le solicita determinados datos (Fi-
gura 2). La ventaja de esta forma de programación es que el desarrollo de las fun-
ciones está encapsulado dentro de cada objeto. En otras palabras, a un objeto no
le preocupa cómo hace otro objeto para cumplir su función; le basta saber que,
cuando se lo pida, hará su trabajo.
Figura 2. En la programación orientada a objetos se facilita la modificación y el mantenimiento
de los programas, ya que cualquier modificación interna a un objeto no afectará a los otros.
Objeto Imagen
Objeto Texto
Redibujar
Redibujar
Objeto Ventana
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 12
13
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
¿QUÉ LENGUAJE CONVIENE ELEGIR?
La elección de un lenguaje de programación no es algo trivial. Antes que nada, de-
bemos determinar qué clase de programas pensamos hacer. Si, por ejemplo, apun-
tamos a hacer programas que manejen bases de datos, nos convendrá dominar el
lenguaje SQL. Pero el SQL no es muy adecuado para crear interfaces de usuario, por
lo cual deberemos complementarlo con algún lenguaje que sí lo sea; por ejemplo,
algún lenguaje que ofrezca un entorno visual, como Visual Basic o Delphi.
Los lenguajes puramente declarativos –el Haskell, el ProLog o el Lisp– son usa-
dos principalmente por investigadores y programadores muy vanguardistas en
áreas como la inteligencia artificial.
Para tareas de programación más cotidianas –como podría ser escribir un pro-
grama para ordenar un conjunto de datos–, la mayoría de los programadores em-
plea lenguajes de propósito general propios de la programación estructurada, en-
tre los cuales los más representativos son el Pascal y el C. Estos dos lenguajes son
similares en su capacidad expresiva, pudiéndose utilizar cualquiera de los dos in-
distintamente para implementar cualquier programa estructurado. En particular,
el Pascal es más fácil de aprender debido a que la mayoría de sus instrucciones
son vocablos del idioma inglés (lamentablemente, no hay un Pascal en español),
mientras que el C es más sintético, pues utiliza menos palabras y más símbolos
para representar las instrucciones Tanto el Pascal como el C tienen versiones
orientadas a objetos (en el caso del C se denomina C++), lo cual les permite man-
tenerse vigentes ante las “nuevas modas” en materia de programación, a diferen-
cia de otros lenguajes, como por ejem-
plo, el FORTRAN o el COBOL, que
han caído en desuso.
PSEUDOCÓDIGO
Existe un lenguaje de programación
que, curiosamente, no se utiliza para
crear programas ejecutables. Sirve sola-
mente para que el programador expre-
se sus ideas de una forma clara y que es-
tas ideas puedan comunicarse a otros
programadores para que ellos las imple-
menten en el lenguaje que prefieran.
INTERFAZ
Interfaz es todo aquello que media
entre dos mundos diferentes crean-
do la posibilidad de comunicación;
en este caso, entre el hombre y la
máquina. En la actualidad las inter-
faces están compuestas por venta-
nas, botones y barras, pero en el co-
mienzo de la programación todo se
realizaba por medio de comandos (o
sea, escribiendo).
›
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 13
14
INTRODUCCIÓN A LA PROGRAMACIÓN
Este lenguaje del que hablamos es el pseudocódigo. A pesar de que no sirve pa-
ra crear en forma directa programas ejecutables, es una herramienta de gran uti-
lidad para programar “en papel”; es decir, para esbozar cómo un programa debe
llevar a cabo su tarea.
Por ejemplo, el siguiente programa en pseudocódigo se utiliza para encontrar el
mayor elemento dentro de una lista de datos:
Función BuscarMaximo(lista)
Mayor = lista(1)
Contador = 2
Mientras Contador ≤ longitud(lista) hacer
Si lista(Contador) > Mayor entonces
Mayor = lista(Contador)
Fin Si
Contador = Contador + 1
Fin Mientras
Devolver Mayor
Fin Función
Dado que no se trata de un lenguaje “formal”, nos da la libertad de escribirlo
en el idioma de nuestra preferencia (en este caso, en español).
Otra gran ventaja del pseudocódigo es que nos permite hacer refinamientos su-
cesivos de un programa; esto quiere de-
cir que nuestro programa, al principio,
puede expresar las instrucciones de una
forma muy general (por ejemplo, en vez
de detallar todas las instrucciones para
recorrer una lista de datos, simplemente
escribimos: Recorrer Lista), y luego de
varios refinamientos del programa, espe-
cificamos cada vez más las instrucciones,
hasta llegar a un punto en el que prácti-
camente pueden traducirse a un verdade-
ro lenguaje de programación.
EJECUTABLES FICTICIOS
Algunos entornos de desarrollo –co-
mo el Visual Basic– dan como resul-
tado archivos ejecutables (.EXE) que
a simple vista parecen programas
autónomos o stand-alone. Sin em-
bargo, contienen instrucciones que
debe interpretar un componente de-
nominado run-time, que debe estar
instalado en la computadora de des-
tino para que el programa se ejecute.
›
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 14
15
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
ENTORNOS DE PROGRAMACIÓN
Y HERRAMIENTAS
(LA ELECCIÓN DE LOS ELEMENTOS PARA PROGRAMAR)
> Además de elegir un lenguaje a utilizar, el programador debe elegir qué entorno
de trabajo y qué herramientas empleará para programar. Aquí las opciones son muy
numerosas, ya que un mismo lenguaje puede ofrecer entornos muy distintos con los
cuales trabajar. Las dos herramientas básicas que debe brindar un entorno de pro-
gramación son el editor de código (en donde se escriben los programas fuente) y el
compilador o intérprete, que permite ejecutar y poner a prueba los programas es-
critos. El entorno más rudimentario posible consta de un editor de texto común y
corriente (como puede ser el Bloc de notas) y un compilador que lee los archivos de
código fuente y los transforma en archivos ejecutables (.EXE). En el otro extremo,
los entornos más completos ofrecen, por ejemplo, editores de texto “inteligentes”
que corrigen la sintaxis a medida que se escribe el programa, intérpretes que permi-
ten ejecutar los programas sin necesidad de compilarlos, organizadores de archivos
o de objetos, herramientas de depuración para ejecutar los programas línea por lí-
nea, editores de pantallas o de ventanas para diseñar visualmente las interfaces de
usuario, editores de menús, entre otras herramientas (Figura 3).
Figura 3. El entorno
de programación
de Visual Basic ofrece
múltiples herramientas
para diseñar ventanas,
depurar código,
etcétera.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 15
16
INTRODUCCIÓN A LA PROGRAMACIÓN
EDITORES DE CÓDIGO
La elección de un buen editor de código es fundamental para el programador,
ya que es la herramienta con la que trabajará la mayor parte del tiempo. Los en-
tornos de programación más completos siempre incluyen un editor propio, el
cual suele brindar algunas facilidades como indentación automática (esto signi-
fica que las líneas de código se acomodan solas, con la sangría que corresponda),
verificación de sintaxis mientras se escribe, acceso rápido a instrucciones y pala-
bras reservadas del lenguaje, etcétera (Figura 4).
Figura 4. Los editores de código modernos ofrecen algunas facilidades como el
uso de colores para distinguir distintos elementos del código y la visualización
separada de funciones y procedimientos, entre otras.
Además de brindar un editor de código propio, los entornos de programación
permiten incorporar código fuente escrito “por fuera” del entorno. De esta for-
ma, el programador siempre tiene la posibilidad de utilizar cualquier editor de
texto de su preferencia para escribir los programas, y luego incorporarlos en el
entorno para probarlos y corregirlos. Los programadores más experimentados
suelen utilizar editores completamente básicos como Notepad, un programa que
viene incluido en Windows desde sus primeras versiones. Sólo para expertos.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 16
17
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
ENTORNOS VISUALES
A partir del surgimiento del popular lenguaje Visual Basic, comenzó un con-
cepto nuevo en programación que dio en llamarse programación visual. Esta
forma de programar emplea elementos visuales –como por ejemplo, ventanas,
botones, cuadros de texto, etc.– para diseñar los programas. Los elementos visua-
les, también llamados controles, poseen cierta “inteligencia” para saber qué ha-
cer cuando el usuario interactúa con ellos (por ejemplo, cuando hace clic sobre
un botón). De esta forma, ahorran bastante trabajo de programación y evitan la
necesidad de programar al detalle cada cosa que deben hacer los controles.
A pesar de su aparente facilidad para crear programas, los entornos visuales tie-
nen sus trampas: por utilizar elementos estándares de la interfaz gráfica del siste-
ma operativo, deben preverse gran cantidad de eventos posibles que pueden afec-
tar a nuestros programas. Por ejemplo, el programa debe estar preparado para
que el usuario lo cierre en cualquier momento, sin importar lo que esté hacien-
do. También debe preverse que se pueda minimizar o maximizar la ventana del
programa, o que ésta quede oculta detrás de la ventana de otro programa, y que
ninguno de estos sucesos genere errores.
LIBRERÍAS
Las librerías (library, en inglés, que en realidad debería traducirse como “bi-
blioteca”) son repositorios de elementos listos para usar que podemos aprove-
char en nuestros programas para no tener que escribir código que ya ha sido es-
crito por otros (o incluso por nosotros mismos). Todos los lenguajes y entornos
de programación brindan alguna forma de acceso a diversas librerías. Éstas sue-
len agrupar elementos con similar funcionalidad; por ejemplo, es común encon-
trar librerías para manejo de funciones
matemáticas. Si nos enfrentamos con
la necesidad de escribir un programa
que en algún momento calcule la raíz
cuadrada de un número, entonces ha-
cemos referencia a la librería de fun-
ciones matemáticas, y luego podremos
utilizar la función para calcular raíces
cuadradas, sin preocuparnos por cómo
esté programada dicha función.
INTERFACES GRÁFICAS
La programación visual es ideal pa-
ra crear programas que emplean la
interfaz gráfica estándar del sistema
operativo, ya que los controles utili-
zados para darles funcionalidad a
los programas son elementos pro-
pios de dicha interfaz.
›
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 17
18
INTRODUCCIÓN A LA PROGRAMACIÓN
COMPILADORES E INTÉRPRETES
(DIFERENCIAS Y USOS)
> Tal como vimos anteriormente en este capítulo, el código fuente de los pro-
gramas que escribimos debe traducirse en algún momento a código ejecutable,
ya que de otra forma la computadora no lo podría entender y, por ende, el pro-
grama no podría ejecutarse.
Hay dos formas de traducir código fuente en código ejecutable: compilación e
interpretación. Estas formas difieren en cuanto al momento en que se realiza la
mencionada traducción y son los compiladores e intérpretes –programas que,
por lo general, se encuentran integrados al entorno de programación– quienes las
llevan a cabo. Luego veremos la diferencia entre unos y otros.
LENGUAJES DE ALTO NIVEL Y LENGUAJE DE MÁQUINA
Los lenguajes de programación que usamos habitualmente (Basic, Pascal, C,
etc.) utilizan instrucciones llamadas de alto nivel. Al pasar un programa escrito
en alguno de estos lenguajes por un compilador o un intérprete, las instruccio-
nes de alto nivel son traducidas a instrucciones en lenguaje de máquina, tam-
bién se llamadas instrucciones de bajo nivel.
En general, cada instrucción de alto nivel se traduce en numerosas instrucciones de
bajo nivel. Por ejemplo, una simple instrucción de alto nivel podría ser la siguiente:
c := a + b;
(Como veremos más adelante, esto significa: sumar a y b y almacenar el resul-
tado en c.)
Al traducirse a lenguaje de máquina, la instrucción anterior se convierte en una
secuencia de instrucciones parecida a ésta:
1. buscar posición de memoria de a
2. copiar el valor en la posición de memoria de a al registro 1
3. buscar posición de memoria de b
4. sumar al valor del registro 1 el valor en la posición de memoria de b
5. buscar posición de memoria de c
6. almacenar en la posición de memoria de c el valor del registro 1
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 18
19
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
Si bien el ejemplo anterior
no tiene el aspecto de un
programa en lenguaje de má-
quina –dado que tales pro-
gramas se componen entera-
mente de números hexade-
cimales y pequeñas instruc-
ciones llamados mnemóni-
cos (Figura 5)–, sirve para
mostrar qué hacen sus ins-
trucciones, ya que los pro-
gramas en lenguaje de má-
quina se basan enteramente
en el manejo de posiciones
de memoria, registros del procesador y operaciones matemáticas elementales.
Si bien es posible programar directamente en lenguaje de máquina, la gran di-
ficultad que implica esta tarea hace que siempre sea necesario recurrir a compi-
ladores e intérpretes que permitan programar en algún lenguaje de alto nivel.
CÓDIGO FUENTE, CÓDIGO OBJETO Y CÓDIGO EJECUTABLE
Cuando se escribe un programa en algún lenguaje de alto nivel, lo que se ob-
tiene es un programa en código fuente, el cual debe traducirse a lenguaje de
máquina para que pueda ejecutarse. Cuando se procesa un programa en código
fuente con un compilador, lo que se obtiene es un programa en código objeto.
Este programa es “casi” un programa ejecutable, sólo falta vincularlo con las li-
brerías externas al programa para convertirlo en código ejecutable.
Este proceso lo lleva a cabo una he-
rramienta llamada vinculador (Figura
6). En los entornos de programación
modernos, prácticamente no se hace
distinción entre el compilador y el
vinculador, dado que ambos son un
proceso indivisible.
Por eso es que del código fuente se
pasa directamente al ejecutable.
NÚMEROS HEXADECIMALES
El sistema hexadecimal utiliza una
base de 16 dígitos para representar
los números, en lugar de los 10 dígi-
tos del sistema decimal. Para agregar
los seis dígitos adicionales se em-
plean las letras de la A (1) a la F (16).
›
Figura 5. Los programas en assembler (código de máquina)
son muy eficientes en su ejecución, pero difíciles de entender.
Aquí, la versión del programa “Hello World” en assembler.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 19
20
INTRODUCCIÓN A LA PROGRAMACIÓN
Figura 6. El código fuente atraviesa distintas etapas hasta llegar a ser un programa ejecutable.
DIFERENCIAS ENTRE COMPILAR E INTERPRETAR
Ya vimos que al compilar un programa obtenemos como resultado un ejecuta-
ble (en general, un archivo .EXE). Para probar cómo funciona, simplemente de-
bemos ejecutarlo como a cualquier otro programa. Si al probarlo encontramos
que cometimos algún error (que suele ser lo más común), tendremos que editar
el código fuente, luego buscar el error, corregirlo, compilar nuevamente y volver
a probar. Deberemos repetir este proceso tantas veces como sea necesario para
obtener un programa tan libre de errores como sea posible. Todo el ciclo de co-
rrección del programa, la compilación y la prueba constituye la depuración o de-
bugging de un programa.
Para agilizar este ciclo se utilizan los intérpretes en lugar de los compilado-
res. A diferencia del compilador, el intérprete no compila todo el programa de
una vez, sino que lee y compila una por una las instrucciones de un programa
fuente, en el orden de ejecución. Luego de compilar cada instrucción, la eje-
cuta (Figura 7).
La utilización de un intérprete acelera el proceso de depuración por el hecho
de que, para probar un programa, no necesitamos realizar la compilación del
programa completo. Por lo general, el intérprete está integrado al entorno de
programación y esto, en realidad, nos permite ejecutar (en forma interpretada)
el programa que estamos escribiendo sin necesidad de dejar el entorno de tra-
bajo. A su vez, otra ventaja que otorga el intérprete es la posibilidad de ejecutar
Código fuente Compilador Código objeto Vinculador
Programa ejecutable
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 20
21
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
paso a paso: esto significa que, luego de compilar y ejecutar cada instrucción,
el intérprete queda a la espera de que le digamos que ejecute la próxima instruc-
ción. De esta forma, tenemos la posibilidad de verificar el estado de un progra-
ma luego de ejecutar cada instrucción, con lo cual podremos detectar fácilmen-
te los errores. En cualquier momento podemos detener la ejecución para volver
al editor de código y hacer las correcciones que sean necesarias.
Lógicamente, la ejecución de un programa en forma interpretada es más lenta
que la ejecución en forma compilada, puesto que el programa compilado ya fue
traducido en su totalidad a lenguaje de máquina y no es necesario traducir cada
instrucción antes de ejecutarla. Es por esta razón que no se pueden hacer prue-
bas de la velocidad (o de la performance) de un programa ejecutándolo a través
de un intérprete, puesto que la velocidad observada no será la velocidad real a la
que puede ejecutar el programa.
Código fuente
Compilación:
Interpretación:
Código fuente Intérprete
Compilador +
Vinculador
Programa ejecutable
Ejecución inmediata
Figura 7. Otra de las diferencias entre compiladores e intérpretes
es que este último no genera como resultado ningún programa ejecutable.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 21
22
INTRODUCCIÓN A LA PROGRAMACIÓN
PRIMEROS PASOS EN PASCAL
(DESCRIPCIÓN DEL LENGUAJE Y LA PRIMERA PRÁCTICA)
> El lenguaje Pascal fue creado en el año 1968 como una herramienta didácti-
ca para el aprendizaje de técnicas de programación. A pesar de sus años, Pascal
sigue vigente hoy en día a través de implementaciones modernas, como el len-
guaje Delphi, que es capaz de utilizarse en el entorno .NET de Microsoft.
Pascal se caracteriza por su poder para crear programas fácilmente entendibles,
incluso para quien no conoce el lenguaje a fondo. Su similitud con el pseudocó-
digo hace que resulte fácil transformar un programa esbozado mediante este
pseudolenguaje en una implementación plenamente funcional.
Por todas estas cualidades es que elegimos el lenguaje Pascal para ejemplificar
los conceptos de programación vertidos a lo largo de este libro. Para crear y pro-
bar los programas, utilizaremos Irie Pascal, una herramienta shareware de fácil
utilización que presenta una interfaz gráfica estándar de Windows, a diferencia
de la mayoría de los entornos de programación en Pascal, que sólo ofrecen una
interfaz de usuario basada en caracteres.
El instalador de Irie Pascal puede obtenerse en Internet, en la dirección www.
irietools.com/iriepascal/download.html. Luego de bajar a la computadora el
archivo del instalador (denominado ipw-eval.exe), la herramienta se instala sim-
plemente al ejecutar dicho archivo y seguir los pasos del asistente. Una vez con-
cluida la instalación, podrá accederse a Irie Pascal a través del menú Inicio de
Windows, en la opción Programas/Irie Pascal Evaluation Copy.
OTROS ENTORNOS DE DESARROLLO EN PASCAL
Además de Irie Pascal, existen muchos
entornos de desarrollo que pueden uti-
lizarse para programar en este len-
guaje, algunos más poderosos e inclu-
so gratuitos. Uno de ellos es Turbo
Pascal, la herramienta que usan
muchos estudiantes universitarios,
que la empresa Borland ha decidido
ofrecer gratuitamente. Otro entorno
que ha ganado amplia popularidad es
Free Pascal, una herramienta de dis-
tribución libre y de código abierto (con
licencia GNU), similar en muchos as-
pectos a Turbo Pascal, pero con unas
cuantas mejoras. Si bien estas herra-
mientas son más poderosas que Irie
Pascal, tienen la desventaja de ser
más difíciles de usar.
›
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 22
23
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
EL ENTORNO DE TRABAJO
Irie Pascal ofrece un entorno amigable de programación para trabajar en len-
guaje Pascal. Brinda una interfaz de usuario basada en Windows, si bien los
programas que genera se ejecutan en una ventana del intérprete de comandos
(o una ventana de MS-DOS, según la versión de Windows que se utilice). Es-
to significa que los programas creados en Irie Pascal no utilizan los elementos
de la interfaz gráfica de Windows, tales como ventanas, botones, barras de
desplazamiento, etc. Pero esto no impide utilizarlo para aprovechar a pleno las
características del lenguaje Pascal.
La pantalla principal de trabajo de Irie Pascal la constituye el editor de código
(Figura 8). Éste no se diferencia mucho del Bloc de notas de Windows, excepto
por algunas facilidades para la programación tales como indentación (sangría)
automática o selección de bloques. Además, es capaz de manejar múltiples ven-
tanas, lo cual permite trabajar sobre varios programas a la vez.
Figura 8. El editor de código es la principal ventana de trabajo del entorno Irie Pascal.
NUESTRO PRIMER PROGRAMA PASCAL
A continuación escribiremos un programa Pascal sencillo que pide al usuario
que escriba una frase y luego cuenta la cantidad de palabras contenidas en ella.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 23
24
INTRODUCCIÓN A LA PROGRAMACIÓN
PXP 01 | LA PRIMERA PRUEBA …
[1] Entre en Irie Pascal y cree un archivo en blanco (File/New).
[2] Escriba el siguiente programa:
Program ContarPalabras;
Var
Frase: String;
Begin
Write(‘Escriba una frase: ‘);
Readln(Frase);
Writeln(‘Esa frase tiene ‘, CountWords(Frase), ‘ palabras.’);
End.
[3] Grábelo (File/Save) con el nombre ContarPalabras.pas. Tome nota de la
carpeta en donde lo guarda, pues después deberá buscarlo para poder
ponerlo a prueba.
[4] Acceda a la opción de menú Project/Choose Program…, y luego busque y
seleccione el archivo ContarPalabras.pas en donde lo grabó en el paso 3.
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 24
25
›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN
[5] Acceda a la opción de menú Project/Compile (o directamente presione F9).
Aparecerá una ventana que muestra los resultados de la compilación. Si
en esta ventana se indica que hay errores, vuelva a la ventana de edición
de código y revise el programa. Tenga en cuenta que debe ser idéntico al
código escrito en el paso 2, sin omitir ni agregar ningún espacio ni signo
de puntuación.
[6] Ejecute el programa accediendo a la opción de menú Project/ Run (o CON-
TROL+F9). Aparecerá una ventana del intérprete de comandos en la que
deberá escribir una frase cualquiera y presionar ENTER. Luego el progra-
ma le indicará cuántas palabras tiene la frase escrita.
w
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 25
26
INTRODUCCIÓN A LA PROGRAMACIÓN
ACTIVIDADES DE AUTOEVALUACIÓN‹‹
Una serie de consignas y actividades para repasar los principales conceptos
tratados en este capítulo y, de esta manera, afianzar el aprendizaje:
> 1. Trabajamos sobre un lenguaje de programación denominado “Damas”,
que tiene un conjunto de instrucciones muy reducido que sirve para mo-
ver una ficha sobre un tablero cuadriculado, de a una casilla por vez:
INSTRUCCIONES DEL LENGUAJE “DAMAS”
MoverArriba: mueve la ficha a la casilla superior respecto de su posición actual.
MoverDerecha: mueve la ficha a la casilla derecha respecto de su posición actual.
MoverAbajo: mueve la ficha a la casilla inferior respecto de su posición actual.
MoverIzquierda: mueve la ficha a la casilla izquierda respecto de su posición actual.
Supongamos que la ejecución de un programa escrito en el lenguaje “Da-
mas” siempre comienza con la ficha colocada en la casilla superior izquier-
da del tablero. Escriba un programa en lenguaje “Damas” que desplace la
ficha hasta la casilla inferior derecha, en un tablero de cuatro por cuatro.
> 2. Ahora contamos con una versión más potente del lenguaje, llamada
“Damas++”. Esta versión agrega una nueva instrucción:
INSTRUCCIÓN AGREGADA EN “DAMAS++”
RepetirHastaUltimaCasilla: repite todas las instrucciones anteriores del programa,
hasta que la ficha se encuentra en la casilla inferior derecha.
Escriba un programa en lenguaje “Damas++” que desplace la ficha hasta
la casilla inferior derecha en un tablero cuadrado de cualquier dimensión.
> 3. Escriba un programa en “Damas++” que haga que la ficha se mueva
siempre en forma circular entre los cuatro casilleros superiores izquier-
dos del tablero.
> 4. ¿Cuál es la diferencia entre un compilador y un intérprete?
> 5. ¿Qué ventajas tienen los lenguajes de programación estructurados?
01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 26

Más contenido relacionado

La actualidad más candente

Int a la computacion
Int a la computacionInt a la computacion
Int a la computacion
José Leonardo Cámara G.
 
Programcion
ProgramcionProgramcion
Programcion
william79753
 
Lenguaje de programacion de c++
Lenguaje de programacion de c++Lenguaje de programacion de c++
Lenguaje de programacion de c++
zoymar graterol
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
Tensor
 
Clasificación y descripción de los programas informáticos
Clasificación y descripción de los programas informáticosClasificación y descripción de los programas informáticos
Clasificación y descripción de los programas informáticos
MilagrosJacqueline
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
Anel Sosa
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
Camilo Rodriguez
 
Programación
ProgramaciónProgramación
Programación
ivanina2013
 
Cristian david castro
Cristian david castroCristian david castro
Cristian david castro
criistiancas
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
lupitagarcia07
 
Algoritmos y Diagramas
Algoritmos y DiagramasAlgoritmos y Diagramas
Algoritmos y Diagramas
GuadalupeMatamoros
 
Prograbasica 01
Prograbasica 01Prograbasica 01
Prograbasica 01
cun
 
Pteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacionPteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacion
ErikValladarez
 
curso virtual lenguajes de programacion
curso virtual lenguajes de programacion curso virtual lenguajes de programacion
curso virtual lenguajes de programacion
ktrin07
 
Software aplicado 2
Software aplicado 2Software aplicado 2
Software aplicado 2
carlos
 
Programación
ProgramaciónProgramación
Programación
Pro Search, Inc.
 
La programación
La programaciónLa programación
La programación
Frank Muñante
 

La actualidad más candente (17)

Int a la computacion
Int a la computacionInt a la computacion
Int a la computacion
 
Programcion
ProgramcionProgramcion
Programcion
 
Lenguaje de programacion de c++
Lenguaje de programacion de c++Lenguaje de programacion de c++
Lenguaje de programacion de c++
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Clasificación y descripción de los programas informáticos
Clasificación y descripción de los programas informáticosClasificación y descripción de los programas informáticos
Clasificación y descripción de los programas informáticos
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Programación
ProgramaciónProgramación
Programación
 
Cristian david castro
Cristian david castroCristian david castro
Cristian david castro
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
Algoritmos y Diagramas
Algoritmos y DiagramasAlgoritmos y Diagramas
Algoritmos y Diagramas
 
Prograbasica 01
Prograbasica 01Prograbasica 01
Prograbasica 01
 
Pteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacionPteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacion
 
curso virtual lenguajes de programacion
curso virtual lenguajes de programacion curso virtual lenguajes de programacion
curso virtual lenguajes de programacion
 
Software aplicado 2
Software aplicado 2Software aplicado 2
Software aplicado 2
 
Programación
ProgramaciónProgramación
Programación
 
La programación
La programaciónLa programación
La programación
 

Destacado

Lenguaje
LenguajeLenguaje
Lenguaje
Alixg19
 
Presentación1
Presentación1Presentación1
Presentación1
Karina Funez
 
Programacion
ProgramacionProgramacion
Programacion
Pedazito Ska
 
Lenguaje de programacion presentacion.
Lenguaje de programacion presentacion.Lenguaje de programacion presentacion.
Lenguaje de programacion presentacion.
Fj Lezama
 
Second Harvest Social Media Measurement
Second Harvest Social Media MeasurementSecond Harvest Social Media Measurement
Second Harvest Social Media Measurement
Michelle Berg
 
Reporte p1 - Computación para Ingenieros
Reporte p1 - Computación para IngenierosReporte p1 - Computación para Ingenieros
Reporte p1 - Computación para Ingenieros
krash2406
 
Buenos Aires Consume...
Buenos Aires Consume...Buenos Aires Consume...
Buenos Aires Consume...
faciliotadora417
 
How to Build a City on a Lake
How to Build a City on a LakeHow to Build a City on a Lake
How to Build a City on a Lake
PhillipRamirez01
 
Estrategias Para Comércio Justo
Estrategias Para Comércio Justo   Estrategias Para Comércio Justo
Estrategias Para Comércio Justo
Rosemary Gomes
 
Proyecto de aula de icc
Proyecto de aula de iccProyecto de aula de icc
Proyecto de aula de icc
Lesters1995
 
Presentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPresentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y Utilerias
Petros Peña Vallejo
 
Point-of-sale integrated mobile transacting ecosystem
Point-of-sale integrated mobile transacting ecosystemPoint-of-sale integrated mobile transacting ecosystem
Point-of-sale integrated mobile transacting ecosystem
Paul Greeff
 
Mahesh Gangurde Seo PPC
Mahesh Gangurde Seo PPCMahesh Gangurde Seo PPC
Mahesh Gangurde Seo PPC
Mahesh Gangurde
 
Amerikaanse Revolutie
Amerikaanse RevolutieAmerikaanse Revolutie
Amerikaanse Revolutie
Jennefer Van Loon
 
Presentation1
Presentation1Presentation1
Presentation1
Flair Ayshea Beliso
 
JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...
JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...
JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...
IEEEGLOBALSOFTTECHNOLOGIES
 
Audience Research - Frank
Audience Research - FrankAudience Research - Frank
Audience Research - Frank
AlecCavellucci-Meyer
 
mohammed ilyas
mohammed ilyasmohammed ilyas
mohammed ilyas
mohammed ilyas
 
Tehnoloģijas un sabiedriba 08102013
Tehnoloģijas un sabiedriba 08102013Tehnoloģijas un sabiedriba 08102013
Tehnoloģijas un sabiedriba 08102013Janis Bergs
 

Destacado (20)

Lenguaje
LenguajeLenguaje
Lenguaje
 
Presentación1
Presentación1Presentación1
Presentación1
 
Programacion
ProgramacionProgramacion
Programacion
 
Lenguaje de programacion presentacion.
Lenguaje de programacion presentacion.Lenguaje de programacion presentacion.
Lenguaje de programacion presentacion.
 
Second Harvest Social Media Measurement
Second Harvest Social Media MeasurementSecond Harvest Social Media Measurement
Second Harvest Social Media Measurement
 
Befugnisse
BefugnisseBefugnisse
Befugnisse
 
Reporte p1 - Computación para Ingenieros
Reporte p1 - Computación para IngenierosReporte p1 - Computación para Ingenieros
Reporte p1 - Computación para Ingenieros
 
Buenos Aires Consume...
Buenos Aires Consume...Buenos Aires Consume...
Buenos Aires Consume...
 
How to Build a City on a Lake
How to Build a City on a LakeHow to Build a City on a Lake
How to Build a City on a Lake
 
Estrategias Para Comércio Justo
Estrategias Para Comércio Justo   Estrategias Para Comércio Justo
Estrategias Para Comércio Justo
 
Proyecto de aula de icc
Proyecto de aula de iccProyecto de aula de icc
Proyecto de aula de icc
 
Presentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPresentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y Utilerias
 
Point-of-sale integrated mobile transacting ecosystem
Point-of-sale integrated mobile transacting ecosystemPoint-of-sale integrated mobile transacting ecosystem
Point-of-sale integrated mobile transacting ecosystem
 
Mahesh Gangurde Seo PPC
Mahesh Gangurde Seo PPCMahesh Gangurde Seo PPC
Mahesh Gangurde Seo PPC
 
Amerikaanse Revolutie
Amerikaanse RevolutieAmerikaanse Revolutie
Amerikaanse Revolutie
 
Presentation1
Presentation1Presentation1
Presentation1
 
JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...
JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...
JAVA 2013 IEEE MOBILECOMPUTING PROJECT Community aware opportunistic routing ...
 
Audience Research - Frank
Audience Research - FrankAudience Research - Frank
Audience Research - Frank
 
mohammed ilyas
mohammed ilyasmohammed ilyas
mohammed ilyas
 
Tehnoloģijas un sabiedriba 08102013
Tehnoloģijas un sabiedriba 08102013Tehnoloģijas un sabiedriba 08102013
Tehnoloģijas un sabiedriba 08102013
 

Similar a Capitulogratis

Principios programacion
Principios programacionPrincipios programacion
Principios programacion
Daniela Brignolo
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
Ts101924450Ts101924450
BRANDON VELASQUEZ
BRANDON VELASQUEZBRANDON VELASQUEZ
BRANDON VELASQUEZ
Brandon Velasquez Romero
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
yamy matin
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
Unidad 3Unidad 3
QUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMASQUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMAS
sergiosalazarcano
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
Karly Lugo
 
Programación
ProgramaciónProgramación
Programación
Graceelml
 
Pteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacionPteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacion
ErikValladarez
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
KathGon1
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
Katherine Gonzales
 
Programacion
ProgramacionProgramacion
Programacion
Dani Barahona
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Cuaderno3
Cuaderno3Cuaderno3
Cuaderno3
Joaquin Veron
 
Programacion informatica
Programacion informaticaProgramacion informatica
Programacion informatica
Camiilo Gonzalez
 
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
GENERACIONES DE LOS LENGUAJES DE PROGRAMACIONGENERACIONES DE LOS LENGUAJES DE PROGRAMACION
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
willi21047070
 
Software ana monterrosas 6030
Software ana  monterrosas 6030Software ana  monterrosas 6030
Software ana monterrosas 6030
Ana Monterrosas
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
Abrilzabaleta
 

Similar a Capitulogratis (20)

Principios programacion
Principios programacionPrincipios programacion
Principios programacion
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
BRANDON VELASQUEZ
BRANDON VELASQUEZBRANDON VELASQUEZ
BRANDON VELASQUEZ
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
QUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMASQUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMAS
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Programación
ProgramaciónProgramación
Programación
 
Pteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacionPteg i-grupo5- cap 6-lenguaje de programacion
Pteg i-grupo5- cap 6-lenguaje de programacion
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Programacion
ProgramacionProgramacion
Programacion
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Cuaderno3
Cuaderno3Cuaderno3
Cuaderno3
 
Programacion informatica
Programacion informaticaProgramacion informatica
Programacion informatica
 
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
GENERACIONES DE LOS LENGUAJES DE PROGRAMACIONGENERACIONES DE LOS LENGUAJES DE PROGRAMACION
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
 
Software ana monterrosas 6030
Software ana  monterrosas 6030Software ana  monterrosas 6030
Software ana monterrosas 6030
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 

Último

Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
LuanaJaime1
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Demetrio Ccesa Rayme
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
marilynfloresyomona1
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
LudmilaOrtega3
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
johnyamg20
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
JorgeVillota6
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
ROCIORUIZQUEZADA
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CARMENSnchez854591
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
RicardoValdiviaVega
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Chatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdfChatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdf
Demetrio Ccesa Rayme
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 

Último (20)

Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Chatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdfChatgpt para los Profesores Ccesa007.pdf
Chatgpt para los Profesores Ccesa007.pdf
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 

Capitulogratis

  • 1. Capítulo 1 En este capítulo veremos en qué consiste la tarea de programar, qué herramientas se necesitan para llevarla a cabo, qué herramientas hay disponibles y cuáles conviene elegir según el tipo de programación que se elija. Además, construiremos un pequeño programa para contar las palabras de una frase, el cual nos servirá para tener nuestra primera experiencia con el lenguaje Pascal. ATENCIÓN AL LECTOR > drmax@mpediciones.com PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 7
  • 2. 8 INTRODUCCIÓN A LA PROGRAMACIÓN ¿QUÉ ES PROGRAMAR? (CONCEPTOS BÁSICOS) > La tarea de escribir un programa o programar consiste en escribir detalla- da y minuciosamente las instrucciones que debe seguir una computadora pa- ra realizar una tarea. Estas instrucciones deben escribirse en un lenguaje que la computadora pueda entender, ya sea en forma directa o luego de una tra- ducción realizada por un intérprete o un compilador, como se explica más adelante en este capítulo. El concepto más importante que hay que comprender antes de ponerse a pro- gramar es que la computadora carece totalmente de sentido común. Los progra- mas no deben (idealmente) dejar nada librado al azar, deben cubrir todos los po- sibles casos que puedan suceder. Por ejemplo, imaginemos que mediante un pro- grama queremos instruir una computadora para que maneje un auto. El progra- ma podría ser más o menos así: 1. abrir la puerta del lado del conductor 2. entrar y sentarse frente al volante 3. introducir la llave de encendido 4. girar la llave de encendido presionando levemente el acelerador 5. presionar el embrague 6. usando la palanca de cambios, poner primera marcha 7. soltar el embrague gradualmente mientras se aumenta la presión sobre el acelerador, etc. Estas instrucciones son, en apariencia, lo suficientemente detalladas como para que cualquiera, incluso una computadora, pueda seguirlas. Sin embargo, hay una gran cantidad de situaciones que este programa no prevé y que podrían derivar en problemas de distinta índole. Por ejemplo, ¿qué pasaría si frente al auto hubiera una pared? Un ser humano con el mínimo sentido común sabría que, en vez de poner primera marcha (como le indican las instrucciones), debería poner marcha atrás para arrancar. Pero la computadora hace exactamente lo que le indica el programa, con lo cual, por más que vea que hay una pared por delante, pondría primera y se chocaría tranquilamente con ella. Es por eso que los programas deben prever cualquier eventualidad que pueda 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 8
  • 3. 9 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN ocurrir lidiando con ella debidamente. En el caso de nuestro programa para conducir un auto, deberíamos reemplazar la instrucción: 6. usando la palanca de cambios, poner primera marcha por un conjunto de instrucciones que involucran el análisis de una condición: 6. si no hay obstáculos adelante: usando la palanca de cambios poner primera marcha si no: usando la palanca de cambios poner marcha atrás De esta forma, le estamos dando al programa la capacidad de decidir si debe avanzar o retroceder el auto en función de la existencia de obstáculos delante del mismo. De paso, vamos captando la idea de lo que son las estructuras de decisión, que veremos más profundamente en el Capítulo 4. Para que nuestro programa sea realmente “robusto” (se denomina así a un programa cuando tiene muy pocas probabilidades de fallar), tendríamos que evaluar muchas otras posibles condiciones, por ejemplo, que tampoco haya obstáculos detrás del auto, que el auto tenga nafta en el tanque, si fuera de noche, encender las luces, etc. Probablemente, una de las tareas más difíciles de la programación sea prever todas las causas posibles que pueden provocar que un programa falle. Tanto es así que ningún programador en sus cabales es capaz de afirmar con total seguridad que un programa está ciento por ciento libre de errores. PROGRAMACIÓN DE JUEGOS En los albores de la programación de juegos para PC, el lenguaje en- samblador era el preferido por esta “raza” de programadores. Con el tiempo fueron apareciendo librerías de alto nivel para manejo de gráfi- cos y animaciones, y hoy los progra- madores de juegos prefieren len- guajes estructurados u orientados a objetos, como el C o el C++, para hacer sus creaciones. El lenguaje C++ conserva todas las capacidades de su antecesor y le suma ventajas respecto del manejo de memoria. › 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 9
  • 4. 10 INTRODUCCIÓN A LA PROGRAMACIÓN > En párrafos anteriores vimos que los programas se escriben en lenguajes que pueden traducirse a una forma que la computadora pueda entender (como vere- mos más adelante, a esta forma se la llama lenguaje de máquina). Esto hizo que, a lo largo de la historia de la programación, se fueran creando distintos lengua- jes para distintas necesidades, cada uno con su correspondiente “traductor” a len- guaje de máquina. Por lo general, los lenguajes de programación surgieron de centros de investigación en universidades o empresas, cada uno con el objetivo de cubrir alguna necesidad en particular. Así nacieron, por ejemplo, el FORTRAN (por Formula Translator, o traduc- tor de fórmulas), pensado especialmente para que los científicos de distintas disciplinas pudieran escribir programas para hacer cálculos de gran compleji- dad, y el COBOL (por Common Business Oriented Language o lenguaje co- mún orientado a negocios), que fue pensado con el objetivo de escribir pro- gramas para administrar empresas. LOS DISTINTOS PARADIGMAS Y SUS LENGUAJES Con el tiempo, los investigadores en ciencias de la computación observaron que, más allá del propósito para el que fueron creados, los lenguajes podían di- ferenciarse por la forma de trabajo que presentan al programador, ofreciendo di- versas formas de “ver” y “pensar” un programa antes de escribirlo. Así comenzaron a surgir distintos pa- radigmas de programación, cada uno representado por una familia de len- guajes (Figura 1). Por ejemplo, a la for- ma tradicional de programar –que con- siste en detallar la secuencia de pasos que debe seguir la computadora para realizar una tarea– se la denominó pro- gramación imperativa, porque el pro- grama da órdenes que la computadora debe cumplir obedientemente. LENGUAJES DE PROGRAMACIÓN: ¿POR QUÉ HAY TANTOS? (PARADIGMAS, LENGUAJES Y FORMAS DE PROGRAMAR) LOS LENGUAJES .NET El entorno .NET de Microsoft presen- ta un marco de trabajo (llamado Fra- mework) en el que se pueden utilizar lenguajes muy diversos. Todos ellos tienen la particularidad de ser orien- tados a objetos y de compartir una misma interfaz mediante la cual inte- ractúan con el sistema operativo. › 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 10
  • 5. 11 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN Figura 1. Los lenguajes más comunes –C, Pascal, Basic, FORTRAN, etc.– pertenecen al paradigma de programación imperativa; los dos primeros enfatizan el concepto de programación estructurada. Una rama dentro de la programación imperativa es la programación estructu- rada, cuyo propósito fundamental es construir programas claros, fáciles de en- tender y de mantener. Para ello se basa en el uso de módulos independientes (funciones y procedimientos) que separan claramente las diferentes tareas que Programación imperativa El programa detalla los pasos necesarios para realizar una tarea. Existe un estado global de programa que es modificado por una secuencia de órdenes o instrucciones. Programación estructurada Los programas se particionan en múltiples tareas que encierran funciones bien definidas y limitan la visibilidad de los datos. Además, impone restricciones en el diseño de los algoritmos que facilitan su posterior modificación y mantenimiento. Programación orientada a objetos Introduce el concepto de objeto como forma de encapsular algoritmos y datos en una unidad indivisible, con el fin de que los programas simulen el comportamiento de los objetos del mundo real. Programación declarativa Los programas describen el resultado a obtener y los mecanismos disponibles, pero no detallan los pasos necesarios para obtenerlo Programación funcional Emplea expresiones funcionales para combinar valores básicos y obtener los resultados deseados. Programación lógica Se basa en el cálculo de predicados para obtener resultados a partir de hechos básicos y mediante la aplicación de reglas de inferencia. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:16 PM Page 11
  • 6. 12 INTRODUCCIÓN A LA PROGRAMACIÓN realiza un programa y en estructuras que conducen claramente el flujo de ejecu- ción (más sobre esto en el Capítulo 4). Algunos lenguajes que enfatizan el con- cepto de programación estructurada son el C y el Pascal. En contraposición a la programación imperativa se encuentra el paradigma de programación declarativa, que en lugar de dar una secuencia detallada de órde- nes para que la computadora lleve a cabo, simplemente enuncia el resultado que se desea obtener y se deja que la computadora elija la forma más conveniente de obtenerlo. Este paradigma no es tan común como el de programación imperati- va y se usa para aplicaciones que involucran inteligencia artificial, simulaciones científicas, etc. Dentro del paradigma de programación declarativa se encuentran los lenguajes de programación lógica, como el ProLog y el Lisp, los lenguajes de programación funcional, como Haskell, y otros lenguajes más específicos, como el SQL (Structured Query Language), cuyo propósito es el armado de con- sultas de bases de datos. Otro paradigma importante derivado de la programación imperativa es el de la programación orientada a objetos. De gran popularidad en nuestros días, este paradigma permite pensar una aplicación como un conjunto de objetos autóno- mos que interactúan entre sí enviándose mensajes, con los cuales un objeto le “pi- de” a otro que realice una determinada tarea o le solicita determinados datos (Fi- gura 2). La ventaja de esta forma de programación es que el desarrollo de las fun- ciones está encapsulado dentro de cada objeto. En otras palabras, a un objeto no le preocupa cómo hace otro objeto para cumplir su función; le basta saber que, cuando se lo pida, hará su trabajo. Figura 2. En la programación orientada a objetos se facilita la modificación y el mantenimiento de los programas, ya que cualquier modificación interna a un objeto no afectará a los otros. Objeto Imagen Objeto Texto Redibujar Redibujar Objeto Ventana 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 12
  • 7. 13 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN ¿QUÉ LENGUAJE CONVIENE ELEGIR? La elección de un lenguaje de programación no es algo trivial. Antes que nada, de- bemos determinar qué clase de programas pensamos hacer. Si, por ejemplo, apun- tamos a hacer programas que manejen bases de datos, nos convendrá dominar el lenguaje SQL. Pero el SQL no es muy adecuado para crear interfaces de usuario, por lo cual deberemos complementarlo con algún lenguaje que sí lo sea; por ejemplo, algún lenguaje que ofrezca un entorno visual, como Visual Basic o Delphi. Los lenguajes puramente declarativos –el Haskell, el ProLog o el Lisp– son usa- dos principalmente por investigadores y programadores muy vanguardistas en áreas como la inteligencia artificial. Para tareas de programación más cotidianas –como podría ser escribir un pro- grama para ordenar un conjunto de datos–, la mayoría de los programadores em- plea lenguajes de propósito general propios de la programación estructurada, en- tre los cuales los más representativos son el Pascal y el C. Estos dos lenguajes son similares en su capacidad expresiva, pudiéndose utilizar cualquiera de los dos in- distintamente para implementar cualquier programa estructurado. En particular, el Pascal es más fácil de aprender debido a que la mayoría de sus instrucciones son vocablos del idioma inglés (lamentablemente, no hay un Pascal en español), mientras que el C es más sintético, pues utiliza menos palabras y más símbolos para representar las instrucciones Tanto el Pascal como el C tienen versiones orientadas a objetos (en el caso del C se denomina C++), lo cual les permite man- tenerse vigentes ante las “nuevas modas” en materia de programación, a diferen- cia de otros lenguajes, como por ejem- plo, el FORTRAN o el COBOL, que han caído en desuso. PSEUDOCÓDIGO Existe un lenguaje de programación que, curiosamente, no se utiliza para crear programas ejecutables. Sirve sola- mente para que el programador expre- se sus ideas de una forma clara y que es- tas ideas puedan comunicarse a otros programadores para que ellos las imple- menten en el lenguaje que prefieran. INTERFAZ Interfaz es todo aquello que media entre dos mundos diferentes crean- do la posibilidad de comunicación; en este caso, entre el hombre y la máquina. En la actualidad las inter- faces están compuestas por venta- nas, botones y barras, pero en el co- mienzo de la programación todo se realizaba por medio de comandos (o sea, escribiendo). › 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 13
  • 8. 14 INTRODUCCIÓN A LA PROGRAMACIÓN Este lenguaje del que hablamos es el pseudocódigo. A pesar de que no sirve pa- ra crear en forma directa programas ejecutables, es una herramienta de gran uti- lidad para programar “en papel”; es decir, para esbozar cómo un programa debe llevar a cabo su tarea. Por ejemplo, el siguiente programa en pseudocódigo se utiliza para encontrar el mayor elemento dentro de una lista de datos: Función BuscarMaximo(lista) Mayor = lista(1) Contador = 2 Mientras Contador ≤ longitud(lista) hacer Si lista(Contador) > Mayor entonces Mayor = lista(Contador) Fin Si Contador = Contador + 1 Fin Mientras Devolver Mayor Fin Función Dado que no se trata de un lenguaje “formal”, nos da la libertad de escribirlo en el idioma de nuestra preferencia (en este caso, en español). Otra gran ventaja del pseudocódigo es que nos permite hacer refinamientos su- cesivos de un programa; esto quiere de- cir que nuestro programa, al principio, puede expresar las instrucciones de una forma muy general (por ejemplo, en vez de detallar todas las instrucciones para recorrer una lista de datos, simplemente escribimos: Recorrer Lista), y luego de varios refinamientos del programa, espe- cificamos cada vez más las instrucciones, hasta llegar a un punto en el que prácti- camente pueden traducirse a un verdade- ro lenguaje de programación. EJECUTABLES FICTICIOS Algunos entornos de desarrollo –co- mo el Visual Basic– dan como resul- tado archivos ejecutables (.EXE) que a simple vista parecen programas autónomos o stand-alone. Sin em- bargo, contienen instrucciones que debe interpretar un componente de- nominado run-time, que debe estar instalado en la computadora de des- tino para que el programa se ejecute. › 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 14
  • 9. 15 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN ENTORNOS DE PROGRAMACIÓN Y HERRAMIENTAS (LA ELECCIÓN DE LOS ELEMENTOS PARA PROGRAMAR) > Además de elegir un lenguaje a utilizar, el programador debe elegir qué entorno de trabajo y qué herramientas empleará para programar. Aquí las opciones son muy numerosas, ya que un mismo lenguaje puede ofrecer entornos muy distintos con los cuales trabajar. Las dos herramientas básicas que debe brindar un entorno de pro- gramación son el editor de código (en donde se escriben los programas fuente) y el compilador o intérprete, que permite ejecutar y poner a prueba los programas es- critos. El entorno más rudimentario posible consta de un editor de texto común y corriente (como puede ser el Bloc de notas) y un compilador que lee los archivos de código fuente y los transforma en archivos ejecutables (.EXE). En el otro extremo, los entornos más completos ofrecen, por ejemplo, editores de texto “inteligentes” que corrigen la sintaxis a medida que se escribe el programa, intérpretes que permi- ten ejecutar los programas sin necesidad de compilarlos, organizadores de archivos o de objetos, herramientas de depuración para ejecutar los programas línea por lí- nea, editores de pantallas o de ventanas para diseñar visualmente las interfaces de usuario, editores de menús, entre otras herramientas (Figura 3). Figura 3. El entorno de programación de Visual Basic ofrece múltiples herramientas para diseñar ventanas, depurar código, etcétera. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 15
  • 10. 16 INTRODUCCIÓN A LA PROGRAMACIÓN EDITORES DE CÓDIGO La elección de un buen editor de código es fundamental para el programador, ya que es la herramienta con la que trabajará la mayor parte del tiempo. Los en- tornos de programación más completos siempre incluyen un editor propio, el cual suele brindar algunas facilidades como indentación automática (esto signi- fica que las líneas de código se acomodan solas, con la sangría que corresponda), verificación de sintaxis mientras se escribe, acceso rápido a instrucciones y pala- bras reservadas del lenguaje, etcétera (Figura 4). Figura 4. Los editores de código modernos ofrecen algunas facilidades como el uso de colores para distinguir distintos elementos del código y la visualización separada de funciones y procedimientos, entre otras. Además de brindar un editor de código propio, los entornos de programación permiten incorporar código fuente escrito “por fuera” del entorno. De esta for- ma, el programador siempre tiene la posibilidad de utilizar cualquier editor de texto de su preferencia para escribir los programas, y luego incorporarlos en el entorno para probarlos y corregirlos. Los programadores más experimentados suelen utilizar editores completamente básicos como Notepad, un programa que viene incluido en Windows desde sus primeras versiones. Sólo para expertos. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 16
  • 11. 17 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN ENTORNOS VISUALES A partir del surgimiento del popular lenguaje Visual Basic, comenzó un con- cepto nuevo en programación que dio en llamarse programación visual. Esta forma de programar emplea elementos visuales –como por ejemplo, ventanas, botones, cuadros de texto, etc.– para diseñar los programas. Los elementos visua- les, también llamados controles, poseen cierta “inteligencia” para saber qué ha- cer cuando el usuario interactúa con ellos (por ejemplo, cuando hace clic sobre un botón). De esta forma, ahorran bastante trabajo de programación y evitan la necesidad de programar al detalle cada cosa que deben hacer los controles. A pesar de su aparente facilidad para crear programas, los entornos visuales tie- nen sus trampas: por utilizar elementos estándares de la interfaz gráfica del siste- ma operativo, deben preverse gran cantidad de eventos posibles que pueden afec- tar a nuestros programas. Por ejemplo, el programa debe estar preparado para que el usuario lo cierre en cualquier momento, sin importar lo que esté hacien- do. También debe preverse que se pueda minimizar o maximizar la ventana del programa, o que ésta quede oculta detrás de la ventana de otro programa, y que ninguno de estos sucesos genere errores. LIBRERÍAS Las librerías (library, en inglés, que en realidad debería traducirse como “bi- blioteca”) son repositorios de elementos listos para usar que podemos aprove- char en nuestros programas para no tener que escribir código que ya ha sido es- crito por otros (o incluso por nosotros mismos). Todos los lenguajes y entornos de programación brindan alguna forma de acceso a diversas librerías. Éstas sue- len agrupar elementos con similar funcionalidad; por ejemplo, es común encon- trar librerías para manejo de funciones matemáticas. Si nos enfrentamos con la necesidad de escribir un programa que en algún momento calcule la raíz cuadrada de un número, entonces ha- cemos referencia a la librería de fun- ciones matemáticas, y luego podremos utilizar la función para calcular raíces cuadradas, sin preocuparnos por cómo esté programada dicha función. INTERFACES GRÁFICAS La programación visual es ideal pa- ra crear programas que emplean la interfaz gráfica estándar del sistema operativo, ya que los controles utili- zados para darles funcionalidad a los programas son elementos pro- pios de dicha interfaz. › 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 17
  • 12. 18 INTRODUCCIÓN A LA PROGRAMACIÓN COMPILADORES E INTÉRPRETES (DIFERENCIAS Y USOS) > Tal como vimos anteriormente en este capítulo, el código fuente de los pro- gramas que escribimos debe traducirse en algún momento a código ejecutable, ya que de otra forma la computadora no lo podría entender y, por ende, el pro- grama no podría ejecutarse. Hay dos formas de traducir código fuente en código ejecutable: compilación e interpretación. Estas formas difieren en cuanto al momento en que se realiza la mencionada traducción y son los compiladores e intérpretes –programas que, por lo general, se encuentran integrados al entorno de programación– quienes las llevan a cabo. Luego veremos la diferencia entre unos y otros. LENGUAJES DE ALTO NIVEL Y LENGUAJE DE MÁQUINA Los lenguajes de programación que usamos habitualmente (Basic, Pascal, C, etc.) utilizan instrucciones llamadas de alto nivel. Al pasar un programa escrito en alguno de estos lenguajes por un compilador o un intérprete, las instruccio- nes de alto nivel son traducidas a instrucciones en lenguaje de máquina, tam- bién se llamadas instrucciones de bajo nivel. En general, cada instrucción de alto nivel se traduce en numerosas instrucciones de bajo nivel. Por ejemplo, una simple instrucción de alto nivel podría ser la siguiente: c := a + b; (Como veremos más adelante, esto significa: sumar a y b y almacenar el resul- tado en c.) Al traducirse a lenguaje de máquina, la instrucción anterior se convierte en una secuencia de instrucciones parecida a ésta: 1. buscar posición de memoria de a 2. copiar el valor en la posición de memoria de a al registro 1 3. buscar posición de memoria de b 4. sumar al valor del registro 1 el valor en la posición de memoria de b 5. buscar posición de memoria de c 6. almacenar en la posición de memoria de c el valor del registro 1 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 18
  • 13. 19 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN Si bien el ejemplo anterior no tiene el aspecto de un programa en lenguaje de má- quina –dado que tales pro- gramas se componen entera- mente de números hexade- cimales y pequeñas instruc- ciones llamados mnemóni- cos (Figura 5)–, sirve para mostrar qué hacen sus ins- trucciones, ya que los pro- gramas en lenguaje de má- quina se basan enteramente en el manejo de posiciones de memoria, registros del procesador y operaciones matemáticas elementales. Si bien es posible programar directamente en lenguaje de máquina, la gran di- ficultad que implica esta tarea hace que siempre sea necesario recurrir a compi- ladores e intérpretes que permitan programar en algún lenguaje de alto nivel. CÓDIGO FUENTE, CÓDIGO OBJETO Y CÓDIGO EJECUTABLE Cuando se escribe un programa en algún lenguaje de alto nivel, lo que se ob- tiene es un programa en código fuente, el cual debe traducirse a lenguaje de máquina para que pueda ejecutarse. Cuando se procesa un programa en código fuente con un compilador, lo que se obtiene es un programa en código objeto. Este programa es “casi” un programa ejecutable, sólo falta vincularlo con las li- brerías externas al programa para convertirlo en código ejecutable. Este proceso lo lleva a cabo una he- rramienta llamada vinculador (Figura 6). En los entornos de programación modernos, prácticamente no se hace distinción entre el compilador y el vinculador, dado que ambos son un proceso indivisible. Por eso es que del código fuente se pasa directamente al ejecutable. NÚMEROS HEXADECIMALES El sistema hexadecimal utiliza una base de 16 dígitos para representar los números, en lugar de los 10 dígi- tos del sistema decimal. Para agregar los seis dígitos adicionales se em- plean las letras de la A (1) a la F (16). › Figura 5. Los programas en assembler (código de máquina) son muy eficientes en su ejecución, pero difíciles de entender. Aquí, la versión del programa “Hello World” en assembler. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 19
  • 14. 20 INTRODUCCIÓN A LA PROGRAMACIÓN Figura 6. El código fuente atraviesa distintas etapas hasta llegar a ser un programa ejecutable. DIFERENCIAS ENTRE COMPILAR E INTERPRETAR Ya vimos que al compilar un programa obtenemos como resultado un ejecuta- ble (en general, un archivo .EXE). Para probar cómo funciona, simplemente de- bemos ejecutarlo como a cualquier otro programa. Si al probarlo encontramos que cometimos algún error (que suele ser lo más común), tendremos que editar el código fuente, luego buscar el error, corregirlo, compilar nuevamente y volver a probar. Deberemos repetir este proceso tantas veces como sea necesario para obtener un programa tan libre de errores como sea posible. Todo el ciclo de co- rrección del programa, la compilación y la prueba constituye la depuración o de- bugging de un programa. Para agilizar este ciclo se utilizan los intérpretes en lugar de los compilado- res. A diferencia del compilador, el intérprete no compila todo el programa de una vez, sino que lee y compila una por una las instrucciones de un programa fuente, en el orden de ejecución. Luego de compilar cada instrucción, la eje- cuta (Figura 7). La utilización de un intérprete acelera el proceso de depuración por el hecho de que, para probar un programa, no necesitamos realizar la compilación del programa completo. Por lo general, el intérprete está integrado al entorno de programación y esto, en realidad, nos permite ejecutar (en forma interpretada) el programa que estamos escribiendo sin necesidad de dejar el entorno de tra- bajo. A su vez, otra ventaja que otorga el intérprete es la posibilidad de ejecutar Código fuente Compilador Código objeto Vinculador Programa ejecutable 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 20
  • 15. 21 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN paso a paso: esto significa que, luego de compilar y ejecutar cada instrucción, el intérprete queda a la espera de que le digamos que ejecute la próxima instruc- ción. De esta forma, tenemos la posibilidad de verificar el estado de un progra- ma luego de ejecutar cada instrucción, con lo cual podremos detectar fácilmen- te los errores. En cualquier momento podemos detener la ejecución para volver al editor de código y hacer las correcciones que sean necesarias. Lógicamente, la ejecución de un programa en forma interpretada es más lenta que la ejecución en forma compilada, puesto que el programa compilado ya fue traducido en su totalidad a lenguaje de máquina y no es necesario traducir cada instrucción antes de ejecutarla. Es por esta razón que no se pueden hacer prue- bas de la velocidad (o de la performance) de un programa ejecutándolo a través de un intérprete, puesto que la velocidad observada no será la velocidad real a la que puede ejecutar el programa. Código fuente Compilación: Interpretación: Código fuente Intérprete Compilador + Vinculador Programa ejecutable Ejecución inmediata Figura 7. Otra de las diferencias entre compiladores e intérpretes es que este último no genera como resultado ningún programa ejecutable. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 21
  • 16. 22 INTRODUCCIÓN A LA PROGRAMACIÓN PRIMEROS PASOS EN PASCAL (DESCRIPCIÓN DEL LENGUAJE Y LA PRIMERA PRÁCTICA) > El lenguaje Pascal fue creado en el año 1968 como una herramienta didácti- ca para el aprendizaje de técnicas de programación. A pesar de sus años, Pascal sigue vigente hoy en día a través de implementaciones modernas, como el len- guaje Delphi, que es capaz de utilizarse en el entorno .NET de Microsoft. Pascal se caracteriza por su poder para crear programas fácilmente entendibles, incluso para quien no conoce el lenguaje a fondo. Su similitud con el pseudocó- digo hace que resulte fácil transformar un programa esbozado mediante este pseudolenguaje en una implementación plenamente funcional. Por todas estas cualidades es que elegimos el lenguaje Pascal para ejemplificar los conceptos de programación vertidos a lo largo de este libro. Para crear y pro- bar los programas, utilizaremos Irie Pascal, una herramienta shareware de fácil utilización que presenta una interfaz gráfica estándar de Windows, a diferencia de la mayoría de los entornos de programación en Pascal, que sólo ofrecen una interfaz de usuario basada en caracteres. El instalador de Irie Pascal puede obtenerse en Internet, en la dirección www. irietools.com/iriepascal/download.html. Luego de bajar a la computadora el archivo del instalador (denominado ipw-eval.exe), la herramienta se instala sim- plemente al ejecutar dicho archivo y seguir los pasos del asistente. Una vez con- cluida la instalación, podrá accederse a Irie Pascal a través del menú Inicio de Windows, en la opción Programas/Irie Pascal Evaluation Copy. OTROS ENTORNOS DE DESARROLLO EN PASCAL Además de Irie Pascal, existen muchos entornos de desarrollo que pueden uti- lizarse para programar en este len- guaje, algunos más poderosos e inclu- so gratuitos. Uno de ellos es Turbo Pascal, la herramienta que usan muchos estudiantes universitarios, que la empresa Borland ha decidido ofrecer gratuitamente. Otro entorno que ha ganado amplia popularidad es Free Pascal, una herramienta de dis- tribución libre y de código abierto (con licencia GNU), similar en muchos as- pectos a Turbo Pascal, pero con unas cuantas mejoras. Si bien estas herra- mientas son más poderosas que Irie Pascal, tienen la desventaja de ser más difíciles de usar. › 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 22
  • 17. 23 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN EL ENTORNO DE TRABAJO Irie Pascal ofrece un entorno amigable de programación para trabajar en len- guaje Pascal. Brinda una interfaz de usuario basada en Windows, si bien los programas que genera se ejecutan en una ventana del intérprete de comandos (o una ventana de MS-DOS, según la versión de Windows que se utilice). Es- to significa que los programas creados en Irie Pascal no utilizan los elementos de la interfaz gráfica de Windows, tales como ventanas, botones, barras de desplazamiento, etc. Pero esto no impide utilizarlo para aprovechar a pleno las características del lenguaje Pascal. La pantalla principal de trabajo de Irie Pascal la constituye el editor de código (Figura 8). Éste no se diferencia mucho del Bloc de notas de Windows, excepto por algunas facilidades para la programación tales como indentación (sangría) automática o selección de bloques. Además, es capaz de manejar múltiples ven- tanas, lo cual permite trabajar sobre varios programas a la vez. Figura 8. El editor de código es la principal ventana de trabajo del entorno Irie Pascal. NUESTRO PRIMER PROGRAMA PASCAL A continuación escribiremos un programa Pascal sencillo que pide al usuario que escriba una frase y luego cuenta la cantidad de palabras contenidas en ella. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 23
  • 18. 24 INTRODUCCIÓN A LA PROGRAMACIÓN PXP 01 | LA PRIMERA PRUEBA … [1] Entre en Irie Pascal y cree un archivo en blanco (File/New). [2] Escriba el siguiente programa: Program ContarPalabras; Var Frase: String; Begin Write(‘Escriba una frase: ‘); Readln(Frase); Writeln(‘Esa frase tiene ‘, CountWords(Frase), ‘ palabras.’); End. [3] Grábelo (File/Save) con el nombre ContarPalabras.pas. Tome nota de la carpeta en donde lo guarda, pues después deberá buscarlo para poder ponerlo a prueba. [4] Acceda a la opción de menú Project/Choose Program…, y luego busque y seleccione el archivo ContarPalabras.pas en donde lo grabó en el paso 3. 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 24
  • 19. 25 ›PRINCIPIOS BÁSICOS DE LA PROGRAMACIÓN [5] Acceda a la opción de menú Project/Compile (o directamente presione F9). Aparecerá una ventana que muestra los resultados de la compilación. Si en esta ventana se indica que hay errores, vuelva a la ventana de edición de código y revise el programa. Tenga en cuenta que debe ser idéntico al código escrito en el paso 2, sin omitir ni agregar ningún espacio ni signo de puntuación. [6] Ejecute el programa accediendo a la opción de menú Project/ Run (o CON- TROL+F9). Aparecerá una ventana del intérprete de comandos en la que deberá escribir una frase cualquiera y presionar ENTER. Luego el progra- ma le indicará cuántas palabras tiene la frase escrita. w 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 25
  • 20. 26 INTRODUCCIÓN A LA PROGRAMACIÓN ACTIVIDADES DE AUTOEVALUACIÓN‹‹ Una serie de consignas y actividades para repasar los principales conceptos tratados en este capítulo y, de esta manera, afianzar el aprendizaje: > 1. Trabajamos sobre un lenguaje de programación denominado “Damas”, que tiene un conjunto de instrucciones muy reducido que sirve para mo- ver una ficha sobre un tablero cuadriculado, de a una casilla por vez: INSTRUCCIONES DEL LENGUAJE “DAMAS” MoverArriba: mueve la ficha a la casilla superior respecto de su posición actual. MoverDerecha: mueve la ficha a la casilla derecha respecto de su posición actual. MoverAbajo: mueve la ficha a la casilla inferior respecto de su posición actual. MoverIzquierda: mueve la ficha a la casilla izquierda respecto de su posición actual. Supongamos que la ejecución de un programa escrito en el lenguaje “Da- mas” siempre comienza con la ficha colocada en la casilla superior izquier- da del tablero. Escriba un programa en lenguaje “Damas” que desplace la ficha hasta la casilla inferior derecha, en un tablero de cuatro por cuatro. > 2. Ahora contamos con una versión más potente del lenguaje, llamada “Damas++”. Esta versión agrega una nueva instrucción: INSTRUCCIÓN AGREGADA EN “DAMAS++” RepetirHastaUltimaCasilla: repite todas las instrucciones anteriores del programa, hasta que la ficha se encuentra en la casilla inferior derecha. Escriba un programa en lenguaje “Damas++” que desplace la ficha hasta la casilla inferior derecha en un tablero cuadrado de cualquier dimensión. > 3. Escriba un programa en “Damas++” que haga que la ficha se mueva siempre en forma circular entre los cuatro casilleros superiores izquier- dos del tablero. > 4. ¿Cuál es la diferencia entre un compilador y un intérprete? > 5. ¿Qué ventajas tienen los lenguajes de programación estructurados? 01-DMEx PROGRAMACION. bisqxd 10/13/05 3:17 PM Page 26