A Shell-like Model for General Purpose Programming (bibtex)
by Jeanine Miller Adkisson, Johannes Westlund and Hidehiko Masuhara
Abstract:
Shell scripting languages such as bash are designed to integrate with an OS, which mainly involves managing processes with implicit input and output streams. They also attempt to do this in a compact way that could be reasonably typed on a command-line interface. However, existing shell languages are not sufficient to serve as general-purpose languages—values are not observable except in raw streams of bytes, and they lack modern language features such as lexical scope and higher-order functions. By way of a new programming language, Magritte, we propose a general-purpose programming language with semantics similar to bash. In this paper, we discuss the early design of such a system, in which the primary unit of composition, like bash, is processes with input and output channels, which can be read from or written to at any time, and which can be chained together via a pipe operator. We also explore concurrency semantics for such a language.
Reference:
A Shell-like Model for General Purpose Programming (Jeanine Miller Adkisson, Johannes Westlund and Hidehiko Masuhara), In Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs: Track on Programming Across the System Stack (MoreVMs/PASS'19), 2019.
Bibtex Entry:
@inproceedings{adkisson2019pass-morevms,
  author = {Jeanine Miller Adkisson and Johannes Westlund and Hidehiko Masuhara},
  title = {A Shell-like Model for General Purpose Programming},
  booktitle = {Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs: Track on Programming Across the System Stack (MoreVMs/PASS'19)},
  pages = {10:1--10:7},
  articleno = 10,
  numpages = 7,
  opturl = {http://doi.acm.org/10.1145/3328433.3328444},
  doi = {10.1145/3328433.3328444},
  location = {Genova, Italy},
  acmid = 3328444,
  keywords = {Magritte, Ruby},
  pdf = {morevms2019shell.pdf},
  year = 2019,
  month = apr,
  abstract = {Shell scripting languages such as bash are designed to integrate with an OS, which mainly involves managing processes with implicit input and output streams. They also attempt to do this in a compact way that could be reasonably typed on a command-line interface.

However, existing shell languages are not sufficient to serve as general-purpose languages---values are not observable except in raw streams of bytes, and they lack modern language features such as lexical scope and higher-order functions.

By way of a new programming language, Magritte, we propose a general-purpose programming language with semantics similar to bash. In this paper, we discuss the early design of such a system, in which the primary unit of composition, like bash, is processes with input and output channels, which can be read from or written to at any time, and which can be chained together via a pipe operator. We also explore concurrency semantics for such a language.}
}
Powered by bibtexbrowser