Compilador y traductor de pseudocódigo para la lógica de programación (CompiProgramación)



Documentos relacionados
Descubrimos patrones en acciones para ahorrar el agua en el hogar

MATERIAL 2 EXCEL 2007

Procesadores de lenguaje Tema 1: Introducción a los compiladores

CONTROL DE ASISTENCIA DE PERSONAL

Java Avanzado Facultad de Ingeniería. Escuela de computación.

APLICACIONES MÓVILES NATIVAS

Introducción a la Informática

Práctica 0. Emulador XENON de la computadora CESIUS

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Fundamentos de la Programación

Soporte lógico de computadoras

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras.

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

DCU Diagramas de casos de uso

Recursos de Aprendizaje

Descripción y tabla de especificaciones para prueba formativa Área Matemática Año 2014

Módulo 2. Inicio con Java

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

MANUAL DEL USUARIO Y GUÍA DE SOPORTE TÉCNICO

Tema 2. Software. Informática (1º Ingeniería Civil)

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Dev C++. Compilador de C para Windows

Figura 4.1 Clasificación de los lenguajes de bases de datos

Por fin, puedo ESCUCHAR y LEER en mi teléfono!

PROGRAMACIÓN ORIENTADA A OBJETOS

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

I.E.S. AGUADULCE PROGRAMACIÓN DIDÁCTICA. Programación CICLO FORMATIVO DE GRADO SUPERIOR DESARROLLO DE APLICACIONES WEB

Guía de usuario web. [EL RECUERDO DE LA TIERRA Y EL AMOR A NUESTRA VIRGEN DEL MAR]

Curso Auditor Interno Calidad

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

CAPÍTULO 2 IMPORTANCIA DE LA ASIGNATURA OUTSOURCING EN TECNOLOGÍAS DE INFORMACIÓN

Diseño de materiales multimedia

Guía para presentar la Declaración Informativa de Operaciones con Terceros (DIOT)

GUÍA DE USO RefShare RefWorks

MANUAL DE USUARIO MÓDULO Web

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Tema: Sobrecarga de Operadores.

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA

Los requisitos de accesibilidad en un proyecto software. Implicaciones de usuarios discapacitados en el proceso software

Vibración y rotación en mecánica cuántica

guía para LOS PADRES APOYANDO A SU HIJO EN TERCER GRADO MATEMÁTICAS

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Guía Corta: Alcance y Asociaciones. 1. Preliminares: Nombres y Asociaciones

Servicio y asistencia Servicio remoto de Videojet

Manual de Usuario SIGECOF MANUAL DE USUARIO SIGECOF DISTRIBUCIÓN INTERNA DE CUOTA DE COMPROMISO

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

MANUAL SISTEMA ENCRIPTACIÓN DE HECHOS RESERVADOS

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

GUÍA DEL DOCENTE MÓDULO 2 COMUNICACIÓN INTEGRAL TERCER Y CUARTO GRADO EDUCACIÓN PRIMARIA CONSULTORA : CELIA VICTORIA DÍAZ CORNEJO

Guía de Usuario. Seguridad Internet. Triara.com SA de CV. Todos los derechos reservados

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

SISTEMAS OPERATIVOS AVANZADOS

PoliEstudio: Una herramienta computacional para la enseñanza de la Matemática, en secundaria

Menús. Gestor de Menús

Diseño Arquitectónico. Objetivos. Establecer la arquitectura global del sistema de software. Arquitectura de software.

SISTEMA DE APARTADO DE SALAS PARA EVENTOS

VENTAJAS Y DESVENTAJAS DE LAS TECNOLOGIAS

UNA EXPERIENCIA DIDÁCTICA:

Taller 2. Universidad: Ana G. Méndez COIS 202. Herramientas para la integración de tecnología. Presentado por: María de los A.

Como lo expresamos cuando describimos el problema objeto de

Capítulo 3. Análisis y Diseño

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

FICHAS PARA DIAGNÓSTICO Y DESARROLLO DE HABILIDADES SIMCE TIC / Audiovisual de contextualización histórica

UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA UNIDAD DE PRODUCCIÓN DE LA ESCUELA DE INFORMÁTICA SISTEMA WEB DE SYLLABUS Y CONTROL DE PLANES DE CLASE

C E N T R O D E F O R M A C I Ó N T É C N I C A P R O F A S O C. Modelo Educativo

ORIENTACIONES SIMCE TIC

EL PÉNDULO SIMPLE. Laboratorio de Física General Primer Curso (Mecánica) 1. Objetivo de la práctica. 2. Material. Fecha: 07/02/05

Práctica: Compartición y seguridad de los recursos de red

Modulo 1 El lenguaje Java

Fórmulas y funciones

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

Instructivo de Microsoft Excel 2003

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

Sistema electrónico de presentación del informe conforme al artículo 15 del Convenio

DESCRIPCIÓN TÉCNICA SYSTEM MANAGER SOFTWARE (SMS)

GUÍA DE INSTALACIÓN Y ACTIVACIÓN

BUSINESS OBJECTS EDICIÓN DE REPORTES NIVEL I

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Diseño Estructurado de Algoritmos

Para poder acceder al sistema sólo deberá ingresar la siguiente liga desde el navegador de su preferencia:

AULA DE MAYORES UNIVERSIDAD DE MURCIA VICERRECTORADO DE EXTENSIÓN UNIVERSITARIA

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Construcción de Escenarios

19. Packages o paquetes

RAPID TYPING. Qué es?

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Portal INAPI INAPI Conecta Instructivo de Gestión en Sitio Web

SECRETARÍA DE EDUCACIÓN PÚBLICA SUBSECRETARÍA DE EDUCACIÓN SUPERIOR COORDINACIÓN GENERAL DE UNIVERSIDADES TECNOLÓGICAS

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Asignaturas antecedentes y subsecuentes

Sophos Anti-Virus para Mac OS X Ayuda

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA

INSTRUCTIVO PARA EL MANEJO DEL PROGRAMA ACADÉMICO E INFORME ANUAL DE ACTIVIDADES

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Transcripción:

Compiador y traductor de pseudocódigo para a ógica de programación Pseudocode compier and transator for programming ogic Ingeniero de Sistemas, Universidad Incca de Coombia, Especiaista en Ingeniería de Software, Universidad Distrita Francisco José de Cadas y Magíster en Ingeniería de Sistemas, Universidad Naciona de Coombia. Docente de tiempo competo de a Universidad Distrita Francisco José de Cadas adscrito a a Facutad Tecnoógica. cavanegas@udistrita.edu.co Casificación de artícuo: investigación echa de recepción: abri 15 de 2005 echa de aceptación: junio 27 de 2005 Paabras cave: compiador, seudocódigo, agoritmo, ógica, programación. Key words: compier, pseudocode, agorithm, ogic, programming. R EUMEN CompiProgramación es una herramienta diseñada como recurso didáctico para a enseñanza de a ógica de programación. La herramienta maneja tres móduos. E primero permite a creación de agoritmos en pseudocódigo utiizando e paradigma estructurado; e pseudocódigo puede verificarse mediante un compiador que permitirá detectar posibes errores semánticos o sintácticos; además puede reaizarse a traducción de seudocódigo a os enguajes de programación C++ y Java. E segundo móduo permite hacer un seguimiento de pseudocódigo paso a paso; aí e usuario interactúa con as entradas y saidas de agoritmo. E tercer móduo es un evauador de expresiones que mostrará a usuario e desarroo de una expresión aritmética y/o ógica paso a paso. A BSTRACT CompiProgramacion is a too designed ike didactic resource for education of programming ogic. The too handes three modues. First it aows to the creation of agorithms in pseudocode using the structured paradigm; the pseudocode can be verified by means of a compier who wi aow to detect possibe semantic errors or syntactic; in addition the transation of the pseudocode to the programming anguages C++ and Java can be made. The second modue aows step by step to make a revision of the pseudocode; there the user interacts with the entrances and exits of the agorithm. The third modue is an evauator of expressions that wi step by step show the user the deveopment of an arithmetica and/or ogica expression. 64 Tecnura año 8 No.16 primer semestre de 2005

1. Introducción Las técnicas de programación se constituyen en temática obigada de os usuarios o estudiantes de informática en sus primeros años de estudio. Esta circunstancia convierte as asignaturas específicas de programación de os panes de estudio en espacios académicos cave de a formación profesiona; e éxito o fracaso en eas infuirá decisivamente en os estudios superiores restantes (Joyanes, 1998: 5). En esta área un curso de ógica de programación es indispensabe; se pretende desarroar a capacidad anaítica y creadora de estudiante, para mejorar su destreza en a eaboración de agoritmos que sirvan de base para a codificación de os diversos programas que tendrán que desarroar. Para programar es importante seguir un estio y una metodoogía apropiados. E propósito no es que e código fuente quede más bonito, sino mejorar su caidad y eficacia. Hay que entender y asumir a diferencia entre quien consigue que sus programas funcionen y quien eabora sus programas en forma coherente, pero además ogra mejorar su ejecución en términos de veocidad o consumo de recursos (Vanegas, 2005: 25). Programar es ago más que aprender un enguaje; es también tener e conocimiento previo para anaizar y diseñar un agoritmo que dé soución a un probema panteado. Un enguaje de programación no es más que e vehícuo con e cua se da forma a as ideas, uego no es o primordia; o es más bien a ógica de programación, que a su vez aportará os parámetros de soución a probema que se desea resover. CompiProgramación es una herramienta que podrá empearse como recurso didáctico para e proceso de formación en ógica de programación; además, permitirá a usuario, de manera interactiva, a creación de agoritmos y su depuración y seguimiento paso a paso; también e ayudará en a evauación de expresiones aritmética y/o ógicas. 2. Qué es CompiProgramación? CompiProgramación es una herramienta de software didáctico desarroada en e enguaje de programación Java (Deite, 2004); tiene como objetivo apoyar e aprendizaje de a ógica de programación utiizando e paradigma estructurado 1. La herramienta cuenta con una interfaz comunicativa didáctica que permite a estudiante e fáci aprendizaje de a sintaxis y as regas semánticas de seudocódigo; para eo dispone de un anaizador gramatica con recuperación de errores, con submenús y barra de herramientas que permiten a usuario una interacción agradabe y de fáci manejo. La herramienta consta de tres móduos. E primero denominado compiador y traductor de pseudocódigo 2 a C++ y Java, permite escribir un pseudocódigo y compiaro, con e fin de detectar posibes errores semánticos o sintácticos. Cuando a compiación se ha reaizado con éxito, e usuario podrá traducir e pseudocódigo a os enguajes de programación C++ y Java (autónomos y appets 3 ). Un segundo móduo faciitará e seguimiento de un agoritmo en seudocódigo, ejecutándoo paso a paso y visuaizando e efecto de cada ínea de código sobre é; este proceso es simiar a un depurador de código, pero en este caso a depuración no se reaiza para buscar errores, sino para observar a ejecución de entradas y saidas de agoritmo. En un tercer móduo, amado evauador de expresiones, pueden incuirse varias expresiones aritméticas y/o ógicas, con e fin de evauaras para determinar os vaores que pueden tomar as diferentes expresiones, variabes o constantes. Con CompiProgramación pueden manejarse os siguientes conceptos de paradigma estructurado: 1 E software fue desarroado por e autor de este artícuo como trabajo de grado para optar e títuo de Magíster en Ingeniería de Sistemas en a Universidad Naciona de Coombia, Bogotá D.C. 2 E pseudocódigo es un enguaje para especificar un agoritmo. 3 E appet es un programa en Java, creado para ser ejecutado desde otra apicación, normamente desde un navegador de Internet. Compiador y traductor de pseudocódigo para a ógica de programación 65

Las estructuras de secuencia La estructura de aternativa simpe Si La estructura de aternativa compuesta Si-Sino La estructura de aternativa mútipe Seeccionar Caso La estructura de repetición Mientras La estructura de repetición Haga / Mientras La estructura de repetición Desde / Para Estructura de datos (arregos) E manejo de funciones de usuario y recursivas E manejo de procedimientos Manejo básico de archivos 3. Móduo compiador de pseudocódigo y traductor a C++ y Java Este es e móduo principa de CompiProgramación. Cuenta con una interfaz que contiene tres ventanas: a primera permite crear, modificar o eiminar un pseudocódigo, abriro desde un archivo y amacenaro en disco 4. Para crear e pseudocódigo, es necesario que éste contenga un procedimiento principa, en e cua se escribirán todas as instrucciones de agoritmo. Su esquema es e siguiente: CompiProgramación cuenta con tipos de datos (reaes, enteros) y paabras reservadas; estas útimas no pueden ser nombres de variabes, constanprocedimiento principa() constantes <decaración de constantes> variabes <decaración de variabes> inicio fin_procedimiento 4 A ingresar a a apicación, esta contiene un ejercicio ejempo de pseudocódigo. tes, funciones o procedimientos. Las paabras reservadas de CompiProgramación son: escribir: permite imprimir en pantaa un texto; su formato es: escribir (<variabe o mensaje>) Por ejempo, si se desea imprimir en pantaa hoy es día de fiesta, se escribiría o siguiente: escribir( hoy es día de fiesta ) eer: permite amacenar en una variabe un vaor eído desde e tecado; su formato es: eer (<nombre de variabe>) Por ejempo, si se desea amacenar un vaor digitado desde e tecado en una variabe X, se escribiría o siguiente: eer(x) cambiolinea: permite reaizar un sato de ínea en a pantaa; su formato es: escribir (cambiolinea) Por ejempo, si se desea imprimir en pantaa hoa en una ínea y CompiProgramación en a siguiente, se escribiría así: escribir( hoa ) escribir(cambiolinea) escribir( CompiProgramación ) si: representa una toma de decisión sencia. Si a condición es verdadera, se reaizan as acciones que pertenezcan a si y se continúa con e resto de programa; si a condición es fasa no entrará a si y, en consecuencia, todas as instrucciones que se encuentran en e si no se ejecutarán; su formato es: si (<condición>) entonces <acción> fin_si Por ejempo, si A = 10 y B = 8 si (A>B) entonces escribir( Hoa Gente ) fin_si 66 Tecnura año 8 No.16 primer semestre de 2005

Dado que a condición es verdadera (A es mayor que B), entrará a si e imprimirá Hoa Gente. Si - sino: representa una toma de decisión con dos opciones, si a condición es verdadera se optará por e si; en caso contrario se ingresará a sino. En esta sentencia de contro e programa sóo tomará una de as dos posibiidades y en ningún caso as dos aternativas; su formato es: si (<condición>) entonces <accion1> sino <accion2> fin_si Por ejempo, si A = 10 y B = 8 si (B>A) entonces escribir( entre por e si ) sino escribir( entre por sino ) fin_si Dado que a condición es fasa (B no es mayor que A), e agoritmo optará por e sino e imprimiría entre por sino. Seeccionar: es un proceso de toma de decisión con varias opciones; de acuerdo con e vaor de una variabe se escogerá una entre varias aternativas; su formato es: seeccionar (<variabe>) de caso 1<itera>: caso 2 <itera>: otrocaso: fin_seeccionar con-ciencias Por ejempo, si A = 2 seeccionar (A) de caso 1: escribir( en e caso uno ) caso 2: escribir( en e caso dos ) otrocaso: escribir( No es un número ) fin_seeccionar En este ejempo, dado que a variabe A = 2 se ingresaría a caso 2 y se imprimiría en pantaa en e caso dos. para / hasta: ejecuta as instrucciones de cico un número especificado de veces y de modo automático controa e número de iteraciones o pasos a través de cuerpo de cico; su formato es: para (<variabe> = <vaor inicia> hasta <vaor fina> paso <vaor_incremento>) hacer fin_para Ejempo 1: cacuar a suma de os números de 1 a 10 suma=0 para (i = 1 hasta 10 ) hacer suma=suma +i fin_para escribir( suma igua a: +suma) En este caso, a variabe suma obtendría un vaor de: 55. En agunos casos es necesario hacer incrementos o decrementos diferentes de 1 (por omisión, e incremento es de 1), es necesario especificar e incremento o decremento con a opción paso. Compiador y traductor de pseudocódigo para a ógica de programación 67

Ejempo 2: hacer a suma de os números pares entre 2 y 20 para (i = 2 hasta 20 paso 2) hacer suma=suma +i fin_para escribir( suma igua a: +suma) En este caso a variabe suma obtendría un vaor de:110. mientras: en esta estructura repetitiva., e cuerpo de cico se repite mientras se cumpe una determinada condición. Si ésta se evaúa fasa, no se toma ninguna acción y e programa prosigue con a siguiente instrucción después de cico. Si a expresión es verdadera se ejecutan as instrucciones de cico y uego se evaúa de nuevo a expresión. Este proceso se repite una y otra vez mientras a expresión sea verdadera; su formato es: mientras (<condición>) hacer <incremento> o <decremento> fin_mientras Ejempo: cacuar a suma de os números de 1 a 10 suma=0 i=1 mientras i<=10 hacer suma=suma +i i=i+1 fin_mientras escribir( suma igua a: +suma) En este caso, a variabe suma obtendría un vaor de:55. haga / mientras: existen situaciones en as cuaes se desea que un cico se ejecute a menos una vez antes de comprobar a condición de repetición. En a estructura mientras, si e vaor de a expresión iniciamente es faso e cuerpo de cico no se ejecutará; por esto se necesitan otros tipos de estructuras repetitivas. La estructura haga/mientras se ejecuta por o menos una vez; su formato es: haga mientras (<condición>) Ejempo : cacuar a suma de os números de 1 a 10 suma=0 i=1 haga suma=suma+i i=i+1 mientras (i<=10) escribir( a suma tota es: +suma) En este caso, a variabe suma obtendría un vaor de: 55. funciones: una función puede definirse como un conjunto de instrucciones agrupadas bajo un nombre que cumpe una tarea específica en un programa. Cuando os programas empiezan a ser más compejos, es necesario dividiros en partes más pequeñas, denominadas funciones, para que cada una ejecute una tarea específica. Para invocar o amar a función soo debe especificarse e nombre y a ista de parámetros entre paréntesis; su formato es: funcion <nombre_funcion> (<arg1:tipo1,...>) : <tipo_de_vaor_retornado> constantes <decaración de constantes> variabes <decaración de variabes> inicio <expresión> fin_funcion Por ejempo, capturar dos números e imprimir su suma por medio de una función: 68 Tecnura año 8 No.16 primer semestre de 2005

funcion suma(arg:entero, arg2:entero ):entero variabes c:entero inicio c=arg+arg2 c fin_funcion Un ejempo práctico de pseudocódigo, es: procedimiento principa() variabes ato: rea ancho: rea argo: rea voumen: rea inicio escribir( Escriba e ato: ) eer(ato) escribir(cambiolinea) escribir( Escriba e ancho: ) eer(ancho) escribir(cambiolinea) escribir( Escriba e argo: ) eer(argo) escribir(cambiolinea) voumen = argo * ato * ancho escribir( e voumen de a caja es: ) escribir(voumen) fin_procedimiento E pseudocódigo se compia para encontrar os posibes errores semánticos o sintácticos; a segunda ventana permite visuaizar os errores generados en esta compiación; por cada error generado se muestra e identificador de error, su descripción y e número de fia y coumna donde éste ocurrió. Por ejempo: Compiación terminada con errores. 3 errores. Cod 160: Error Sin: Línea 9:6: Lamado a procedimiento: Se esperaba encontrar ) Cod 1033: Error Sem: Línea 17:6: Expresión a a derecha de = puede tener variabes no iniciaizadas Cod 1050: Error Sem: Línea 19:6: Lamado a procedimiento puede que no se haya iniciaizado una variabe en e parámetro 1. Una tercera ventana permite visuaizar a traducción de seudocódigo a os enguajes de programación C++ y Java (autónomos y appets); estas traducciones pueden ser amacenadas en disco. Continuando con e ejempo anterior, a hacer a traducción a C++ a herramienta genera e siguiente código: #incude <iostream.h> void main() { foat ato; foat ancho; foat argo; foat voumen; cout<< Escriba e ato: ; cin>>ato; cout<< \n ; cout<< Escriba e ancho: ; cin>>ancho; cout<< \n ; cout<< Escriba e argo: ; cin>>argo; cout<< \n ; voumen=argo*ato*ancho; cout<< e voumen de a caja es: ; cout<<voumen; } Compiador y traductor de pseudocódigo para a ógica de programación 69

A hacer a traducción a enguaje Java en un subprograma appet, se genera e siguiente código: import java.awt.*; import java.appet.*; pubic cass MyCase extends Appet{ pubic booean action(event e, Object o) { foat ato=0; foat ancho=0; foat argo=0; foat voumen=0; if(e.target==mybutton1){ ato = Foat.parseFoat(t_ato.getText()); ancho = Foat.parseFoat(t_ancho.getText()); argo = Foat.parseFoat(t_argo.getText()); _aux17.settext( + Escriba e ato: ); _aux19.settext( + Escriba e ancho: ); _aux21.settext( + Escriba e argo: ); voumen=argo*ato*ancho; _aux23.settext( + e voumen de a caja es: ); _voumen.settext( +voumen);} return true;} pubic void init(){ add(_aux17 = new Labe()); add(t_ato = new TextFied(10)); add(_aux19 = new Labe()); add(t_ancho = new TextFied(10)); add(_aux21 = new Labe()); add(t_argo = new TextFied(10)); add(_aux23 = new Labe()); add(_voumen = new Labe()); add(mybutton1 = new Button( Respuesta ));} Button mybutton1; TextFied t_ato; TextFied t_argo; TextFied t_ancho; Labe _aux19; Labe _voumen; Labe _aux17; Labe _aux23; Labe _aux21;} La interfaz también cuenta con submenús y una serie de iconos que permiten que a interacción usuariosistema se efectúe de forma sencia y dinámica. A ejecutar os anteriores pasos se obtendrá a siguiente pantaa: Figura 1. Compiador y traductor de pseudocódigo a C++ y Java E compiador y traductor de pseudocódigo a C++ y Java está compuesto por anaizadores gramaticaes (éxico, sintáctico y semántico) con recuperación de errores. La herramienta toma como entrada un agoritmo en pseudocódigo, éste es compiado y evauado por os anaizadores gramaticaes con e fin de detectar os posibes errores escritos en e pseudocódigo. 3.1 Anaizador éxico Es a parte de compiador 5 que verifica e programa fuente, caracter a caracter y, a partir de éste, construye unas entidades primarias amadas tokens 6. 5 Un compiador es un programa que recibe como entrada un programa escrito en un enguaje de nive medio o superior (e programa fuente) y o transforma a su equivaente en enguaje ensambador (e programa objeto). 6 E token es una paabra de enguaje conformada por símboos terminaes de a gramática. En enguaje Java un token puede ser variabe, pero tendrá diferentes interpretaciones dependiendo de contexto; en cambio, e token int denota un tipo de dato entero. 70 Tecnura año 8 No.16 primer semestre de 2005

En otras paabras, e anaizador exicográfico transforma e programa fuente en unidades exicográficas (Vanegas, 2005: 14), (TEUFEL, 1995). La pantaa de móduo paso a paso es a siguiente: Figura 2. Ejecución seudocódigo paso a paso 3.2 Anaizador sintáctico Comprueba que as sentencias que componen e texto fuente sean correctas en e enguaje correspondiente, creando una representación interna que corresponde a a sentencia anaizada. De esta manera se garantiza que sóo serán procesadas as sentencias que pertenezcan a enguaje fuente. Así como en as demás etapas, durante e anáisis sintáctico, se van mostrando os errores que se encuentran (Vanegas, 2005: 14; Teufe, 1995). 3.3 Anaizador semántico Se ocupa de anaizar si a sentencia tiene agún significado. Pueden encontrarse sentencias sintácticamente correctas, pero que no pueden ejecutarse porque carecen de sentido. En genera, e anáisis semántico se hace simutáneamente con e sintáctico, introduciendo en este útimo rutinas semánticas (Vanegas, 2005: 15; Teufe, 1995). 4. Móduo ejecución pseudocódigo paso a paso Para acceder a este móduo debe existir un pseudocódigo previamente compiado (sin errores sintácticos ni semánticos) y amacenado en disco. Este móduo de ejecución paso a paso contiene a misma interfaz de móduo compiador y traductor de pseudocódigo a C++ y Java. En é se encontrarán tres ventanas: a primera permite a usuario hacer un seguimiento de agoritmo paso a paso, visuaizando ínea por ínea e pseudocódigo; en a segunda ventana se observarán os diferentes vaores que toman as variabes y constantes contenidas en e agoritmo; una tercera ventana permite visuaizar a simuación de una consoa con as entradas y saidas de programa. E móduo también contiene as opciones que e permiten reaizar e seguimiento de agoritmo, a saber: inicio, paso a paso, reiniciar y ejecución continúa. 5. Móduo evauador de expresiones Para acceder a este móduo no es necesario que exista un pseudocódigo, pero sí es necesario acceder e móduo compiador y traductor de pseudocódigo a C++ y Java. Aí e usuario puede hacer a evauación de una expresión aritmética y/ o ógica y visuaizar paso a paso e procedimiento de evauación de a expresión. E móduo cuenta con cuatro ventanas. La primera permite e ingreso de variabes; e usuario puede escribir e nombre y vaor de cada una de as que intervienen en a evauación de a expresión; en una segunda ventana se visuaiza e vaor de cada variabe mostrando a case de dato, nombre y vaor de a variabe. La tercera ventana permite visuaizar e proceso de evauación paso a paso y en a cuarta se visuaizan os posibes errores contenidos en a expresión. E evauador de expresiones está compuesto por os anaizadores gramaticaes que son utiizados en e móduo compiador y traductor de pseudocódigo a C++ y Java. La pantaa de móduo de evauación de expresiones se presenta en a figura 3: Compiador y traductor de pseudocódigo para a ógica de programación 71

Figura 3. Evauador de expresiones 6. Concusiones CompiProgramación es una herramienta que sirve de apoyo didáctico a os interesados en a ógica de programación, con e propósito de anaizar y diseñar agoritmos que den soución a un probema panteado. La herramienta cuenta con una interfaz comunicativa diseñada con propósitos pedagógicos, que faciita a usuario una interacción agradabe con e sistema y es de fáci manejo. E usuario siempre estará en contacto con a apicación, permitiéndoe manejar os diferentes móduos de a apicación con senciez. CompiProgramación contiene una ayuda didáctica que permite a usuario a operación sencia para a creación de pseudocódigo y a traducción a os enguajes de programación C++ y Java; además, puede hacerse un seguimiento paso a paso de pseudocódigo para determinar as entradas y saidas de agoritmo. CompiProgramación contiene una ayuda en ambiente Windows que permite conocer todo acerca de a apicación, gramática de seudocódigo, reación de errores sintácticos y semánticos identificabes y funciones preexistentes. Referencias bibiográficas [1] DEITEL, H y DEITEL, P. (2004) Cómo programar e Java. 5 edición. México D.F.: Prentice Ha. [2] JOYANES A., L. (2003). Fundamentos de programación, agoritmos y estructura de datos, 1ª ed. México D.F.: Prentice Ha. [3] TEUFEL B., SCHMIDT S. y TEUFEL T. (1995) Compiadores, conceptos fundamentaes. Wimington, Ed. Addison-Wesey. [4] VANEGAS, Caros A. (2005) Compiador y traductor de pseudocódigo para a ógica de programación. Trabajo de grado para optar a títuo de Magíster en Ingeniería de Sistemas. Bogotá: Universidad Naciona de Coombia. Bibiografía recomendada [1] AHO J., ULLMAN J. D. (1998). Compiadores: principios, técnicas y herramientas, 1ª ed., Ed. Addison- Wesey. [2] BECERRA S., César. (1993) Lenguaje C, e nuevo concepto. Tomo I. Bogotá: Kimpres Ltda. [3] BOOCH, G. (1996) Anáisis y diseño orientado a objetos con apicaciones. 2ª. ed. Ed. Addison Wesey. [4] CEBALLOS, M.A. (2002) Trabajo de enguajes y autómatas, ITESI. [5] JOYANES A., L. (1998) Fundamentos de programación, agoritmos y estructura de datos, 1ª ed. México D.F.: Prentice Ha. [6] LEMONE, K. (1996) Fundamentos de compiadores, cómo traducir a enguaje de computadora. 1ª. ed. México D.F.: Continenta. [7] PRESSMAN, R. (1994) Ingeniería de software, un enfoque práctico. 3ª. ed. Madrid: McGraw Hi. [8] The on-ine Java 2 SDK Documentation.2001. En: http://java.sun.com/j2se/1.3/docs/index.htm 72 Tecnura año 8 No.16 primer semestre de 2005