Bruno C. d. S. Oliveira
Associate Professor,
The University of Hong Kong.
Dept. of Computer Science
Office: CB420, Chow Yei Chin Building, The
University of Hong Kong, Pokfulam Road, Hong Kong
Telephone: (+852) 2219 4800
Fax: (+852) 2559 8447
Email: bruno at cs.hku.hk
|
Research Interests
My interests are centered around programming languages. My existing research is mainly
focused on type systems for modularity and the combination of
Object-Oriented and Functional Paradigms.
I am a member of the IFIP
Working Group 2.1 (Algorithmic Languages and Calculi), a steering committee
member of the Workshop
on Generic Programming and a steering committee member of the Haskell Symposium.
HKU PL Group
I lead the HKU PL group. Please
visit our group web page for more information!
PhD Positions:
I am always interested to hear about potential
candidates with a strong motivation to pursue further studies in Programming
Languages. I usually have positions available every academic year. If you're
interested please drop me an email.
Other Resources about my research
It can be tricky to search for information about my research because of my 5 word, ``unconventional'' yet somewhat common name. Thus, here are a few helpful links:
- Google Scholar - A list of my papers/drafts at google scholar.
- ACM - A complete, but unsound list of my ACM publications.
- DBLP - The quickest way to get a bibtex file for citing my papers :).
-
Microsoft Academic - Another cool academic website from Microsoft.
Teaching
Events
Upcoming
Past
- PC Chair -
12th International Conference on Software Language Engineering (SLE 2018).
Please submit a paper!
- PC Member - 24th
ACM SIGPLAN International Conference on Functional Programming (ICFP
2019). Please submit a paper!
- PC Member - 33rd
European Conference on Object-Oriented Programming (ECOOP
2019). Please submit a paper!
- PC Chair -
9th ACM SIGPLAN Symposium on Scala (Scala'18).
- PC member -
Haskell
Symposium (HS 2018).
- ERC Member - 23rd
ACM SIGPLAN International Conference on Functional Programming (ICFP
2018).
- PC member -
11th International Conference on Software Language Engineering (SLE 2018).
- ERC member –
32nd ACM International Conference on Object-Oriented Programming,
Systems, Languages, and Applications.
- PC member -14th
Asian Symposium on Programming Languages and Systems (APLAS 2017).
- PC member – 31st European
Conference on Object-Oriented Programming (ECOOP 2017).
- PC member – 26th European
Symposium on Programming (ESOP 2017) .
- PC member -14th
Asian Symposium on Programming Languages and Systems (APLAS 2016).
- PC member -
9th International Conference on Software Language Engineering (SLE 2016).
- ERC Member - 21st
ACM SIGPLAN International Conference on Functional Programming (ICFP
2016).
- PC member – 31st ACM International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016).
- PC member - 15th International Conference on Modularity (Modularity 2016).
- PC member -
24th Symposium on
Implementation and Application of Functional Languages (IFL 2015).
- PC member -11th
International Workshop on Generic Programming (WGP 2015)
- PC member - 29th European
Conference on Object-Oriented Programming (ECOOP 2015).
- PC member - 14th International Conference
on Modularity (Modularity 2015).
- PC member -
Mathematics of
Program Construction (MPC 2015).
- PC member -
6th International Workshop
on Feature-Oriented Software Development (FOSD 2014).
- PC member -
29th ACM International
Conference on Object-Oriented Programming, Systems, Languages, and
Applications (OOPSLA 2014).
- PC member -
13th
International Conference on Generative Programming and Component
Engineering (GPCE 2014).
- PC member -
Haskell
Symposium (HS 2014).
- PC member -Scala
Workshop (SW 2014).
- PC member -Object
Oriented Programming Languages and Systems track of the ACM Symposium on
Applied Computing (SAC 2014)
- PC member -PL
track of the ACM Symposium on Applied Computing (SAC 2014)
- PC member -13th
International Conference on Modularity (MODULARITY 2014)
- PC member -11th
Asian Symposium on Programming Languages and Systems (APLAS 2013).
- PC member -5th
International Workshop on Feature-Oriented Software Development (FOSD
2013).
- PC member -28th
ACM International Conference on Object-Oriented Programming, Systems,
Languages, and Applications (OOPSLA 2013).
- PC member -15th
International Symposium on Principles and Practice of Declarative
Programming (PPDP 2013).
- PC member -Foundations
of Aspect Oriented Languages (FOAL 2013).
- PC member -Scala
Workshop (SW 2013).
- PC member -Foundations
of Aspect Oriented Languages (FOAL 2013).
- PC member -
24th Symposium on
Implementation and Application of Functional Languages (IFL 2012).
- PC member - Scala Days 2012.
- PC member -
Foundations of Aspect Oriented Languages (FOAL 2012).
- PC member - 11th ACM International Conference on Aspect Oriented Software Development: Perspectives on Modularity (AOSD 2012).
- PC member - 26th ACM International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2011).
- PC member -
4th Haskell Symposium (HS 2011).
- PC member - 4th International Conference on Software Language Engineering (SLE 2011).
- PC member -
10th International Conference on Generative Programming and Component Engineering (GPCE 2011).
- PC member -
Foundations of Aspect Oriented Languages (FOAL 2011).
- Co-Chair - 6th International Workshop on Generic Programming (WGP 2010)
- PC member -
9th International Conference on Generative Programming and Component Engineering (GPCE 2010)
Publications
- Elucidating Type Conversions in SQL Engines
[pdf]
[supplementary materials]
Wenjia Ye, Matias Toro, Claudio Gutierrez,
Bruno C. d. S. Oliveira and Éric Tanter
In
34th European Symposium on Programming (ESOP 2025).
April 2025
- Named Arguments as Intersections, Optional Arguments
as Unions
[pdf]
[Artifacts]
Yaozhu Sun and Bruno C. d. S. Oliveira
In
34th European Symposium on Programming (ESOP 2025).
April 2025
- Recursive Subtyping for All
[pdf]
[Coq proofs]
Litao Zhou,
Yaoda Zhou, Qianyong Wan and Bruno C. d. S. Oliveira
To appear in
Journal of Functional Programming (JFP 2025).
February 2025
Note: This an extended version
of a POPL 2023 paper.
- Bidirectional Higher-Rank Polymorphism with
Intersection and Union Types
[pdf]
[Artifact]
Shengyi Jiang, Chen Cui and Bruno C. d. S. Oliveira
In 52nd
Symposium on Principles of Programming Languages (POPL 2025).
January 2025
- QuickSub: Efficient Iso-Recursive Subtyping
[pdf]
[Artifact]
Litao Zhou and Bruno C. d. S. Oliveira
In 52nd
Symposium on Principles of Programming Languages (POPL 2025).
January 2025
- Merging Gradual Typing
[pdf]
[Artifact]
Wenjia Ye, Bruno C. d. S. Oliveira and Matias Toro
In 38th
ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2024).
October 2024
- Full Iso-Recursive Types
[pdf]
[Artifact]
Litao Zhou, Qianyong Wan and Bruno C. d. S. Oliveira
In 38th
ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2024).
October 2024
- A Case for First Class Environments
[pdf]
[Artifact]
Jinhao Tan and Bruno C. d. S. Oliveira
In 38th
ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2024).
October 2024
- Imperative Compositional Programming
[pdf]
[Artifact]
Wenjia Ye, Yaozhu Sun and Bruno C. d. S. Oliveira
In 38th
ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2024).
October 2024
- Contextual Typing
[pdf]
[Artifact (including
extended article)]
Xu Xue and Bruno C. d. S. Oliveira
In 29th
ACM International Conference on Functional Programming (ICFP 2024).
September 2024
- Disjoint Polymorphism with Intersection and Union Types
[pdf]
[Artifact]
Baber Rehman and Bruno C. d. S. Oliveira
In 26th Workshop on Formal Techniques for Java-like Programs (FTFJP 2024).
September 2024
- Type-Directed Operational Semantics for Gradual Typing
[pdf] [supplementary
materials]
Wenjia Ye and Bruno C. d. S. Oliveira
In Journal of Functional Programming (JFP).
July 2024
Note: This an extended version
of a ECOOP 2021 paper.
- Greedy Implicit Bounded Quantification
[pdf]
[Artifact (including
extended article)]
Chen Cui, Shengyi Jiang and Bruno C. d. S. Oliveira
In 37th
ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2023).
October 2023
- Dependent Merges and First-Class Environments
[pdf]
[Coq proofs]
Jinhao Tan and Bruno C. d. S. Oliveira
In
37th European Conference on Object-Oriented
Programming (ECOOP 2023).
July 2023
- Pragmatic Gradual Polymorphism with References
[pdf]
[supplementary materials]
Wenjia Ye
and Bruno C. d. S. Oliveira
In
32nd European Symposium on Programming (ESOP 2023).
April 2023
- Recursive Subtyping for All
[pdf]
[Coq proofs]
[appendix]
Litao Zhou,
Yaoda Zhou and Bruno C. d. S. Oliveira
In
50th Symposium on Principles of Programming Languages (POPL 2023).
January 2023
- Making a Type Difference
[pdf]
[artifact]
Han Xu,
Xuejing Huang and Bruno C. d. S. Oliveira
In
50th Symposium on Principles of Programming Languages (POPL 2023).
January 2023
- A Bowtie for a Beast: Overloading, Eta Expansion and
Extensible Datatypes in F⋈
[pdf]
[appendix]
Nick Rioux,
Xuejing Huang, Bruno C. d. S. Oliveira and Steve Zdancewic
In
50th Symposium on Principles of Programming Languages (POPL 2023).
January 2023
- Compositional Embeddings of Domain-Specific Languages
[pdf] [extended
version] [Online implementation]
Yaozhu Sun, Utkarsh Dhandhania and Bruno C. d. S. Oliveira
In 37th ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2022).
December 2022
- A Calculus with Recursive Types, Record Concatenation and Subtyping
[pdf] [extended version] [supplementary
materials]
Yaoda Zhou, Bruno C. d. S. Oliveira and Andong Fan
In Asian Symposium on Programming Languages and Systems (APLAS 2022).
December 2022
- Applicative Intersection Types
[pdf] [supplementary
materials]
Xu Xue, Bruno C. d. S. Oliveira and Ningning Xie
In Asian Symposium on Programming Languages and Systems (APLAS 2022).
December 2022
- Revisiting Iso-Recursive Subtyping
[pdf] [supplementary
materials]
Yaoda Zhou, Jinxu Zhao and Bruno C. d. S. Oliveira
In ACM Transactions on Programming
Languages and Systems (TOPLAS).
December 2022
Note: This an extended version
of a OOPSLA 2020 paper.
- Elementary Type Inference
[pdf] [extended version] [supplementary
materials]
Jinxu Zhao and Bruno C. d. S. Oliveira
In 36th European Conference on Object-Oriented
Programming (ECOOP 2022).
June 2022
- Union Types with Disjoint Switches
[pdf] [supplementary
materials]
Baber Rehman, Xuejing Huang, Ningning Xie and Bruno C. d. S. Oliveira
In 36th European Conference on Object-Oriented
Programming (ECOOP 2022).
June 2022
- Direct Foundations for Compositional Programming
[pdf] [extended version] [supplementary
materials]
Andong Fan, Xuejing Huang, Han Xu, Yaozhu Sun and Bruno C. d. S. Oliveira
In 36th European Conference on Object-Oriented
Programming (ECOOP 2022).
June 2022
- Taming the Merge Operator
[pdf] [supplementary
materials]
Xuejing Huang, Jinxu Zhao and Bruno C. d. S. Oliveira
In Journal of Functional Programming (JFP).
August 2021
Note: This an extended version
of a ECOOP 2020 paper.
- Distributing Intersection and Union Types with
Splits and Duality (Functional Pearl)
[pdf] [supplementary
materials]
Xuejing Huang and Bruno C. d. S. Oliveira
In International Conference on Functional
Programming (ICFP 2021).
August 2021
- Type-directed Operational Semantics for Gradual Typing
[pdf] [supplementary
materials]
Wenjia Ye, Bruno C. d. S. Oliveira
and Xuejing Huang
In 35th European Conference on Object-Oriented
Programming (ECOOP 2021).
July 2021
- Compositional Programming
[pdf] [supplementary
materials]
Weixin Zhang, Yaozhu Sun and Bruno C. d. S. Oliveira
In ACM Transactions on Programming
Languages and Systems (TOPLAS). Distinguished Artifact Award!
April 2021
Note: This is a Journal
first publication for ECOOP 2021.
- A Dependently Typed Calculus with Polymorphic Subtyping
[pdf] [supplementary
materials]
Mingqi Xue and Bruno C. d. S. Oliveira
In Science of Computer Programming (SCP),
April 2021
Note: This is a Journal
first publication for ECOOP 2021.
- Revisiting Iso-Recursive Subtyping
[pdf] [supplementary
materials]
Yaoda Zhou, Bruno C. d. S. Oliveira and Jinxu Zhao
In
35th ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2020), November 2020
- Resolution as Intersection Subtyping via Modus Ponens
[pdf] [extended
version]
Koar Marntirosian, Tom Schrijvers, Bruno C. d. S. Oliveira
and Georgios Karachalias
In
35th ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2020), November 2020
- A Type-Directed Operational Semantics for a Calculus with a
Merge Operator
[pdf] [supplementary
materials]
Xuejing Huang and Bruno C. d. S. Oliveira
In
34th European Conference on Object Oriented Programming (ECOOP 2020),
November 2020
- Row and Bounded Polymorphism via Disjoint Polymorphism
[pdf] [supplementary
materials]
Ningning Xie, Bruno C. d. S. Oliveira, Xuan Bi and Tom
Schrijvers
In 34th European Conference on Object
Oriented Programming (ECOOP 2020), November 2020
- The Duality of Subtyping
[pdf] [supplementary
materials]
Bruno C. d. S. Oliveira, Shaobo Cui and Baber Rehman
In 34th European Conference on Object Oriented Programming
(ECOOP 2020), November 2020
- Castor: Programming with Extensible Generative Visitors
[pdf] [supplementary
materials]
Weixin Zhang and Bruno C. d. S. Oliveira
In Science of Computer Programming Journal, March 2020
- Kind Inference for Datatypes
[pdf]
[appendix]
Ningning Xie,
Richard Eisenberg, Bruno C. d. S. Oliveira
In
47th Symposium on Principles of Programming Languages (POPL 2020).
Distinguished Paper Award!
January 2020
- Consistent Subtyping for All
[pdf] [supplementary
materials]
Ningning Xie, Xuan Bi, Bruno C. d.
S. Oliveira and Tom Schrijvers
In
ACM Transactions on Programming Languages and Systems (TOPLAS).
November 2019
Note: This is an extended journal
version of the ESOP 2018 paper!
- Pure Iso-Type Systems
[pdf] [supplementary
materials]
Yanpeng Yang and Bruno C. d. S.
Oliveira
In Journal of Functional Programming, Volume 29 (JFP).
September 2019
- A Mechanical Formalization of Higher-Ranked Polymorphic Type
Inference
[pdf] [supplementary
materials]
Jinxu Zhao, Bruno C. d. S. Oliveira and Tom
Schrijvers
In 24th International Conference on
Functional Programming (ICFP 2019).
Distinguished Paper Award! August 2019
- Distributive Disjoint Polymorphism for Compositional
Programming
[pdf] [supplementary
materials]
Xuan
Bi, Ningning Xie, Bruno C. d. S. Oliveira and Tom Schrijvers
In 28th European Symposium on Programming (ESOP 2019).
April 2019
- Shallow EDSLs and Object-Oriented Programming: Beyond Simple
Compositionality
[pdf] [supplementary
materials]
Weixin Zhang and Bruno C. d. S.
Oliveira
In The Art, Science and Engineering of Programming,
Volume 3 (Programming Journal). Editors' Choice Award!
February 2019
- Separating Use and Reuse to Improve Both
[pdf]
Hrshikesh Arora, Marco
Servetto and Bruno C. d. S. Oliveira
In The Art, Science and Engineering of Programming,
Volume 3 (Programming Journal).
February 2019
- Cochis: Stable and Coherent Implicits
[pdf] [prototype]
Tom Schrijvers, Bruno C. d.
S. Oliveira, Philip Wadler and Koar Marntirosian
In
Journal of Functional Programming, Volume 29 (JFP). February
2019
- Pattern Matching in an Open World
[pdf] [source
code]
Weixin Zhang and Bruno C. d. S. Oliveira
In 17th
International Conference on Generative Programming (GPCE 2018).
November 2018
- The Essence of Nested Composition
[pdf] [supplementary
materials]
Xuan Bi, Bruno C. d. S. Oliveira
and Tom Schrijvers
In 32nd
European Conference on Object-Oriented Programming (ECOOP 2018).
July 2018
- FHJ: A Formal Model for Hierarchical Dispatching and
Overriding
[pdf]
Yanlin Wang, Haoyuan Zhang, Bruno C. d. S. Oliveira
and Marco Servetto
In 32nd
European Conference on Object-Oriented Programming (ECOOP 2018).
July 2018
- Typed First-Class Traits
[pdf] [supplementary
materials]
Xuan Bi and Bruno C. d. S. Oliveira
In 32nd
European Conference on Object-Oriented Programming (ECOOP 2018).
July 2018
- Formalization of a Polymorphic Subtyping
Algorithm
[pdf] [Abella
proofs]
Jinxu Zhao, Bruno C. d. S. Oliveira and Tom Schrijvers
In 9th
International Conference on Interactive Theorem Proving (ITP 2018).
July 2018
- Let Arguments go First
[pdf]
Ningning Xie and Bruno C. d. S. Oliveira
In 27th
European Symposium on Programming (ESOP 2018). April 2018
- Consistent Subtyping for All
[pdf]
Ningning Xie, Xuan Bi and Bruno C. d. S. Oliveira
In 27th
European Symposium on Programming (ESOP 2018). April 2018
- Unifying Typing and Subtyping
[pdf]
Yanpeng Yang and Bruno C. d. S. Oliveira
In
32th ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2017). October 2017
- Type-Safe Modular Parsing
[pdf]
Haoyuan Zhang, Li Huang and Bruno C. d. S. Oliveira
In 10th ACM SIGPLAN Conference on Software Language Engineering (SLE 2017).
October 2017
- Quantified Class Constraints
[pdf]
Gert-Jan Bottu, Georgios Karachalias, Tom Schrijvers, Bruno C. d. S. Oliveira
and Philip Wadler
In 10th Haskell Symposium (Haskell 2017).
September 2017
- EVF: An Extensible and Expressive Visitor Framework for
Programming Language Reuse
[pdf]
Weixin Zhang and Bruno C. d. S. Oliveira
In 31st
European Conference on Object-Oriented Programming (ECOOP 2017).
June 2017
- Disjoint Polymorphism
[pdf]
Joao Alpuim, Bruno C. d. S. Oliveira and Zhiyuan Shi
In 26th
European Symposium on Programming (ESOP 2017).
April 2017
- Unified Syntax with Iso-Types
[pdf]
Yanpeng Yang, Xuan Bi, Bruno C. d. S. Oliveira
In 14th Asian Symposium on Programming Languages and Systems (APLAS 2016).
November 2016
- Classless Java
[pdf]
Yanlin Wang, Haoyuan Zhang, Marco Servetto, Bruno C. d. S. Oliveira
In 15th
International Conference on Generative Programming (GPCE 2016).
October 2016
- Disjoint Intersection Types
[pdf]
Bruno C. d. S. Oliveira,
Zhiyuan Shi and Joao Alpuim
In 21st International Conference on
Functional Programming (ICFP 2016). September 2016
- The Expression Problem, Trivially!
[pdf]
Yanlin Wang and Bruno C. d. S. Oliveira
In 15th International Conference on Modularity (Modularity 2016).
Best research paper award!
March 2016
- Modular Architecture for Code and Metadata Sharing
[pdf]
Tomas Tauber and Bruno C. d. S. Oliveira
In 15th International Conference on Modularity (Modularity 2016).
Best visions paper award!
March 2016
- Memory-efficient Tail Calls in the JVM with Imperative
Functional Objects
[pdf]
Tomas Tauber, Xuan Bi, Zhiyuan
Shi, Weixin Zhang, Huang Li, Zhenrui Zhang, Bruno C. d. S. Oliveira
In 13th Asian Symposium on Programming Languages and Systems (APLAS 2015).
December 2015
- Scrap your Boilerplate with Object Algebras
[pdf]
Haoyuan Zhang, Jewei Chu,
Bruno C. d. S. Oliveira and Tijs van der Storm
In
30th ACM International Conference on Object-Oriented Programming,
Systems, Languages and Applications (OOPSLA 2015).
October 2015
- Modular Reifiable Matching: A List-of-Functors Approach to
Two-Level Types
[pdf]
Bruno C. d. S. Oliveira,
Shin-Cheng Mu and Shu-Hung You
In Haskell Symposium (Haskell 2015).
September 2015
-
-
-
-
- Feature-Oriented Programming with Object Algebras
[pdf]
Bruno C. d. S. Oliveira, Tijs
van der Storm, Alex Loh and William R. Cook
In 27th European
Conference on Object-Oriented Programming (ECOOP 2013).
July 2013
- Partition-based Regression Verification
[pdf]
Marcel Boehme, Bruno C. d. S.
Oliveira and Abhik Roychoudhury
In 35th ACM/IEEE International
Conference on Software Engineering (ICSE 2013). May 2013
-
- MRI: Modular Reasoning about Interference in Incremental
Programming
[pdf]
Bruno C. d. S. Oliveira, Tom
Schrijvers and William R. Cook
Journal of Functional
Programming, Vol 22, issue 06, pages 797-852. November 2012.
-
- Rational Term Equality, Functionally
[pdf]
Tom Schrijvers and Bruno C. d. S. Oliveira
In 24th Draft Proceedings of the Symposium on
Implementation of Functional Languages (IFL 2012). 2012.
- Extensibility for the Masses: Practical Extensibility with Object Algebras
[pdf]
Bruno C. d. S. Oliveira and William R. Cook
In the 26th European Conference on Object-Oriented Programming (ECOOP 2012).
Best paper award!
February 2012.
Note: See also a collection of
solutions to the Expression Problem in multiple languages!
- The Implicit Calculus: A New Foundation for Generic Programming
[pdf]
Bruno C. d. S. Oliveira, Tom Schrijvers, Wontae Choi, Wonchan Lee and Kwangkeun Yi
In the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2012).
February 2012.
Note: See also our extended draft
The Implicit Calculus: A New Foundation for Generic Programming.
- GMeta: A Generic Formal Metatheory Framework for First-Order Representations
[pdf]
Gyesik Lee, Bruno C. d. S. Oliveira, Sungkeun Cho and Kwangkeun Yi
To appear in the 22nd European Symposium on Programming (ESOP 2012).
See also the GMeta webpage, January 2012.
-
-
- Scala for Generic Programmers
[pdf]
Bruno C. d. S. Oliveira and Jeremy Gibbons
Journal of Functional Programming, Vol. 20, pages 303-352. October 2010.
Note: This is an extended version of the
WGP'08 paper.
- 6th ACM Proceedings of the ICFP Workshop on Generic Programming (WGP 2010)
[url]
Bruno C. d. S. Oliveira and Marcin Zalewski
September 2010.
- Modular Components with Monadic Effects
[pdf]
Tom Schrijvers and Bruno C. d. S. Oliveira
In 22nd Draft Proceedings of the Symposium on Implementation of Functional Languages (IFL).
September 2010.
-
A technical report can be found
here.
-
- The Essence of the Iterator Pattern
[pdf]
Jeremy Gibbons and Bruno C. d. S. Oliveira
Journal of Functional Programming, Vol. 19, pages 377-402. July 2009.
If you are a Scala programmer you may want to look at Eric Torreborre's nice
blog post about the paper.
- Modular Visitor Components: A Practical Solution to the Expression Families Problem
[pdf]
Bruno C. d. S. Oliveira
In Sophia Drossopoulou, editor, LNCS 5653, Proceedings of the 23rd European Conference on Object Oriented Programming (ECOOP). June 2009.
-
-
See also the
extended version. September 2008.
-
See also the
extended technical report. September 2008.
- Scalable Problem Localization for Distributed Systems: Principles and Practices
[pdf]
Rui Zhang, Bruno C. d. S. Oliveira, Alan Bivens, Steve McKeever
In ACM International Conference Proceedings of the Second International Conference on Scalable Information Systems (Infoscale'07). June 2007.
- Extensible and Modular Generics for the Masses
[pdf]
Bruno C. d. S. Oliveira, Ralf Hinze and Andres Loeh
In Henrik Nilsson, editor, Trends in Functional Programming (TFP).
Best student paper award!
See also the EMGM Library maintained by
Sean Leather. June 2007.
- Generic and Indexed Programming
[pdf]
Jeremy Gibbons, Meng Wang and Bruno C. d. S. Oliveira
In Marco T. Morazan, Henrik Nilsson, editors, Draft Proceedings of Trends in Functional Programming (TFP). April 2007.
- The Essence of the Iterator Pattern
[pdf]
Jeremy Gibbons and Bruno C. d. S. Oliveira
In Conor McBride, Tarmo Uustalu, editors, Workshop on Mathematically Structured Functional Programming (MSFP).
See also the
journal version. July 2006.
- Generics as a Library
Bruno C. d. S. Oliveira, Ralf Hinze and Andres Loeh
In Henrik Nilsson, editor, Draft Proceedings of Trends in Functional Programming (TFP).
Superseded by
Extensible and Modular Generics for the Masses. April 2006.
- "Scrap your Boilerplate" Reloaded
[Webpage]
Ralf Hinze, Andres Loeh and Bruno C. d. S. Oliveira
In Philip Wadler, Masami Hagiya, editors, LNCS 3945, Proceedings of the Functional and Logic Programming Symposium (FLOPS). April 2006.
-
Drafts
These are the drafts I have been working on; or that are currently submitted.
Comments are welcome!
-
Functional Pearl: The Monad Zipper (Draft paper)
[pdf]
Tom Schrijvers and Bruno C. d. S. Oliveira
Submitted, April 2010
-
Typesafe Code Reuse Across ASTs via Code Generation (Draft paper)
[pdf]
Mikolas Janota, Bruno C. d. S. Oliveira and Viliam Holub
Submitted, see also the Rexastor tool, October 2009
-
The Different Aspects of Monads and Mixins (Draft Paper)
[pdf]
Bruno C. d. S. Oliveira
Unpublished, March 2009
-
Objects to Unify Type Classes and GADTs (Draft Paper)
[pdf]
Bruno C. d. S. Oliveira and Martin Sulzmann
Unpublished, March 2008
Graduate dissertations by my students and myself.
-
Applied Type Directed Semantics
[pdf]
Wenjia Ye
PhD, The University of Hong Kong. 2024.
-
A Blend of Intersection and Union Types
[pdf]
Baber Rehman
PhD, The University of Hong Kong. 2023.
-
Applicative Intersection Types
[pdf]
Xu Xue
MPhil, The University of Hong Kong. 2023.
-
Iso-Recursive Subtyping: New Theory and Extensions
[pdf]
Yaoda Zhou
PhD, The University of Hong Kong. 2023.
-
Taming Intersection Types and the Merge Operator
[pdf]
Xuejing Huang
PhD, The University of Hong Kong. 2023.
-
Formalized Higher-rank Polymorphic Type Inference Algorithms
[pdf]
Jinxu Zhao
PhD, The University of Hong Kong. 2021.
-
Higher-rank Polymorphism: Type Inference and Extensions
[pdf]
Ningning Xie
PhD, The University of Hong Kong. 2021.
-
Modularity Beyond Compositionality
[pdf]
Weixin Zhang
PhD, The University of Hong Kong. 2021.
-
Reusability and Modularity in Consumer, Producer, and
Transformation Operations
[pdf]
Haoyuan Zhang
PhD, The University of Hong Kong. 2019.
-
Iso-Type Systems: Simple Dependent Type Theories for Programming
[pdf]
Yanpeng Yang
PhD, The University of Hong Kong. 2019.
-
Revisiting Multiple Inheritance for Modularity and Reuse
[pdf]
Yanlin Wang
PhD, The University of Hong Kong. 2019.
-
Disjoint Intersection Types: Theory and Practice
[pdf]
Xuan Bi
PhD, The University of Hong Kong. 2018.
-
Gems: Language Modularization, Semantically
[pdf]
Huang Li
MPhil, The University of Hong Kong. 2017.
-
Extensible Domain-Specific Languages in
Object-Oriented Programming
[pdf]
Weixin Zhang
MPhil, The University of Hong Kong. 2017.
-
From Conventional to Search-focused Programming Environments
[pdf]
Tomas Tauber
PhD, The University of Hong Kong. 2017.
-
Genericity, extensibility and type-safety in the Visitor pattern
[pdf]
Bruno C. d. S. Oliveira
DPhil (PhD) thesis, Oxford University Computing Laboratory. 2007.