Universidad de Costa Rica
|
|
El objetivo de este proyecto es darle al estudiante la oportunidad de manipular archivos de manera que aprecie, por lo menos superficialmente, cuál es el tipo de trabajo que realiza un compilador. Importa trabajar más en el nivel de la manipulación simbólica que en la computación numérica o de sistemas de información, que es la usual en otros cursos de la carrera.
El estudiante debe entregar su proyecto en dos partes. La primera parte debe contener una especificación completa del trabajo a realizar. Cada estudiante debe instalar en su cuenta Internet la especificación, en la fecha designada, y además la debe entregar impresa.
El proyecto consiste en hacer un indentador de programas para el lenguaje Delphi o C++ (el estudiante debe seleccionar el lenguaje de su preferencia). El programa recibirá como entrada uno o más archivos escritos en uno de estos dos lenguajes, y le dará formato de acuerdo a las reglas descritas al final de este documento.
Opcionalmente, el programa producirá una archivo que contenga el código fuente en formato HTML, con las palabras reservadas escritos en letra <STRONG>negrita</STRONG>:
for (i=1; i<10; i++) { if (!in.done()) { cout << i; } } |
<PRE> <STRONG>for</STRONG> (i=1; i<10; i++) { <STRONG>if</STRONG> (!in.done()) { cout << i; } } </PRE> |
En su especificación, cada estudiante debe definir las reglas de indentación que desea seguir. En algunos casos, es necesario pegar varios renglones en uno solo. Algunas reglas que deben seguir al indentar programas son éstas:
{
" o la palabra
BEGIN
de Pascal, se ponen en el mismo
renglón en que aparece la construcción
sintáctica (if
, FOR
, etc.).
for (i=1; i<10; i++) { if(!in.done()) { cout << i;}} // listo |
for (i=1; i<10; i++) { if (!in.done()) { cout << i; } } // listo |
Un ejemplo del resultado de usar el indentador de programas se muestra en el cuadro de arriba. Debe darle formato adecuado a su programa C++. Recuerde que lo usual en C++ es indentar cada construcción sintáctica cuatro espacios cada construcción sintáctica. Si lo desea, para escribir su programa puede usar como referencia estas convenciones Pascal:
http://www.di-mare.com/adolfo/p/convpas.htm
Luego de imprimir la documentación de su programa, y
entregarla en clase, envíe su trabajo a los
asistentes del curso por correo electrónico. Para
esto, haga un archivo empacado
.zip
cuyo nombre sea su número de carnet. Incluya en ese archivo
lo siguiente:
Después de la fecha de entrega del programa, puede usted instalar en su cuenta personal su solución (no instale antes su solución en Internet, pues en ese caso sería usted culpable de facilitar la copia de su trabajo, y en consecuencia se haría acreedor a la sanción respectiva).
Las cuentas de computador en la
ECCI se asignan de acuerdo
al número de carnet. Por ejemplo, si su carnet es el
número 95-28-09, para entregar su tarea usted debe crear el
archivo
952809.zip
para enviarlo por correo electrónico a los
asistentes del curso.
Luego haga en su cuenta personal un subdirectorio llamado
public_html
, que es bajo el que se instalan todas sus
páginas Internet. Por ejemplo, si su solución
está en el archivo
HTML
llamado
"OLP/t3sol952809.htm
", entonces usted debe instalar esa
página en el archivo
public_html/OLP/t3sol952809.htm
de su cuenta. Luego, para acceder esa página Internet, debe
entrar a este sitio:
http://anubis.ecci.ucr.ac.cr/~e952809/OLP/t3sol952809.htm
Como todas las cuentas de estudiante son la letra "e" seguida del
número de carnet, para el estudiante de carnet "952809" la
cuenta es
"e952809
".
Para indicarle al servidor Internet a cuál cuenta entrar se
usa el caracter "~" (Alt-126), seguido del nombre de
la cuenta:
"~e952809
".
|
Adolfo Di Mare <adolfo@di-mare.com>.
|