Skip to content

Silver extension providing inlining of ableC literals for more natural AST construction

License

Notifications You must be signed in to change notification settings

melt-umn/silver-ableC

Repository files navigation

The ableC extension to Silver: silver-ableC

This extension to Silver allows ableC extension writers to express complex ASTs by writing C code directly using its concrete syntax, instead of manually writing complex expressions over its abstract syntax. For example, the new Silver expression

ableC_Stmt {
  int a = 1;
  int b = 2;
  return a + b;
}

is equivalent to writing

seqStmt(declStmt(variableDecls(...)), seqStmt(declStmt(variableDecls(...)), returnStmt(addExpr(...))))

This saves a tremendous amount to time for extension developers and signficantly lowers the bar to entry into these efforts.

Authors

Releases

  • Release 0.1.0: made in September, 2019
  • Release 0.1.1: made in April, 2020

Related publications

Release 0.1.1 is discussed in the paper "Reflection of Terms in Attribute Grammars: Design and Applications" by Lucas Kramer, Ted Kaminski, and Eric Van Wyk. At the time of release this paper has been submitted to the Journal of Computer Languages (COLA).

It is an extension of ``Reflection in Attribute Grammars'' by the same authors, presented at the 2019 ACM SIGPLAN International Conference on Generative Programming: Concepts & Experiences (GPCE). See DOI https://doi.org/10.1145/3357765.3359517. This paper references release 0.1.0 of silver-ableC.

More Information

More documentation:

Some ableC extensions using this extension:

Websites and repositories

Software downloads, documentation, and related papers are available on the Melt group web site at http://melt.cs.umn.edu/.

Actively-developed versions of this software are available on GitHub at https://github.com/melt-umn/silver-ableC.

Archival versions of this software are permanently available on the Data Repository of the University of Minnesota at https://doi.org/10.13020/D6QX07.

Other software and artifacts are also archived there and can be reached from this persistent link: http://hdl.handle.net/11299/206558.

Acknowledgements

We are very grateful to the National Science Foundation, the McKnight Foundation, DARPA, the University of Minnesota, and IBM for funding different aspects of our research and the development of Silver and Copper.

Licensing

Silver-ableC is distributed under the GNU Lesser General Public License. See the file LICENSE for details of this licenses. More information can be found at http://www.gnu.org/licenses/.