O Projeto e Implementação da Linguagem A
Resumo
Este artigo descreve os principais problemas e soluções encontrados na implementação de uma linguagem funcional sofisticada. A implementação é muito eficiente, pelos padrões internacionais.Referências
L. Augustsson and T. Johnsson. Lazy ML User's Manual. Department of Computer Science, Chalmers University of Technology, S-412 96 Göteborg, draft edition, January 1988.
M. C. Albuquerque. A semântica denotacional de A. Tese de Mestrado, Departamento de Informática, Universidade Federal de Pernambuco, Agosto 1989.
L. Augustsson. Compiling pattern matching. Em Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architecture, pages 368 - 381, Nancy, September 1985. LNCS 201, Revised in [Aug87].
L. Augustsson. Compiling Lazy Functional Languages, Part II. PhD thesis, Chalmers University of Technology, S-412 96 Göteborg, November 1987.
P. H. M. Borba and S. R. L. Meira, From model based specifications to functional prototypes. Em IEEE TENCON'91 Session on Rapid Prototyping with Functional Programming Languages, New Delhi, India, August 1991.
P.H.M. Borba, A. L. M. Santos, and S. R. L. Meira. A semântica de ações de A. Relatório técnico, Departamento de Informática, Universidade Federal de Pernambuco, 1990.
R. Fernichel and J. Yochelson. A Lisp garbage-collector for virtual memory computer systems. Comm. of the ACM, 12(11):611-612, November 1969.
M. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF. Em Springer-Verlag LNCS, volume 78, 1979.
J. Hughes. Why functional programming matters. PMG Report 16, Department of Computer Science, Chalmers University of Technology, S-412 96 Göteborg, November 1984.
P. Hudak, P. Wadler, et al. Report on the Functional Programming Language Haskell. December 1988. Draft Proposed Standard.
T. Johnsson. Lambda lifting: Transforming programs to recursive equations. Em Jean-Pierre Jouannaud, editor, Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architecture, pages 190-203, Nancy, September 1985. Springer-Verlag. LNCS 201, Revised in [Joh87].
T. Johnsson. Compiling Lazy Functional Languages. PhD thesis, Chalmers University of Technology, S-412 96 Göteborg, February 1987.
B. W. Kernighan and D. M. Ritchie. The C Programming Language. Prentice-Hall, 1978.
X. Leroy. Efficient data representation in polymorphic languages. Technical Report 1264, INRIA-Rocquencourt, 1990.
R. D. Lins. On the Eficiency of Categorical Combinators in Applicative Languages. PhD thesis, Computer Laboratory, University of Kent, 1986.
M. A. Musicante, P. H. M. Borba, and A. L. M. Santos. An action semantics for Actions. Technical report, Departamento de Informática, Universidade Federal de Pernambuco, 1991. Em preparo.
S. R. L. Meira. Introdução à Programação Funcional VI Escola de Computação, IMECC - UNICAMP, 1988.
S. R. L. Meira. Signals handling in functional languages. Relatório técnico, Universidade Federal de Pernambuco, Departamento de Informática, 1991.
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348-375, December 1978.
H. P. Moura. Tipos de dados em linguagens funcionais. Tese de Mestrado, Departamento de Informática, Universidade Federal de Pernambuco, Setembro 1989.
M. A. Musicante. Redução de grafos para multi-combinadores categóricos usando G-MC. Tese de Mestrado, Departamento de Informática, Universidade Federal de Pernambuco, Setembro 1990.
S.L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall, 1987.
D. Turner. A new implementation technique for applicative languages. Software - Practice and Experience, 9:31-49, 1979.
D. Turner. Functional programs as executable specifications. Em Phil. Trans. Royal Soc. of London (312), 1522, pages 363-388. ACM, 1984.
D. Turner. Miranda: A non strict functional language with polymorphic types. Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architechture, pages 1-16, 1985. LNCS 201.
M. C. Albuquerque. A semântica denotacional de A. Tese de Mestrado, Departamento de Informática, Universidade Federal de Pernambuco, Agosto 1989.
L. Augustsson. Compiling pattern matching. Em Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architecture, pages 368 - 381, Nancy, September 1985. LNCS 201, Revised in [Aug87].
L. Augustsson. Compiling Lazy Functional Languages, Part II. PhD thesis, Chalmers University of Technology, S-412 96 Göteborg, November 1987.
P. H. M. Borba and S. R. L. Meira, From model based specifications to functional prototypes. Em IEEE TENCON'91 Session on Rapid Prototyping with Functional Programming Languages, New Delhi, India, August 1991.
P.H.M. Borba, A. L. M. Santos, and S. R. L. Meira. A semântica de ações de A. Relatório técnico, Departamento de Informática, Universidade Federal de Pernambuco, 1990.
R. Fernichel and J. Yochelson. A Lisp garbage-collector for virtual memory computer systems. Comm. of the ACM, 12(11):611-612, November 1969.
M. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF. Em Springer-Verlag LNCS, volume 78, 1979.
J. Hughes. Why functional programming matters. PMG Report 16, Department of Computer Science, Chalmers University of Technology, S-412 96 Göteborg, November 1984.
P. Hudak, P. Wadler, et al. Report on the Functional Programming Language Haskell. December 1988. Draft Proposed Standard.
T. Johnsson. Lambda lifting: Transforming programs to recursive equations. Em Jean-Pierre Jouannaud, editor, Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architecture, pages 190-203, Nancy, September 1985. Springer-Verlag. LNCS 201, Revised in [Joh87].
T. Johnsson. Compiling Lazy Functional Languages. PhD thesis, Chalmers University of Technology, S-412 96 Göteborg, February 1987.
B. W. Kernighan and D. M. Ritchie. The C Programming Language. Prentice-Hall, 1978.
X. Leroy. Efficient data representation in polymorphic languages. Technical Report 1264, INRIA-Rocquencourt, 1990.
R. D. Lins. On the Eficiency of Categorical Combinators in Applicative Languages. PhD thesis, Computer Laboratory, University of Kent, 1986.
M. A. Musicante, P. H. M. Borba, and A. L. M. Santos. An action semantics for Actions. Technical report, Departamento de Informática, Universidade Federal de Pernambuco, 1991. Em preparo.
S. R. L. Meira. Introdução à Programação Funcional VI Escola de Computação, IMECC - UNICAMP, 1988.
S. R. L. Meira. Signals handling in functional languages. Relatório técnico, Universidade Federal de Pernambuco, Departamento de Informática, 1991.
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348-375, December 1978.
H. P. Moura. Tipos de dados em linguagens funcionais. Tese de Mestrado, Departamento de Informática, Universidade Federal de Pernambuco, Setembro 1989.
M. A. Musicante. Redução de grafos para multi-combinadores categóricos usando G-MC. Tese de Mestrado, Departamento de Informática, Universidade Federal de Pernambuco, Setembro 1990.
S.L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall, 1987.
D. Turner. A new implementation technique for applicative languages. Software - Practice and Experience, 9:31-49, 1979.
D. Turner. Functional programs as executable specifications. Em Phil. Trans. Royal Soc. of London (312), 1522, pages 363-388. ACM, 1984.
D. Turner. Miranda: A non strict functional language with polymorphic types. Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architechture, pages 1-16, 1985. LNCS 201.
Publicado
23/10/1991
Como Citar
MEIRA, Silvio Lemos; MUSICANTE, Martín A.; SANTOS, André.
O Projeto e Implementação da Linguagem A. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 5. , 1991, Ouro Preto/MG.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
1991
.
p. 237-256.
DOI: https://doi.org/10.5753/sbes.1991.24270.