Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1402
I Semestre 1999
[<=] [home] [<>] [\/] [=>]
CI-1402 Organización de Lenguajes de Programación

Examen Final [solución]

      Duración: dos horas. Lea bien el examen antes de hacerlo. El examen es a libro abierto. Cuenta la documentación. Cuenta la redacción y la ortografía. Puede hacer el examen con lápiz. ¡No haga más de lo que se le pide! ¡Conteste todas las preguntas!

1) [25 pts] Parametrización y polimorfismo

      Considere la implementación de las rutinas first() y second() que aparecen la Figura 3 (pp 348), en:
[MDC­91] Morrison, P. & Dearle, A. & Connor, R. C. H. & Brown, A. L.: An Ad Hoc Approach to the Implementation of Polymorphism, ACM Transactions on Programming Languages and Systems, Vol.13 No.3, pp [342­371], Julio 1991.

1.a) [5 pts] Translitere al lenguaje C++ la implementación que aparece en ese artículo.

1.c) [20 pts] Escriba el código C o Pascal (no C++) que resulta de instanciar las plantillas usadas en la pregunta anterior. Translitere directamente el algoritmo, como lo haría un compilador que reciba programas C++ y los tradujera a C o Pascal. Use las invocaciones a second() que están en la Figura 3 en [MDC­91], pero agregue otra más en que se use la clase string de STL.

2) [25 pts] C++ vs Perl

2.a) [8 pts] Describa una situación no trivial en que es mejor usar el lenguaje C++ en lugar de Perl. Para esto, justifique su escojencia de los dos criterios más importantes que deben usarse para evaluar ambos lenguajes, y muestre que C++ es claramente superior respecto a esos dos criterios.

2.b) [8 pts] Describa una situación no trivial en que es mejor usar el lenguaje Perl en lugar de C++. Para esto, justifique su escojencia de los dos criterios más importantes que deben usarse para evaluar ambos lenguajes, y muestre que Perl es claramente superior respecto a esos dos criterios.

2.c) [9 pts] Describa una situación no trivial en que es tan conveniente usar el lenguaje Perl como C++. Para esto, justifique su escojencia de los dos criterios más importantes que deben usarse para evaluar ambos lenguajes, y muestre que ambos lenguajes son equivalentes respecto a esos dos criterios.

3) [25 pts] Programación Perl

      Haga un programa que lea un grupo de archivos ASCII para obtener de ellos las direcciones electrónicas de las solicitudes que haga. Los archivos contienen colecciones de mensajes de correo electrónico como las que se muestran en la siguiente figura:

From cyberteq3@mafalda.teletel.com.ar  Wed May 20 07:51:15 1998
Return-Path: <cyberteq3@mafalda.teletel.com.ar>
Received: from teletel.com.ar (200.10.110.101)
    by mail02.rapidsite.net (8.8.5/8.8.5) with SMTP id JAA03974
    for <ci1402@ecci.ac.cr>; Wed, 20 May 1998 09:50:40 -0400 (EDT)
Received: from pc3 by teletel.com.ar with smtp
    (Smail3.1.29.1 #2) id m0yc3eF-000sC; Wed, 20 May 98 10:50 GMT
Message-Id: <m0yc3eF-000gcsC@teletel.com.ar>
Comments: Authenticated sender is <cyberteq3@mail.teletel.com.ar>
From: Juan Ramos <cyberteq3@smail.teletel.com.ar>
To: ci1402@ecci.ac.cr
Date: Wed, 20 May 1998 10:57:43 +0000
MIME-Version: 1.0
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Subject: Carta al estudiante I-Sem-1995
Priority: normal
X-mailer: Pegasus Mail for Win32 (v2.53/R1)
X-Loop-Detect: 1
Status: RO
X-Status:

Quiero información sobre el curso para un estudio personal.

Figura 1

      Cada mensaje empieza con un renglón From que está pegado a la izquierda, pero que no tiene dos puntos (:). El renglón From: aparece siempre antes del renglón Subject:, y contiene la dirección de correo electrónico a extraer. En el renglón Subject: viene la indicación de la información a extraer. Para este ejemplo, al procesar el archivo su programa debe extraer los siguientes datos:
      Juan Ramos <cyberteq3@smail.teletel.com.ar>
      http://www.ecci.ac.cr/~ci1402/1995-1

      Cada archivo a procesar contiene muchos mensajes. Su programa debe dejar en la salida estándar todas las parejas de renglones que extraiga. Sin embargo, cuide de evitar procesar renglones que no contengan la línea de Subject:.

  Diane Wood Sponheim <dsponhei@luthersem.edu> 
  http://www.ecci.ac.cr/~ci1402/1995-1

  Vary Blanco <Vary@hotmail.com>
  http://www.ecci.ac.cr/~ci1402/1997-2

  Concepcion Larios <concep@caribe.net>
  http://www.ecci.ac.cr/~ci1402/1995-2

  Asparagus Jovenus <beavis@hp9000.cpd.uva.es>
  http://www.ecci.ac.cr/~ci1402/1996-1

  Andres Rivera <arivera@quercus.inbio.ac.cr>
  http://www.ecci.ac.cr/~ci1402/1998-1

  Carolina Uribe <mcuribe@reymoreno.net.co>
  http://www.ecci.ac.cr/~ci1402/1993-3
Figura 2

4) [25 pts] Construcción de aplicaciones

4.a) [10 pts] Además del compilador del lenguaje, explique cuáles son las dos herramientas de programación más importantes que debe manejar con gran habilidad un buen programador de aplicaciones.

4.b) [5 pts] Explique cuáles alternativas existen para implementar programas que usan Internet como plataforma de acceso y distribución de datos.

4.c) [10 pts] Describa con gran detalle tres criterios técnicos que sirvan para definir si una aplicación debe instalarse en una plataforma de tres capas, o usando otras tecnologías más simples de construcción de sistemas.

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 1999
Derechos de autor reservados © 1999
[home] <> [/\]