Вы находитесь на странице: 1из 3

Universidad Tecnolgica Nacional Facultad Regional Buenos Aires Ingeniera en Sistemas de Informacin

Sintaxis y Semntica de los Lenguajes

Trabajo Prctico #0
por Prof. Ing. Jos Mara Sola
1.0.0.20120328

Objetivos
Establecer el Equipo de Trabajo. Inscribirse al Grupo Yahoo de la Ctedra. Configurar el compilador Borland C++ Compiler 5.5 with Command Line Tools (BCC32) para que pueda ser correctamente utilizado como compilador "verificador" de los trabajos relacionados con ANSI C que se realizarn durante el curso. Familiarizarse con el uso del compilador. Escribir, compilar y ejecutar un primer programa simple en el lenguaje ANSI C. Comprender con el concepto de biblioteca y las herramientas para crearlas. Especificar e Implementar una funcin simple. Construir una primera biblioteca para encapsular la funcin. Entender los conceptos fundamentales relacionados a las bibliotecas. Escribir, compilar y ejecutar un programa cuyo fin es el la prueba del correcto funcionamiento de la funcin dentro de la biblioteca creada. Aplicar valores constantes para pruebas. Elegir un mtodo para capturar las salidas de los procesos de traduccin del compilador y de las ejecuciones de los programas. Comenzar a interpretar de los mensajes de error y warning (advertencia) que emite el compilador. Elegir el ambiente de desarrollo integrado y compilador que el equipo utilizar para la construccin de los programas ANSI C a lo largo del curso. Comprender los lineamientos establecidos por la Ctedra en cuanto a la presentacin de trabajos prcticos escritos.

Desarrollo
Por requisito de la Ctedra y para poder realizar este TP, deben suscribirse al Grupo Yahoo de la Ctedra UTNFRBASSL. Para eso, deben dirigirse a http://groups.yahoo.com/group/UTNFRBASSL/ y solicitar la suscripcin, indicando en el recuadro "Comment to Owner" su nombre y apellido, nmero de legajo y cdigo de curso. La suscripcin ser aceptada slo si indican todos los datos pedidos. El desarrollo de este TP inicial consta de cinco puntos, agrupados en dos partes.

Parte A
1. Confirmacin del Equipo de Trabajo
Este punto 1 se logra, simplemente, llenando por duplicado el formulario de equipo y presentando ambas copias a la Ctedra.

2. Construccin del primer programa en ANSI C


Este punto tiene dos objetivos: Preparar un ambiente de desarrollo y traduccin segn los requisitos de la Ctedra, el cual ser utilizado a lo largo del curso. Familiarizarse con el compilador y el proceso de traduccin.

Materiales
Compilador Borland C++ Compiler 5.5 with Command Line Tools. Una copia del mismo, con los archivos de configuracin, se encuentra en UTN FRBA SSL CD, el CD de la Ctedra. Copias de este CD se consiguen en el Laboratorio de Sistemas y en el CEIT de la sede Medrano. Tambin se puede descargar una copia del compilador, sin los archivos de configuracin, del sitio de Borland. Artculo Borland C++ Compiler 5.5 with Command Line Tools Instalacin, Configuracin y Prueba. Artculo Bibliotecas en ANSI C. Copia del Formulario de Equipo de Trabajo.

Para ello, simplemente se deben seguir los pasos establecidos en el artculo Borland C++ Compiler 5.5 with Command Line Tools Instalacin, Configuracin y Prueba, descriptos someramente a continuacin: 1. Instalar el compilador "Borland C++ Compiler 5.5 with Command Line Tools" (BCC32) y configurarlo de manera tal que procese archivos fuente en el lenguaje de programacin ANSI C y pueda emitir los mensajes de diagnstico, correspondientes, es decir, mensajes de error y warnings (advertencias). 2. Construir un primer programa simple en ANSI C que emita un saludo por la salida estndar, compilarlo y ejecutarlo. Este programa comprueba que el compilador fue correctamente configurado. Todo archivo fuente que se escribe durante el curso, inclusive este primer programa, debe poseer al principio un comentario que incluya, como mnimo, la siguiente informacin: Qu es el programa, Quin lo escribi y Cuando. Las caractersticas de BCC32 con la configuracin delineada en el artculo, lo hacen adecuado para cumplir el rol de compilador verificador, una especie de comn denominador, para todos los pro-

Copias de los artculos y del formulario de equipo pueden encontrarse en UTN FRBA SSL CD, en el Grupo Yahoo de la ctedra, y en los centros de fotocopiado de las sedes Medrano y Campus.

Prof. Ing. Jos Mara Sola

Pgina 1 de 3

UTN FRBA Ingeniera en Sistemas de Informacin Sintaxis y Semntica de los Lenguajes

Trabajo Prctico #0

gramas que el equipo de trabajo realice a lo largo del curso. No obstante, es conveniente que el equipo elija una herramienta de desarrollo alternativa con mayores funcionalidades y ms "cmoda" para el desarrollo de los TPs. A continuacin, se describe el proceso de traduccin tpico con el primer programa (hello.c) como ejemplo:

La especificacin se escribe en leguaje natural y debe incluir los siguientes aspectos: posibles valores de la cadena dato y comportamiento de la funcin ante las diferentes cadenas durante las diferentes horas del da. Al ser una especificacin, no debe incluir ninguna referencia a la implementacin. Esta funcionalidad se implementa logra mediante el uso de las funciones printf (declarada en stdio.h), time y localtime (declaradas en time.h). Teniendo la hora, es posible determinar el mensaje, el cual que se emitir mediante la funcin printf. Para obtener la hora actual, y as poder decidir qu mensaje emitir, se deben escribir las siguientes tres declaraciones.
/* Define e inicializa la variable ahoraGlobal, del tipo time_t, con el valor retornado por a la funcin standard time, que es la cantidad de segundos transcurridos desde un punto de referencia en el tiempo, en un huso horario prefijado. */ time_t ahoraGlobal = time( NULL ); /* Define e inicializa la variable puntero ahoraLocal con el valor retornado por a la funcin standard localtime. La funcin localtime retorna un puntero a un objeto que contiene la informacin horaria correspondiente al huso horario local, en un formato til para determinar fcilmente las diferentes componentes de la informacin horario (e.g. minuto, da de la semana, da del ao, etc.). En este caso se utiliza como argumento la variable ahoraGlobal. */ struct tm *ahoraLocal = localtime(&ahoraGlobal); /* Define e inicializa la variable entera laHora con el valor de la componente hora (tm_hour), en el intervalo [0, 23] de la variable ahoraLocal. */ int laHora = ahoraLocal->tm_hour;

Hello.c (cdigo fuente) #include

Compilador

Hello (objeto)

Linker

Hello (ejecutable)

stdio.h (encabezado standard)

Biblioteca Standard

Para completar los conceptos de este punto se leer: [K&R1988] c1 Una Introduccin Tutorial: s1 Comenzando a s4 Constantes Simblicas. [M22004] (opcional) 6 El Diseo de Lenguajes de Programacin y su Objetivo; 7 Historia del Lenguaje C y del ANSI C; 8 Ambiente de Traduccin y Ambiente de Ejecucin.

Parte B
3. Construccin de una primera biblioteca y de un programa ANSI C que la pruebe
El objetivo de este tercer punto es familiarizarse con el concepto de biblioteca mediante la construccin de una primera biblioteca y un programa de aplicacin que la pruebe; esta biblioteca contendr una simple nica funcin. Los pasos a seguir son: 1. 2. 3. 4. 5. Especificacin de una funcin. Definicin de la parte pblica de la biblioteca (archivo encabezado). Construccin de la funcin en la parte privada de la biblioteca. Generacin de la biblioteca. Construccin de un programa que la pruebe.

El programa de aplicacin que prueba la biblioteca se debe escribir en un archivo fuente llamado SaludosTest.c, el cual incluye al archivo encabezado Saludos.h. El programa debe pasar argumentos constantes a la funcin (i.e. no debe leer los datos del teclado) para efectuar la prueba, pero se debe disear una forma de comprobacin tal que la funcin quede completamente probada. A continuacin, se describe el proceso que genera la biblioteca Saludos y el programa que la prueba:

La nica funcin que la biblioteca debe contener es Saludar, el nombre de la biblioteca ser Saludos. Se debe escribir el archivo encabezado Saludos.h, que es la parte pblica de la biblioteca; se debe escribir el cdigo fuente de la biblioteca en el archivo Saludos.c, que es la parte privada de la biblioteca e incluye al archivo encabezado Saludos.h; y por ltimo, mediante un proceso de traduccin, se debe generar el archivo Saludos.lib, el cual contiene la biblioteca compilada y lista para ser utilizada por diferentes programas.
#include

Saludos Test.c (cdigo fuente) #include

Compilador

Saludos Test (objeto)

Linker

Saludos Test (ejecutable)

Saludos.h (encabezado) #include

Biblioteca Standard

Saludos.c (cdigo fuente) #include

Compilador

Saludos (objeto)

Librarian

Saludos (Biblioteca)

El prototipo de la funcin es void Saludar(const char *unNombre); Esta funcin escribe por la salida estndar (stdout) un mensaje de saludo a la persona con el nombre contenido en la cadena apuntada por unNombre. Por ejemplo, si el argumento con el que se invoca a Saludar fuese Juan los posibles saludos seran Buenos das, Juan., Buenas tardes, Juan. Buenas noches, Juan.. En el archivo encabezado, justo antes del prototipo de la funcin debe escribirse un comentario con la especificacin de la funcin.
Prof. Ing. Jos Mara Sola
stdio.h (encabezado standard) time.h (encabezado standard)

Para completar los conceptos de este punto se deben leer: [K&R1988] c1 Una Introduccin Tutorial: s10 Variables Externas y Alcance; c4 Funciones y Estructura del Programa: s4.5 Archivos Encabezado y s4.11 El Preprocesador C: s4.11.1 Inclusin de Archivos y s4.11.3 Inclusin Condicional. Artculo "Bibliotecas en ANSI C".
Pgina 2 de 3

UTN FRBA Ingeniera en Sistemas de Informacin Sintaxis y Semntica de los Lenguajes

Trabajo Prctico #0

4. Captura de Salidas
Deben capturarse las salidas de los procesos de traduccin del primer programa, de la primera biblioteca y del programa que prueba la biblioteca, como asimismo las salidas del primer programa y del programa de prueba de la primera biblioteca. Existen diferentes mtodos para lograr este objetivo. Los ms comunes son: 1. Redireccionamiento de la salida mediante el smbolo ">" (mayor) desde la lnea de comando. 2. Captura de la imagen (screenshot) de la ventana desde que contiene las salidas. 3. Copiado al portapapeles (clipboard) del texto de la pantalla que contiene las salidas. Cada mtodo tiene sus ventajas. En este TP el equipo de elegir el mtodo con el cual se siente ms cmodo.

Entrega
Para que la entrega sea aceptada por la Ctedra, debe ser correcta en forma, ya sea en cuanto a los lineamientos y estructuracin, y presentada en tiempo.

Forma
El trabajo debe ser presentado en hojas A4, abrochadas en la esquina superior izquierda, todas numeradas al pie con el formato Hoja n de m. Los listados de los cdigos fuente deben comenzar con un comentario encabezado, que actuar como cartula, con todos los datos del equipo de trabajo: curso; legajo, apellido y nombre de cada uno de los integrantes del equipo y fecha de ltima modificacin. Cada archivo con cdigo fuente y las salidas de los programas y de los procesos de traduccin deben ser impresos con Fuente de Ancho Fijo (e.g. Courier New, Lucida Console).

5. Eleccin de la herramienta de desarrollo que el equipo utilizar para la construccin de los programas ANSI C a lo largo del curso
BCC32 es una herramienta de libre distribucin, ampliamente reconocida, documentada y probada, pero que posee slo funcionalidades bsicas. Por ejemplo, no cuenta ni con un editor ni con un depurador, y es manejada desde la lnea de comandos, lo cual no la hace muy amigable a personas que se inician en la programacin en ANSI C. Es recomendable, entonces, que el equipo utilice una herramienta, que provea de funcionalidades extendidas, como por ejemplo watchers, inspectors y debuggers para el proceso de depuracin; capacidades de edicin avanzadas como syntax highlighting y regiones; posibilidad de manejo de varios archivos fuente bajo el concepto de proyectos y referencias a bibliotecas; ayuda y documentacin on-line sobre ANSI C. Este tipo de herramientas se las conoce como IDE (Integrated Development Enviroment, Ambiente Integrado de Desarrollo). A modo de ejemplo, algunas herramientas que cuentan con estas funcionalidades son los siguientes IDE: Borland C++, C++Builder, Microsoft Visual Studio, Microsoft Visual Studio Express, Pelles C, KDE K-Developer, Code::Blocks, Dev-C++, y Eclipse CDT. La investigacin de la configuracin de la herramienta elegida por el equipo para que permita la correcta compilacin de archivos en el lenguaje ANSI C. corre por cuenta del mismo equipo. Por supuesto, el equipo puede proponer como herramienta de desarrollo elegida, aunque limitada por no ser un IDE, al propio BCC32.

Estructuracin de la Presentacin
1. Formulario de Equipo, dos copias
Se completa y entrega por duplicado. Luego, uno queda para la Ctedra y el otro para el equipo.

2. Primer Programa
2.1. Listado del cdigo fuente de Hello.c 2.2. Salidas 2.2.1. Captura impresa de la salida del proceso de traduccin del compilador. 2.2.2. Captura impresa de la salida de la ejecucin del programa.

3. Primer Biblioteca
3.1. Listados de cdigos fuente 3.1.1. Listado del cdigo fuente de Saludos.h. Incluye comentario con la especificacin. 3.1.2. Listado del cdigo fuente de Saludos.c. 3.1.3. Listado del cdigo fuente de SaludosTest.c. 3.2. Salidas 3.2.1. Captura impresa de la salida del proceso de traduccin del compilador. 3.2.2. Captura impresa de la salida de las ejecuciones del programa.

4. Herramienta de Desarrollo Elegida


Compaa productora, nombre y versin de la herramienta elegida, junto con una breve descripcin de los motivos de la eleccin.

Tiempo
La fecha de entrega de cada parte se define en clase.

Prof. Ing. Jos Mara Sola

Pgina 3 de 3

Вам также может понравиться