Universidad de Costa Rica
|
|
II Semestre 1998 | 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 #3 - #4 #5 |
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 |
/etc/passwd
[Perl]
/etc/passwd
[C++]
Examen Parcial #1 20% Proyecto #1 10% Examen Parcial #2 20% Artículo 10% Examen Final 30% Otros: 10%
[Aus97] |
Austern, Matthew H.:
The SGI Standard Template Library,
Dr. Dobb's Journal,
No.268, pp [1820, 2224, 2627, 90],
Agosto 1997.
http://www.sgi.com/Technology/STL/
|
[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.
|
[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.
|
[Bou91] |
Boundy, David:
A taxonomy of programmers,
ACM SigSoft,
Vol.16 No.4,
pp [2330],
Octubre 1991.
|
[Cha96] |
David, Channon:
Persistence for C++,
Dr. Dobb's Journal,
No.252, pp [46, 4850, 52, 95, 96],
Octubre 1996.
|
[CW85] | Cardelli, Luca & Wegner, Peter:
On Understanding Types, Data Abstraction, and
Polymorphism,
ACM Computing Surveys,
Vol.17 No.4, pp [471522],
Diciembre 1985.
|
[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
|
[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/adt/except.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.
|
[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.
|
[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.
|
[LG86] | Liskov, Barbara & Guttag, John:
Abstraction and Specification in Program
Development,
McGraw-Hill, 1986.
|
[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.
|
[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.
|
[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.
|
[Mus98] |
Musser, David R.:
The C++ Standard Template Library
(Internet reference index),
1998.
http://www.cs.rpi.edu/~musser/stl-book/
|
[Rag95] | Ragen, Alex:
C Database Programming with ODBC,
C/C++ User's Journal,
Vol.13, No.11,
pp [7378],
Noviembre 1995.
|
[Ret91] | Rettig, Marc:
Nobody Reads Documentation,
Communications of the ACM, Vol.34 No.7,
pp [1924],
Julio 1991.
|
[Rie98] |
Riedel, Jost:
Y2K Challenges,
Dr. Dobb's Journal,
No.285, pp [1011],
Mayo 1998.
|
[RL98] |
Resendes, Robert
&
Laukien, Marc:
Introduction to CORBA Distributed Objects,
C/C++ User's Journal,
Vol.16, No.4,
pp [5558, 6066],
Abril 1998.
|
[Sch93] | Schwartz, Randall L.:
Learning Perl,
O'Reilly & Associates, Inc.
ISBN 1-56952-042-2,
http://www.perl.com ,
1994.
|
[Set92] | Sethi, Ravi:
Lenguajes de Programación: conceptos y
constructores,
Addisson-Wesley Iberoamericana, ISBN 0201518589, 1992.
|
[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
|
[Swa98] |
Swaine, Michael:
A Chat with Bob Bemer,
Dr. Dobb's Journal,
No.285, pp [115117],
Mayo 1998.
|
[Van95] |
van Hoff, Arthur:
Java and Internet Programming,
Dr. Dobb's Journal,
No.244, pp [56, 58, 60, 61, 101, 102],
Agosto 1995.
|
[Wil91] | Wilkes, Maurice V.:
Software and the Programmer,
Communications of the ACM, Vol.34 No.5,
pp [2324],
Mayo 1991.
|
[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.
|
[Mey86] | Meyer, Bertrand:
Genericity vs Inheritance,
OOPSLA'86 Conference Proceedings,
pp [391405],
Portland, Oregon, 1986.
|
[Pra97] | Pratt, Terrence W.:
Lenguajes de Programación: Diseño e
implementación, 3ra edición,
Prentice-Hall Hispanoamericana, ISBN 9701700465,
1997.
|
[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 .
|
Adolfo Di Mare <adolfo@di-mare.com>.
|