Awesome
Gramada
Gramada is a live programming environment for developing programming languages. There is an online demo video giving an overview of the Gramada tool set.
Installation
Get a Prepared Image
You can get a prepared image here.
Build your Own
- Get Squeak 5.0 or later
- Load Metacello. To speed up the process you can also get a prebuild Vivide image from the Vivide repository.
- Execute the following script to install Gramada:
Metacello new
baseline: 'Gramada';
repository: 'github://hpi-swa/gramada/repository';
load.
(Smalltalk at: #GramadaScripts) installAndOpenGramada.
Updating
To update Gramada first pull the latest version of the git repository. Then execute the following script:
{
(Metacello new
baseline: 'Vivide';
repository: 'github://hpi-swa/vivide/repository') .
(Metacello new
baseline: 'Ohm';
repository: 'github://hpi-swa/ohm-s/packages') .
(Smalltalk at: #Metacello) new
baseline: 'Gramada';
repository: 'github://hpi-swa/gramada/repository'
}
do: [:b | b get];
do: [:b | b load].
Further Documentation
- A short screencast of a common workflow: https://vimeo.com/180190846
- Patrick Rein and Robert Hirschfeld and Marcel Taeumel. Gramada: Immediacy in Programming Language Development. In Proceedings of the ACM Symposium for New Ideas, New Paradigms, and Reflections on Everything to do with Programming and Software (Onward!) 2016, co-located with the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA) 2016. pages 165–179, ACM, 2016. online version
How to cite this work
If you did work based on / or build with Gramada and want to write about the work, you can reference Gramada as following:
@inproceedings{rein_gramada_2016,
author = {Patrick Rein and
Robert Hirschfeld and
Marcel Taeumel},
title = {Gramada: Immediacy in Programming Language Development},
booktitle = {Symposium on New Ideas, New Paradigms, and
Reflections on Programming and Software (Onward!) 2016},
pages = {165--179},
year = {2016},
month = {November},
location = {Amsterdam, The Netherlands},
crossref = {DBLP:conf/oopsla/2016onward},
url = {http://doi.acm.org/10.1145/2986012.2986022},
doi = {10.1145/2986012.2986022},
timestamp = {Thu, 27 Oct 2016 15:08:50 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/conf/oopsla/ReinHT16},
bibsource = {dblp computer science bibliography, http://dblp.org}
}