-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
191 lines (149 loc) · 9.26 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<meta name="description" content="SugarJ : Library-based Language Extensibility" />
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<title>SugarJ</title>
</head>
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
<a id="forkme_banner" href="https://github.com/sugar-lang/">Fork Me on GitHub</a>
<a href="."><h1 id="project_title">SugarJ</h1>
<h2 id="project_tagline">Library-based Language Extensibility</h2></a>
<section id="downloads">
<a class="eclipse_download_link" href="http://update.sugarj.org/">SugarJ Eclipse plugin</a>
</section>
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
<h2>News</h2>
<ul>
<li>Support for <a href="https://groups.google.com/d/msg/sugarj/Ip9lPTx9daU/JdFVg59j9GgJ">multilingual syntactic extensibility</a> integrated into master branch and available as Eclipse update. Currently supported languages: Java, Haskell, Prolog.</li>
<li><a href="http://sugarj.org/sugarhaskell.pdf">SugarHaskell paper</a> accepted at Haskell Symposium 2012</li>
<li><a href="http://groups.google.com/group/sugarj">SugarJ Google group</a>: Discuss and stay up-to-date</li>
<li><a href="https://groups.google.com/d/msg/sugarj/Txx0CRaOHTw/cNaFyPsr0t8J">Syntactic extensibility for Haskell</a>: SugarHaskell is up and running.<br/>
Install it from our <a href="http://update.sugarj.org/"> Eclipse update site</a>, including IDE support and layout-sensitive parsing.</li>
<li>What does language composition really mean?
Paper at LDTA 2012
[ <a href="http://erdweg.org/publications.html#ErdwegGR12">abstract</a>
| <a href="http://erdweg.org/publications/languagecomposition.pdf">.pdf</a> ]</li>
</ul>
<h2>Description</h2>
<p>In essence, the goal of SugarJ is to enable expressing programs in the syntax most natural to the problem domain the program is supposed to address. For instance, when generating XML documents in Java, the programmer should be able to use standard XML syntax instead of Java syntax for calling JDOM, say.</p>
<p>We propose to integrate syntactic extensibility into the main extension mechanism of programming languages—libraries. Libraries thus export syntactic sugar in addition to semantic artifacts traditionally exported: classes, methods, data types, etc. When importing a library, the syntax of the general purpose language is augmented by the syntactic definition exported by the library.</p>
<p><img src="xmleditorscreenshot.jpg" alt="SugarJ in action"></p>
<p>Notably, libraries that contain syntactic sugar retain the composability and self-applicability of conventional libraries: syntactic sugar can be composed by importing multiple libraries; syntactic sugar can be used in the development of a library that exports syntactic sugar itself. This enables the embedding of DSLs and the development of meta-DSLs, that is a DSL for defining DSLs, without ever leaving or reasoning outside of a SugarJ program.</p>
<h2>Installation and Usage</h2>
<em>
Please ensure enough stack space (about 4-16 MB) is available for
the SDF parser. You can set the stack space of your Java runtime using the
-Xss16m command line argument when starting Eclipse or setting -Xss16m in your
eclipse.ini file.
</em>
<p>For a quick start, install our Eclipse plugin available at
<a href="http://update.sugarj.org/">http://update.sugarj.org/</a>.
The update dialog will let you select any number of our currently supported
host languages: Java (*.sugj), Haskell (*.shs), Prolog (*.sugp).
</p>
<p>The source code of all components of SugarJ is available on github: <a href="http://github.com/sugar-lang">http://github.com/sugar-lang</a><br/>
<a href="http://github.com/sugar-lang/case-studies">case studies</a>,
<a href="http://github.com/sugar-lang/compiler">compiler</a>,
<a href="http://github.com/sugar-lang/editor">IDE</a>,
</p>
<p>We also prepared some information on <a href="http://update.sugarj.org/index.html#GettingStarted">first steps with SugarJ</a>.</p>
<h3>Subprojects</h3>
We are currently developing a number of extensions of SugarJ. The relevant code can be found as follows:
<ul>
<li>Language extensibility for Scala (by Florian Jakob):
in repository <a href="http://github.com/sugar-lang/lang-scala">lang-scala</a></li>
<li>Software Evolution to Domain-Specific Languages: See our <a href="http://erdweg.org/publications/evolution-to-DSLs.pdf">SLE
paper</a> and the <a href="https://github.com/sugar-lang/case-studies/tree/master/java-pet-store">Java Pet Store case study</a></li>
<li>Language extensibility for JavaScript (by Bob Davison):
in repository <a href="http://github.com/sugar-lang/lang-javascript">lang-javascript</a></li>
<li><a href="models/index.html">Models and transformations as modules</a>: A
module system for model-driven development</li>
</ul>
<h2>Team</h2>
Project lead: <a href="http://erdweg.org">Sebastian Erdweg</a>, TU Darmstadt
<p>
Get in touch, discuss, or simply stay up-to-date by joining the <a href="http://groups.google.com/group/sugarj">SugarJ Google group</a>.
</p>
Contributors:
<ul>
<li><a href="http://www.informatik.uni-marburg.de/%7Erendel/">Tillmann Rendel</a>, University of Marburg</li>
<li><a href="http://www.cs.cmu.edu/~ckaestne/">Christian Kästner</a>, CMU</li>
<li><a href="http://www.informatik.uni-marburg.de/%7Ekos/">Klaus Ostermann</a>, University of Marburg</li>
<li><a href="http://www.lclnet.nl/">Lennart Kats</a>, Delft University of Technology</li>
<li><a href="http://eelcovisser.org/">Eelco Visser</a>, Delft University of Technology</li>
<li><a href="http://www.informatik.uni-marburg.de/~pgiarrusso/">Paolo G. Giarrusso</a>, University of Marburg</li>
<li><a href="http://www.user.tu-berlin.de/florenz/">Florian Lorenzen</a>, TU Berlin</li>
<li>Jonas Pusch, University of Marburg</li>
<li>Stefan Fehrenbach, University of Marburg</li>
<li>Felix Rieger, University of Marburg</li>
<li>Florian Jakob, TU Darmstadt</li>
<li>Moritz Lichter, TU Darmstadt</li>
</ul><h2>Publications</h2>
<p>
<strong>A Framework for Extensible Languages</strong><br>
Sebastian Erdweg and Felix Rieger.
In <em>Proceedings of Conference on Generative Programming: Concepts & Experiences (GPCE)</em>, pages 3–12. ACM, 2013.
[ <a href="http://erdweg.org/publications/language-extensibility-framework.pdf">.pdf</a> ]
<p>
<strong>Extensible Languages for Flexible and Principled Domain Abstraction</strong><br>
Sebastian Erdweg. PhD thesis, Philipps-Universität Marburg, 2013.
[ <a href="http://erdweg.org/publications/dissertation.pdf">.pdf</a> ]
<p>
<strong>Embedding a Questionnaire DSL with SugarJ</strong><br>
Sebastian Erdweg.
In <em>Proceedings of Language Workbench Challenge (LWC)</em>, 2013.
[ <a href="http://erdweg.org/publications/lwc13-questionnaire.pdf"> pdf </a> ]
<p>
<strong>Layout-sensitive Language Extensibility with SugarHaskell</strong><br>
Sebastian Erdweg, Felix Rieger, Tillmann Rendel, and Klaus Ostermann.
In <em>Proceedings of Haskell Symposium</em>, pages 149-160. ACM, 2012.
[ <a href="http://erdweg.org/publications/sugarhaskell.pdf">.pdf</a> ]
<p>
<strong>Language Composition Untangled</strong><br>
Sebastian Erdweg, Paolo G. Giarrusso, and Tillmann Rendel.
In <em>Proceedings of Workshop on Language Descriptions, Tools and Applications
(LDTA)</em>, 7:1-7:8. ACM, 2012.
[ <a href="http://erdweg.org/publications/languagecomposition.pdf">.pdf</a> ]</p>
<p><strong>Growing a Language Environment with Editor Libraries</strong><br>
Sebastian Erdweg and Lennart C. L. Kats and Tillmann Rendel and Christian Kästner and Klaus Ostermann and Eelco Visser.
In <em>Proceedings of Conference on Generative Programming and Component Engineering (GPCE)</em>, pages 167–176. ACM, 2011.
[ <a href="http://erdweg.org/publications/editorlibs.pdf">.pdf</a> ]</p>
<p><strong>SugarJ: Library-based Syntactic Language Extensibility</strong><br>
Sebastian Erdweg, Tillmann Rendel, Christian Kästner and Klaus Ostermann.
In <em>Proceedings of Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)</em>, pages 391–406. ACM, 2011. <strong>Distinguished Paper Award</strong>.
[ <a href="http://erdweg.org/publications/sugarj.pdf">.pdf</a> ]</p>
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
<!-- <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p> -->
<!-- <p class="copyright">SugarJ maintained by <a href="https://github.com/seba--">seba--</a></p> -->
</footer>
</div>
<!-- Start of StatCounter Code for Default Guide -->
<script type="text/javascript">
var sc_project=8112241;
var sc_invisible=1;
var sc_security="b21d7b72";
</script>
<script type="text/javascript"
src="http://www.statcounter.com/counter/counter.js"></script>
<noscript><div class="statcounter"><a title="hits counter"
href="http://statcounter.com/free-hit-counter/"
target="_blank"><img class="statcounter"
src="http://c.statcounter.com/8112241/0/b21d7b72/1/"
alt="hits counter"></a></div></noscript>
<!-- End of StatCounter Code for Default Guide -->
</body>
</html>