Universidad de Costa Rica
|
|
I Semestre 1999 | Profesor Adolfo Di Mare |
CI-1306 | Horas: | 4 |
CI-1302 | Créditos: | 4 |
|
|
Para un curso posterior, el de construcción de compiladores por ejemplo, se deja el estudio histórico de la evolución de los lenguajes, el detalle de los conceptos teóricos que se requieren para especificar lenguajes, o los trucos que han sido desarrollados para implementar compiladores e interpretadores.
Para complementar las clases magistrales, a lo largo del curso los estudiantes deberán desarrollar dos proyectos. El Primer proyecto consiste en implementar un programa que tenga que manipular código fuente para 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. Para este proyecto los estudiantes se organizarán en grupos. El Segundo proyecto consistirá en escribir un artículo de alrededor de 5,000 palabras, en parejas, sobre un tema relevante al curso. Los dos proyectos deben entregarse una semana antes de que termine el curso.
Todos los trabajos deben entregarse en formato HTML, para se
instalados en el sitio Internet del curso:
http://www.ecci.ucr.ac.cr/~ci1402
La mayor parte de las lecturas obligatorias del curso son
artículos de revista, aunque es conveniente que cada
estudiante tenga acceso al libro de Bjarne Stroustrup sobre C++
[Str98], que es el lenguaje que se
usar como marco de referencia en todo el curso. Este libro tiene
un costo de unos $ 40, y puede conseguirse en Internet en
Amazon.com o en
Barnes && Noble. Además, hay
otros lugares más baratos en donde
adquirir libros, como
Book Pool
[http://www.bookpool.com
].
(Un índice muy completo de bibliotecas electrónicas
está en
Book Wire).
Cada estudiante es responsable de conseguir sus libros.
Además, en el sitio Internet del curso habrá
material adicional.
[Str98] |
Stroustrup, Bjarne:
The C++ Programming Language, 3rd edition,
ISBN 0201889544;
Addison-Wesley, 1998.
http://www.research.att.com/~bs/papers.html
|
Exámenes P#1 - P#2 Final |
Tareas #1 - #2 |
Artículos #1 - #2 - #3 - #4 - #5 - #6 - #7 #8 - #9 - #10 - #11 - #12 - #13 01.zip - 02.zip - 03.zip - 04.zip - 05.zip - 06.zip - 07.zip 08.zip - 09.zip - 10.zip - 11.zip - 12.zip - 13.zip |
Otros Proyecto |
Examen Parcial #1 20% Proyecto #1 10% Examen Parcial #2 20% Artículo 10% Examen Final 30% Otros: 10%
[GR98] |
Gothard, William &
Rodner, Les:
Strategies for Solving the Y2K Problem,
Dr. Dobb's Journal,
No.285, pp [26, 28, 30, 32, 109],
Mayo 1998.
|
[MF98] |
Moore, Robert L. &
Foley, D. Gregory:
Date Compression and Year 2000 Challenges,
Dr. Dobb's Journal,
No.285, pp [2022, 24, 109],
Mayo 1998.
|
[Rie98] |
Riedel, Jost:
Y2K Challenges,
Dr. Dobb's Journal,
No.285, pp [1011],
Mayo 1998.
|
[Swa98] |
Swaine, Michael:
A Chat with Bob Bemer,
Dr. Dobb's Journal,
No.285, pp [115117],
Mayo 1998.
|
|
|
[Bec98] |
Becker, Pete:
C++ Standard Approved,
C/C++ User's Journal,
Vol.16, No.2,
pp [8993],
Febrero 1998.
|
[Bou91] |
Boundy, David:
A taxonomy of programmers,
ACM SigSoft,
Vol.16 No.4,
pp [2330],
Octubre 1991.
|
[Pla97] |
Plauger, P. J.:
Embedded C++,
C/C++ Users Journal,
Vol.15 No.2,
pp [3539],
Febrero 1997.
|
[Ret91] | Rettig, Marc:
Nobody Reads Documentation,
Communications of the ACM, Vol.34 No.7,
pp [1924],
Julio 1991.
|
[Wil91] | Wilkes, Maurice V.:
Software and the Programmer,
Communications of the ACM, Vol.34 No.5,
pp [2324],
Mayo 1991.
|
|
|
[DiM99a] |
Di Mare, Adolfo:
C Iterators,
Técnico ECCI-98-01,
Escuela de Ciencias de la Computación e Informática,
Universidad de Costa Rica, Abril, 1999.
http://www.di-mare.com/adolfo/p/c-iter.htm
|
[Mus98] |
Musser, David R.:
The C++ Standard Template Library
(Internet reference index),
1998.
http://www.cs.rpi.edu/~musser/stl-book/
|
[Zig95] |
Zigmond, Dan:
Generic Programming and the C++ STL,
Dr. Dobbs's Journal, No.233,
pp [1820, 22, 24, 96, 98100],
Agosto 1995.
|
[Zig96a] |
Zigmond, Dan:
STL Iterators,
Dr. Dobbs's Journal, No.248,
pp [24, 2628, 30, 31, 84],
Junio 1996.
|
[Zig96b] |
Zigmond, Dan:
STL Algorithms,
Dr. Dobbs's Journal, No.250,
pp [32, 3436, 9294],
Agosto 1996.
|
[STL95] | Stepanov, Alexander & Lee, Meng:
The C++ Standard Template Library,
Generic Programming Project, Hewlett Packard Research Labs,
1995.
ftp://butler.hpl.hp.com/stl/stl.zip .
|
|
|
[All97a] |
Allison, Chuck:
Error Handling with C++ Exceptions,
Part 1,
C/C++ User's Journal,
Vol.15, No.11,
pp [7380],
Noviembre 1997.
|
[All97b] |
Allison, Chuck:
Error Handling with C++ Exceptions
Part 2,
C/C++ User's Journal,
Vol.15, No.12,
pp [5761, 63, 6567],
Diciembre 1997.
|
[DiM94j] | Di Mare, Adolfo:
Manejo de excepciones en Turbo Pascal,
Reporte Técnico ECCI9410
(Revisión 4),
Proyecto 32689019,
Escuela de Ciencias de la Computación e Informática
(ECCI),
Universidad de Costa Rica
(UCR),
1994.
http://www.di-mare.com/adolfo/p/except.htm
|
|
|
[Bet95] |
Betz, Mark:
Networking Objects with CORBA,
Dr. Dobb's Journal,
No.236, pp [1820,22,25,26],
Noviembre 1995.
|
[Bey98] | Beyer, Malcom:
Encapsulating the ODBC API,
C/C++ User's Journal,
Vol.16, No.7,
pp [19, 20, 24, 26, 28, 30, 32, 34, 35],
Julio 1998.
|
[BDG93] | Biliris, A. & Dar, S. & Gehani, N.H.:
Making C++ Objects Persistent: the Hidden Pointers,
Software Practice and Experience,
Vol.23(12),
pp [12851303],
Diciembre 1993.
|
[Cha96] |
David, Channon:
Persistence for C++,
Dr. Dobb's Journal,
No.252, pp [46, 4850, 52, 95, 96],
Octubre 1996.
|
[Rag95] | Ragen, Alex:
C Database Programming with ODBC,
C/C++ User's Journal,
Vol.13, No.11,
pp [7378],
Noviembre 1995.
|
[RL98] |
Resendes, Robert
&
Laukien, Marc:
Introduction to CORBA Distributed Objects,
C/C++ User's Journal,
Vol.16, No.4,
pp [5558, 6066],
Abril 1998.
|
|
|
[Cel97] | Celko, Joe:
Underwhelmed by New Technology,
DBMS
September 1997, SQL for Smarties (Volume 10, #10, pp 18).
http://www.bmsmag.com/9709d06.html
|
[Lin97a] | Linthicum, David S.:
Fun with Partitioning,
DBMS
September 1997, Application Architect
(Volume 10, #10, pp 24).
http://www.dbmsmg.com/9709d07.html
|
[Lin97b] | Linthicum, David S.:
Next-Generation Middleware,
DBMS
September 1997, (Volume 10, #10, Pg 69).
http://www.dbmsmag.com/9709d14.html
|
[Spi97] | Spitzer, Tom:
Component Architectures,
DBMS
September 1997, (Volume 1, #10, pp 56).
http://www.dbmsmag.com/9709d13.html
|
|
|
[Set92] | Sethi, Ravi:
Activación de Procedimientos,
Capítulo 4 del libro
Lenguajes de Programación: conceptos y
constructores, pp [121172],
Addisson-Wesley Iberoamericana, ISBN 0201518589, 1992.
|
|
|
[CW85] | Cardelli, Luca & Wegner, Peter:
On Understanding Types, Data Abstraction, and
Polymorphism,
ACM Computing Surveys,
Vol.17 No.4, pp [471522],
Diciembre 1985.
|
[MDC91] | 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 [342371],
Julio 1991.
|
[Mey86] | Meyer, Bertrand:
Genericity vs Inheritance,
OOPSLA'86 Conference Proceedings,
pp [391405],
Portland, Oregon, 1986.
|
|
|
[Set92] | Sethi, Ravi:
Programación Funcional,
Capítulo 7 del libro
Lenguajes de Programación: conceptos y
constructores, pp [259303],
Addisson-Wesley Iberoamericana, ISBN 0201518589, 1992.
|
[PZ98] | Pratt, Terrence W. & Zelkowitz, Marvin V.:
Lenguajes Funcionales,
Capítulo 13 del libro
Lenguajes de Programación: Diseño e
implementación, 3era edición,
pp [581619],
Prentice-Hall Hispanoamericana, ISBN 0136780121, 1998.
|
[Set92] | Sethi, Ravi:
Programación Lógica,
Capítulo 8 del libro
Lenguajes de Programación: conceptos y
constructores, pp [353389],
Addisson-Wesley Iberoamericana, ISBN 0201518589, 1992.
|
[PZ98] | Pratt, Terrence W. & Zelkowitz, Marvin V.:
Lenguajes de Programación Lógica,
Capítulo 14 del libro
Lenguajes de Programación: Diseño e
implementación, 3era edición,
pp [620631],
Prentice-Hall Hispanoamericana, ISBN 0136780121, 1998.
|
|
|
[DiM88a] | Di Mare, Adolfo:
Convenciones de Programación para
Pascal,
Reporte Técnico ECCI0188, Proyecto
32686053,
Escuela de Ciencias de la Computación e
Informática
(ECCI),
Universidad de Costa Rica
(UCR),
1988.
http://www.di-mare.com/adolfo/p/convpas.htm
|
[DiM96b] | Di Mare, Adolfo:
Tres formas diferentes de explicar
la recursividad;
Revista Ingeniería,
Facultad de Ingeniería,
Universidad de Costa Rica,
Volumen 6, Número 2,
pp [3144],
1996.
http://www.di-mare.com/adolfo/p/recursol-ea-1.htm
|
[DiM96d] | Di Mare, Adolfo:
Tipografía de artículos
en Internet,
Revista Ingeniería,
Facultad de Ingeniería,
Universidad de Costa Rica,
Volumen 6, Número 2,
pp [5570], 1996.
http://www.di-mare.com/adolfo/p/typeset0.htm .
|
[Din92] |
Dinesh, T B:
Extending Compound Assignments for C++,
OOPS Messenger, Vol.3 No.1,
pp [4549],
Enero 1992.
|
[Gon91] | González, Dean W.:
"= " Considered Harmfull,
Ada Letters, Vol.XI No.2,
pp [5659],
Marzo/Abril 1991.
|
[HU79] | Hopcroft, John E. & Ullman, Jefrrey D.:
Introduction to Automata Theory, Languages and
Computation,
Addisson-Wesley Publishing Co.,
ISBN 0-201-02988-X,
pp [137, 4654, 7794],
1979.
|
[Kim97] | Kimball, Ralph:
A Dimensional modeling (DM) Manifesto,
DBMS Magazine,
pp [5860, 69, 70],
Agosto 1997.
http://www.dbmsmag.com/9708d15.html
|
[LG86] | Liskov, Barbara & Guttag, John:
Abstraction and Specification in Program
Development,
McGraw-Hill, 1986.
|
[ML85] | Marcotty, Michael & Ledgard, Henry F.:
Programming Language Landscape Syntax, Semantics, and
Implementation (second edition),
Science Research Associates, INC.,
ISBN 0-574-21945-5,
1985.
|
[PZ98] | Pratt, Terrence W. & Zelkowitz, Marvin V.:
Lenguajes de Programación: Diseño e
implementación, 3era edición,
Prentice-Hall Hispanoamericana, ISBN 0136780121, 1998.
|
[Sch93] | Schwartz, Randall L.:
Learning Perl,
O'Reilly & Associates, Inc.
ISBN 1-56952-042-2,
http://www.perl.com ,
1994.
|
[Str88a] |
Stroustrup, Bjarne:
What is Object-Oriented Programming,
IEEE Software,
pp [1020],
Mayo 1988.
http://www.research.att.com/~bs/papers.html
|
[Str98] |
Stroustrup, Bjarne:
The C++ Programming Language, 3rd edition,
ISBN 0201889544;
Addison-Wesley, 1998.
http://www.research.att.com/~bs/papers.html
|
[Str99] |
Stroustrup, Bjarne:
Bjarne Stroustrup's FAQ, 1999.
Disponible en Internet en:
http://www.research.att.com/~bs/bs_faq.html
|
[Van95] |
van Hoff, Arthur:
Java and Internet Programming,
Dr. Dobb's Journal,
No.244, pp [56, 58, 60, 61, 101, 102],
Agosto 1995.
|
[ADA86] | Ada Joint Program Office:
The Rationale for the Design of the Ada
Programming Language (1986),
1986.
http://sw-eng.falls-church.va.us/AdaIC/standards/
|
[ADA95] | Ada 9X Project Office,
The Rationale for the Design of the Ada
Programming Language and Standard Libraries,
1995.
ftp://ajpo.sei.cmu.edu/public/ada9x/mrtcomments/rm9x/v5.95
|
[BI88] | Borland International:
Turbo Pascal version 5.5
Object Oriented Programming Guide,
Borland International, California (U.S.A.), 1988.
|
[CM83] | Clocksin & Mellish:
The Prolog Language,
Springer-Verlag, 1983.
http://www.cis.ohio-state.edu
|
[ED98] | Edwards, Jeri & DeVoe, Deborah:
3-tier Client/Server at Work,
ISBN 0471184438,
John Wiley & Sons, INC., 1988.
|
[Mac86] | MacLennan, Bruce J.:
Principles of Programming Languages: Design, Evaluation, and
Implementation second edition,
CBS College Publishing,
ISBN 0-03-005163-0,
1986.
|
[PZ98] | Pratt, Terrence W. & Zelkowitz, Marvin V.:
Lenguajes de Programación: Diseño e
implementación, 3era edición,
Prentice-Hall Hispanoamericana, ISBN 0136780121, 1998.
|
[Set92] | Sethi, Ravi:
Lenguajes de Programación: conceptos y
constructores,
Addisson-Wesley Iberoamericana, ISBN 0201518589, 1992.
|
[Win81] | Winston, P & Horn, B.:
LISP,
Addisson-Wesley Publishing Co., Reading MA, 1981.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|