Fabio Mascarenhas

  • Endereço para acessar este CV: http://lattes.cnpq.br/2273723591083358
  • Última atualização do currículo em 21/11/2016


Doutor em Informática pela Pontifícia Universidade Católica do Rio de Janeiro (2009), Mestre em Informática pela PUC-Rio (2004) e Bacharel em Ciência da Computação pela Universidade Federal da Bahia (2001). Atualmente Professor Adjunto no Departamento de Ciência da Computação da Universidade Federal do Rio de Janeiro. Pesquisador na área de Linguagens de Programação, atuando principalmente nas áreas de compiladores, sistemas de tipos e sistemas de execução para linguagens dinâmicas. (Texto informado pelo autor)


Identificação


Nome
Fabio Mascarenhas
Nome em citações bibliográficas
MASCARENHAS, F.;MASCARENHAS, FABIO;Mascarenhas, Fabio;Fabio Mascarenhas

Endereço


Endereço Profissional
Universidade Federal do Rio de Janeiro, Instituto de Matemática, Departamento de Ciência da Computação.
Rua Athos da Silveira Ramos - CCMN - Sala E-2001
Ilha do Fundão
21941590 - Rio de Janeiro, RJ - Brasil - Caixa-postal: 68530
Telefone: (21) 22908091
URL da Homepage: http://www.dcc.ufrj.br/~fabiom


Formação acadêmica/titulação


2005 - 2009
Doutorado em Informática.
Pontifícia Universidade Católica do Rio de Janeiro, PUC-Rio, Brasil.
Título: Optimized Compilation of a Dynamic Language to a Managed Runtime Environment, Ano de obtenção: 2009.
Orientador: Roberto Ierusalimschy.
Bolsista do(a): Fundação Carlos Chagas Filho de Amparo à Pesquisa do Estado do RJ, FAPERJ, Brasil.
Palavras-chave: compilers; virtual machines; lua; benchmarking; type systems; type inference.
Grande área: Ciências Exatas e da Terra
2002 - 2004
Mestrado em Informática.
Pontifícia Universidade Católica do Rio de Janeiro, PUC-Rio, Brasil.
Título: Integração entre a Linguagem Lua e o Common Language Runtime,Ano de Obtenção: 2004.
Orientador: Roberto Ierusalimschy.
Bolsista do(a): Coordenação de Aperfeiçoamento de Pessoal de Nível Superior, CAPES, Brasil.
Palavras-chave: linguagem Lua; compiladores; common language runtime; máquinas virtuais; microsoft .net; linguagens de script.
Grande área: Ciências Exatas e da Terra
Setores de atividade: Desenvolvimento de Programas (Software).
1997 - 2001
Graduação em Bacharelado em Ciência da Computação.
Universidade Federal da Bahia, UFBA, Brasil.
Título: Implementação de um Protocolo de Membership para Grupos Móveis.
Orientador: Raimundo Macedo.
Bolsista do(a): Coordenação de Aperfeiçoamento de Pessoal de Nível Superior, CAPES, Brasil.


Pós-doutorado


2010 - 2011
Pós-Doutorado.
Pontifícia Universidade Católica do Rio de Janeiro, PUC-Rio, Brasil.
Bolsista do(a): Conselho Nacional de Desenvolvimento Científico e Tecnológico, CNPq, Brasil.
Grande área: Ciências Exatas e da Terra


Atuação Profissional



Universidade Federal do Rio de Janeiro, UFRJ, Brasil.
Vínculo institucional

2011 - Atual
Vínculo: , Enquadramento Funcional: Professor Adjunto I, Carga horária: 40, Regime: Dedicação exclusiva.
Outras informações
Professor do Departamento de Ciência da Computação, Área de Concentração: Compiladores e Linguagens de Programação.

Atividades

04/2016 - Atual
Ensino, Bacharelado em Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Computação II (Programação Orientada a Objetos)
03/2016 - Atual
Ensino, Informática, Nível: Pós-Graduação

Disciplinas ministradas
Linguagens de Domínio Específico
09/2013 - Atual
Conselhos, Comissões e Consultoria, Departamento de Ciência da Computação, .

Cargo ou função
Membro da Comissão de Reaproveitamento de Disciplinas do DCC.
02/2013 - Atual
Pesquisa e desenvolvimento , Instituto de Matemática, Departamento de Ciência da Computação.

02/2013 - Atual
Conselhos, Comissões e Consultoria, Departamento de Ciência da Computação, .

Cargo ou função
Membro da Comissão de Avaliação Docente do DCC.
09/2012 - Atual
Conselhos, Comissões e Consultoria, Departamento de Ciência da Computação, .

Cargo ou função
Membro da Comissão de Estágio do DCC.
10/2015 - 03/2016
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Linguagens de Programação
03/2015 - 08/2015
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Computação II (EP)
08/2014 - 12/2014
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores II
Introdução à Programação C/C++
02/2014 - 06/2014
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Computação II (CC)
08/2013 - 12/2013
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Computação I (Serviço)
03/2013 - 07/2013
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Linguagens de Programação
10/2012 - 03/2013
Ensino, Bacharelado em Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Computação II (CC)
03/2012 - 07/2012
Ensino, Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Computação II (CC)
08/2011 - 12/2011
Ensino, Bacharelado em Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores I
Tópicos em Linguagens de Programação
03/2011 - 07/2011
Ensino, Bacharelado em Ciência da Computação, Nível: Graduação

Disciplinas ministradas
Compiladores II
Computação II (para Engenharia Ciclo Básico e Engenharia Nuclear)

Pontifícia Universidade Católica do Rio de Janeiro, PUC-Rio, Brasil.
Vínculo institucional

2009 - 2011
Vínculo: Colaborador, Enquadramento Funcional: Pesquisador, Carga horária: 20
Outras informações
Pesquisador do Lablua, Laboratório de Pesquisa em Linguagens de Programação, sob a coordenação do Professor Roberto Ierusalimschy, atuando como consultor do laboratório em projetos com o Tecgraf/PUC-Rio.

Vínculo institucional

2007 - 2007
Vínculo: Horista, Enquadramento Funcional: Professor Assistente, Carga horária: 8
Outras informações
Professor Substituto da disciplina de Linguagens e Máquinas do Bacharelado em Informática.

Vínculo institucional

2006 - 2006
Vínculo: Horista, Enquadramento Funcional: Professor Assistente, Carga horária: 8
Outras informações
Professor Substituto da disciplina de Introdução à Ciência da Computação do Ciclo Básico.

Atividades

09/2009 - 02/2011
Pesquisa e desenvolvimento , Departamento de Informática, Lablua.

Linhas de pesquisa
Linguagens de Programação
08/2007 - 12/2007
Ensino, Bacharelado em Informática, Nível: Graduação

Disciplinas ministradas
Linguagens e Máquinas
08/2006 - 12/2006
Ensino, Ciclo Básico, Nível: Graduação

Disciplinas ministradas
Introdução à Ciência da Computação


Linhas de pesquisa


1.
Linguagens de Programação

Objetivo: Pesquisar todos os aspectos relativos ao projeto, implementação e otimização de linguagens de programação, com ênfase nas linguagens dinâmicas: inferência de tipos, coleta de lixo, compilação just-in-time, tipagem gradual..
Grande área: Ciências Exatas e da Terra
Palavras-chave: compiladores; linguagens dinâmicas; inferência de tipos; máquinas virtuais; tipagem gradual; compiladores JIT.
2.
Tipagem Gradual para Linguagens de Script

Objetivo: Encontrar um sistema de tipos para linguagens de script que seja seguro e de fácil aplicação por programadores, mas que permita expressar idiomas comuns encontrados em programas destas linguagens..
Grande área: Ciências Exatas e da Terra
Setores de atividade: Pesquisa e desenvolvimento científico.
Palavras-chave: type systems; type inference; programming languages; scripting languages; gradual typing.
3.
Typed Lua: Um Dialeto Estaticamente Tipado para a Linguagem Lua
4.
Gramáticas de Expressão de Parsing


Projetos de pesquisa


2014 - Atual
Typed Lua: Um Dialeto Estaticamente Tipado para a Linguagem Lua
Descrição: Linguagens dinamicamente tipadas trocam a segurança contra erros pela flexibilidade e facilidade de uso, enquanto linguagens estaticamente tipadas priorizam a detecção de erros precoce, e provêm um arcabouço melhor para estruturar programas grandes. A ideia das tipagens opcional e gradual é combinar as duas abordagens na mesma linguagem, permitindo ao programador começar o desenvolvimento com tipos dinâmicos, e migrar para tipos estáticos à medida que o programa cresce. O desafio é projetar um sistema de tipos que seja natural para o programador que está acostumado a programar em uma linguagem dinamicamente tipada. Tipagem opcional e gradual vêm sendo alvo de pesquisa e desenvolvimento tanto pela academia quando pela indústria, com diversos sistemas de tipos, dialetos de linguagens dinamicamente tipadas, e mesmo linguagens novas projetadas desde o início para combinar tipos estáticos e dinâmicos. Typed Lua é um dialeto da linguagem Lua com tipagem opcional, cujo objetivo é ser complexo o suficiente para preservar o estilo de programação usado pelos programadores da linguagem, enquanto acrescenta novas construções para ajudar na estruturação de programas complexos. Partes importantes da linguagem Lua ainda não são expostas para o sistema de tipos da versão inical de Typed Lua, e seus algoritmos de verificação e dedução de tipos podem melhorar em ssua precisão e facilidade de uso. O objetivo deste projeto é continuar a pesquisa que já foi feita e abordar essas limitações..
Situação: Em andamento; Natureza: Pesquisa.
2013 - 2014
Tipagem Gradual para Linguagens de Script
Descrição: A popularidade das linguagens de script tem crescido, e seu uso não tem sido mais restrito à extensão e configuração de programas e à construção de protótipos, domínios em que seus problemas de desempenho e falta de checagens estáticias não são empecilhos. O uso mais irrestrito de linguagens de script tem gerado pesquisa sobre como contornar as suas desvantagens, com extensa pesquisa em otimização de programas em linguagens script. Os sistemas de tipagem gradual são sistemas de tipos no qual partes de um programa são anotadas com tipos precisos, e as partes não anotadas ficam dinamicamente tipadas, e são uma vertente mais recente de pesquisa que pretende melhorar a checagem estática de programas em linguagens de script, mas sem preocupação com o desempenho. Esse projeto de pesquisa propõe reunir as duas vertentes, com a exploração do uso de sistemas de tipagem gradual na otimização de programas..
Situação: Concluído; Natureza: Pesquisa.
Alunos envolvidos: Doutorado: (1) .
Integrantes: Fabio Mascarenhas - Coordenador / André Murbach Maidl - Integrante.Financiador(es): Fundação Carlos Chagas Filho de Amparo à Pesquisa do Estado do RJ - Auxílio financeiro.
Número de produções C, T & A: 1 / Número de orientações: 1
2006 - 2007
A Lua Compiler for the Phoenix Framework
Situação: Concluído; Natureza: Pesquisa.
Alunos envolvidos: Doutorado: (1) .
Integrantes: Fabio Mascarenhas - Integrante / Roberto Ierusalimschy - Coordenador.Financiador(es): Microsoft Research - Auxílio financeiro.
2004 - 2005
Improving Rotor for Dynamically Typed Languages
Situação: Concluído; Natureza: Pesquisa.
Alunos envolvidos: Doutorado: (1) .
Integrantes: Fabio Mascarenhas - Integrante / Roberto Ierusalimschy - Coordenador.Financiador(es): Microsoft Research - Auxílio financeiro.
Número de produções C, T & A: 1


Projetos de desenvolvimento


2005 - 2009
Desenvolvimento e Popularização do Ambiente Kepler
Situação: Concluído; Natureza: Desenvolvimento.


Revisor de periódico


2011 - 2011
Periódico: Journal of Universal Computer Science (Online)
2011 - 2011
Periódico: Revista de Informática Teórica e Aplicada (Impresso)
2015 - 2015
Periódico: Science of Computer Programming (Print)


Áreas de atuação


1.
Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Metodologia e Técnicas da Computação/Especialidade: Linguagens de Programação.
2.
Grande área: Ciências Exatas e da Terra / Área: Ciência da Computação / Subárea: Sistemas de Computação/Especialidade: Sistemas Distribuídos.


Idiomas


Inglês
Compreende Bem, Fala Bem, Lê Bem, Escreve Bem.


Prêmios e títulos


2013
Melhor Artigo da SBLP 2013: Exception Handling for Error Reporting in Parsing Expression Grammars, Simpósio Brasileiro de Linguagens de Programação e SBC.
2012
Melhor Artigo da SBLP 2012: Left Recursion in Parsing Expressoin Grammars, Simpósio Brasileiro de Linguagens de Programação e SBC.
2010
3o. lugar no Concurso Público para Professor Adjunto, Edital no. 4 de 2010, Programa de Sistemas e Computação, COPPE - UFRJ.
2010
1o. Lugar no Concurso Público para Professor Adjunto, Edital no. 26 de 2010, Departamento de Ciência da Computação, Universidade Federal do Rio de Janeiro.
2007
Bolsa de Doutorado FAPERJ Nota 10, FAPERJ.
1992
Medalha de Prata, 15a. Olimpíada Brasileira de Matemática - Categoria Junior, Sociedade Brasileira de Matemática (SBM).
1992
Menção Honrosa, 7a. Olimpíada Brasileira de Matemática - Regional Bahia, Sociedade Brasileira de Matemática.
1991
Menção Honrosa, 6a. Olimpíada Brasileira de Matemática - Regional Bahia, Sociedade Brasileira de Matemática.


Produções



Produção bibliográfica
Citações

Web of Science
Total de trabalhos:7
Total de citações:3
Fator H:1
Mascarenhas, Fabio  Data: 08/10/2014

Artigos completos publicados em periódicos

1.
MAIDL, ANDRÉ MURBACH2016MAIDL, ANDRÉ MURBACH ; Mascarenhas, Fabio ; IERUSALIMSCHY, Roberto . A formalization of typed lua. SIGPLAN Notices (Cessou em 1991. Cont. ISSN 1523-2867 ACM SIGPLAN Notices), v. 51, p. 13-25, 2016.

2.
MAIDL, ANDRÉ MURBACH2016MAIDL, ANDRÉ MURBACH ; Mascarenhas, Fabio ; MEDEIROS, SÉRGIO ; IERUSALIMSCHY, Roberto . Error reporting in Parsing Expression Grammars. Science of Computer Programming (Print), v. 132, p. 129-140, 2016.

3.
Mascarenhas, Fabio2014 Mascarenhas, Fabio; MEDEIROS, SÉRGIO ; IERUSALIMSCHY, Roberto . On the relation between context-free grammars and parsing expression grammars. Science of Computer Programming (Print), v. 89, p. 235-250, 2014.

4.
MEDEIROS, SÉRGIO2014 MEDEIROS, SÉRGIO ; Mascarenhas, Fabio ; IERUSALIMSCHY, Roberto . Left recursion in Parsing Expression Grammars. Science of Computer Programming (Print), v. 96, p. 177-190, 2014.

5.
MEDEIROS, SÉRGIO2012 MEDEIROS, SÉRGIO ; Mascarenhas, Fabio ; IERUSALIMSCHY, Roberto . From regexes to parsing expression grammars. Science of Computer Programming (Print), v. 93, p. 3-18, 2012.

6.
MASCARENHAS, FABIO2005MASCARENHAS, FABIO; IERUSALIMSCHY, Roberto . Running Lua Scripts on the CLR through Bytecode Translation. Journal of Universal Computer Science (Print), v. 11, n.7, p. 1275-1290, 2005.

7.
MASCARENHAS, FABIO2004MASCARENHAS, FABIO; IERUSALIMSCHY, Roberto . LuaInterface: Scripting the .NET CLR with Lua. Journal of Universal Computer Science (Print), v. 10, n.7, p. 892-909, 2004.

Trabalhos completos publicados em anais de congressos
1.
MEDEIROS, SÉRGIO ; Mascarenhas, Fabio . A parsing machine for parsing expression grammars with labeled failures. In: the 31st Annual ACM Symposium, 2016, Pisa. Proceedings of the 31st Annual ACM Symposium on Applied Computing - SAC '16, 2016. p. 1960-1967.

2.
Maidl, A. M. ; MASCARENHAS, F. ; IERUSALIMSCHY, Roberto . A Formalization of Typed Lua. In: Dynamic Language Symposium, 2015, Pittsburgh, PA, USA. Proceedings of the 11th Symposium on Dynamic Languages. New York, NY, USA: ACM, 2015. p. 13-25.

3.
MAIDL, ANDRÉ MURBACH ; Mascarenhas, Fabio ; IERUSALIMSCHY, Roberto . Typed Lua. In: the Workshop, 2014, Edinburgh. Proceedings of the Workshop on Dynamic Languages and Applications - Dyla'14. New York: ACM Press. p. 1-10.

4.
Maidl, A. M. ; MASCARENHAS, F. ; IERUSALIMSCHY, Roberto . Exception Handling for Error Reporting in Parsing Expression Grammars}. In: Simpósio Brasileiro de Linguagens de Programação, 2013, Brasília, DF. Lecture Notes in Computer Science: Programming Languages, 2013. v. 8129. p. 1-15.

5.
MUHAMMAD, H. ; MASCARENHAS, F. ; IERUSALIMSCHY, Roberto . LuaRocks - A Declarative and Extensible Package Management System for Lua. In: Simpósio Brasileiro de Linguagens de Programação, 2013, Brasília, DF. Lecture Notes in Computer Science: Programming Languages, 2013. v. 8129. p. 16-30.

6.
MEDEIROS, SÉRGIO ; MASCARENHAS, FABIO ; IERUSALIMSCHY, Roberto . Left Recursion in Parsing Expression Grammars. In: Simpósio Brasileiro de Linguagens de Programação, 2012, Natal, RN. Lecture Notes in Computer Science. Berlin, Alemanha: Springer Berlin Heidelberg, 2012. v. 7554. p. 27-41.

7.
MASCARENHAS, F.; MEDEIROS, S. ; IERUSALIMSCHY, Roberto . Parsing Expression Grammars for Structured Data. In: 15th Brazilian Symposium on Programming Languages, 2011, São Paulo, SP. Proceedings of the 15th Brazilian Symposium on Programming Languages, 2011.

8.
MEDEIROS, S. ; MASCARENHAS, F. ; IERUSALIMSCHY, Roberto . From Regular Expressions to PEGs. In: 15th Brazilian Symposium on Programming Languages, 2011, São Paulo, SP. Proceedings of the 15th Brazilian Symposium on Programming Languages, 2011.

9.
Mascarenhas, Fabio; IERUSALIMSCHY, Roberto . Efficient compilation of Lua for the CLR. In: the 2008 ACM symposium, 2008, Fortaleza. Proceedings of the 2008 ACM symposium on Applied computing - SAC '08. New York: ACM Press, 2008. p. 217.


Demais tipos de produção técnica
1.
MASCARENHAS, FABIO. Introdução à Programação em Lua. 2012. (Curso de curta duração ministrado/Extensão).

2.
MASCARENHAS, FABIO. Introdução à Programaçãm em Lua. 2010. (Curso de curta duração ministrado/Extensão).

3.
MASCARENHAS, F.; MEDEIROS, S. . Programação na Linguagem Lua. 2008. (Curso de curta duração ministrado/Extensão).



Bancas



Participação em bancas de trabalhos de conclusão
Mestrado
1.
Pereira, F. M. Q.; MASCARENHAS, F.; BIGONHA, M. A. S.; FERREIRA, R. A. C.. Participação em banca de Igor Rafael de Assis Costa. Especialização especulativa de valores baseada em parâmetros (Parameter-based speculative value specialization). 2013. Dissertação (Mestrado em Ciências da Computação) - Universidade Federal de Minas Gerais.

2.
IERUSALIMSCHY, Roberto; FIGUEIREDO, L. H.; MASCARENHAS, F.. Participação em banca de Marcelo Oikawa. Conversão de Regexes para Parsing Expression Grammars. 2010. Dissertação (Mestrado em Informática) - Pontifícia Universidade Católica do Rio de Janeiro.

Trabalhos de conclusão de curso de graduação
1.
ZIMBRAO, G.; XEXEO, G.; MASCARENHAS, F.. Participação em banca de Alexandre Araujo Moreira.Implementação da sétima revisão da linguagem de programação Scheme. 2012. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) - Universidade Federal do Rio de Janeiro.



Participação em bancas de comissões julgadoras
Concurso público
1.
Bazilio, C.; HAEUSLER, E. H.; BRAGA, C.; MASCARENHAS, F.; Silva, G. M. H.. Concurso Público Professor Adjunto 40h/DE Linguagens de Programação e Compiladores PURO/UFF. 2013. Universidade Federal Fluminense.

2.
COSTA, V. G.; MASCARENHAS, F.; SENE JR, I. G.. Concurso para Professor Adjunto Edital 46/2010/UFG. 2010. Universidade Federal de Goiás.



Eventos



Participação em eventos, congressos, exposições e feiras
1.
Simpósio Brasileiro de Linguagens de Programação. Left Recursion in Parsing Expression Grammars. 2012. (Congresso).

2.
15th Brazilian Symposium on Programming Languages.Parsing Expression Grammars for Structured Data. 2011. (Simpósio).

3.
I Congresso Brasileiro de Software: Teoria e Prática. 2010. (Congresso).

4.
Semana da Computação UFF.Linguagem Lua, uma Breve Descrição. 2010. (Encontro).

5.
VIII Encontro Anual de Computação.Linguagem Lua, História e Aplicações. 2010. (Encontro).

6.
XIII Simpósio Brasileiro de Linguagens de Programação. 2009. (Simpósio).

7.
1ª Semana de Ciência da Computação e Tecnologia da Informação da UENF.Introdução à Linguagem Lua. 2008. (Outra).

8.
ACM Symposium on Applied Computing.Efficient compilation of Lua for the CLR. 2008. (Simpósio).

9.
Dynamic Languages Symposium.A Parsing Machine for PEGs. 2008. (Simpósio).

10.
ACM Conference on Principles of Programming Languages. 2007. (Congresso).

11.
X Simpósio Brasileiro de Linguagens de Programação. 2006. (Simpósio).

12.
IX Simpósio Brasileiro de Linguagens de Programação.Running Lua scripts on the CLR through bytecode translation. 2005. (Simpósio).

13.
Rotor Capstone Workshop 2005.Running Lua scripts on the CLR through bytecode translation. 2005. (Encontro).

14.
VIII Simpósio Brasileiro de Linguagens de Programação.LuaInterface: Scripting .NET with Lua. 2004. (Simpósio).

15.
2nd Rotor Workshop. 2003. (Encontro).

16.
VII Simpósio Brasileiro de Linguagens de Programação. 2003. (Simpósio).

17.
VI Simpósio Brasileiro de Linguagens de Programação. 2002. (Simpósio).

18.
II Workshop de Testes e Tolerância a Falhas. 2000. (Encontro).

19.
XX Congresso Nacional da SBC. 2000. (Congresso).



Orientações



Orientações e supervisões concluídas
Tese de doutorado
1.
André Murbach Maidl. Typed Lua: An Optional Type System for Lua. 2015. Tese (Doutorado em Informática) - Pontifícia Universidade Católica do Rio de Janeiro, . Coorientador: Fabio Mascarenhas.

Trabalho de conclusão de curso de graduação
1.
Gabriel Cavalcante Faria Costa Leite. Um Aplicativo para Mobilidade Urbana. 2015. Trabalho de Conclusão de Curso. (Graduação em Ciência da Computação) - Universidade Federal do Rio de Janeiro. Orientador: Fabio Mascarenhas.



Outras informações relevantes


Atuação em diversos projetos de código aberto detalhada em http://github.com/mascarenhas

Participation in several open source projects detailed in http://github.com/mascarenhas



Página gerada pelo Sistema Currículo Lattes em 15/10/2018 às 10:59:23