This compendium covers research and practice in the field of user interfaces for programming languages. It has not yet been published online (see below).
The compendium is built using the Sphinx document generation system.
The required libraries are listed in requirements.txt
and can be installed using pip
as follows:
$ pip install -r requirements.txt
Then you can build the HTML output by typing make
at the shell.
The result is the html
directory. The make clean
command will delete the build artifacts.
The first round of contributions will be made by students in EECS 598 at Michigan during Fall 2019. After that, the compendium will be published online and contributions from the rest of the community will be welcome.
Contributions are made through GitHub's pull request mechanism. To quickly propose edits to a single file, you can find it on Github (e.g. by clicking on the Edit on Github link at the top of the corresponding page) and click the pencil icon. For more sophisticated changes, fork the repository and make a pull request.
Compendium content is written in reStructuredText, with the extensions supported by Sphinx. This format is similar to Markdown, but offers some more advanced features.
The compendium is structured as one file per topic area in the src
directory, with index.rst
as the top-level organizational hub.
We use BibTeX for citations, via the sphinxcontrib-bibtex extension. See src/notation.rst
for examples of how to include bibliography entries in your article. This extension is somewhat limited, so we need to use the following workarounds:
- Each .bib file can have no more than 9 entries, so just make new files, e.g.
notation.bib
,notation2.bib
and so on, as needed. - Sphinx will generate warnings if you have not explicitly cited a bibliography entry in the text. To get around this, you can include a hidden area at the bottom of each file to cite items that you have not otherwise cited. See the bottom of
notation.rst
for an example. - There are certain lexical limitations on the cite keys, e.g. they cannot have capital letters. I recommend using cite keys of the form
lastnameYY
whereYY
is the two digit year, e.g.hughes95
.
You can find BibTeX entries using Google Scholar or DBLP. Please remove extraneous details, e.g. conference locations and dates, and publisher names and locations. For common publication venues, it is okay to use abbreviations, e.g. OOPSLA
, rather than full conference names.
The compendium is maintained by Cyrus Omar ([email protected]).
The Sphinx setup was adapted from EECS 490 course notes prepared by Amir Kamil ([email protected]).
All contributions are governed by the Creative Commons Attribution-ShareAlike 4.0 International license.