2020
DOI: 10.1016/j.cola.2020.100944
|View full text |Cite
|
Sign up to set email alerts
|

Morbig: A Static parser for POSIX shell

Abstract: The POSIX shell language defies conventional wisdom of compiler construction on several levels: The shell language was not designed for static parsing, but with an intertwining of syntactic analysis and execution by expansion in mind. Token recognition cannot be specified by regular expressions, lexical analysis depends on the parsing context and the evaluation context, and the shell grammar given in the specification is ambiguous. Besides, the unorthodox design choices of the shell language fit badly in the u… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
3
0

Year Published

2022
2022
2023
2023

Publication Types

Select...
3

Relationship

1
2

Authors

Journals

citations
Cited by 3 publications
(4 citation statements)
references
References 18 publications
(19 reference statements)
0
3
0
Order By: Relevance
“…This study had several additional outcomes. The toolchain includes tools for parsing and light static analysis of shell scripts [36], an engine for the symbolic execution of imperative languages based on first-order logics representation of program configurations [7], and an efficient decision procedure for feature tree logic. We also provide a formal specification of Posix commands used in Debian scripts in terms of a first-order logic [28].…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…This study had several additional outcomes. The toolchain includes tools for parsing and light static analysis of shell scripts [36], an engine for the symbolic execution of imperative languages based on first-order logics representation of program configurations [7], and an efficient decision procedure for feature tree logic. We also provide a formal specification of Posix commands used in Debian scripts in terms of a first-order logic [28].…”
Section: Discussionmentioning
confidence: 99%
“…The morbig parser was designed by some of the authors in 2018 [36]. Its implementation aims at employing code generators as much as possible to keep the implementation at a high level of abstraction, to simplify its maintenance, and to ease checking of compliance with the Posix standard.…”
Section: The Morbig Parser For Shell Scriptsmentioning
confidence: 99%
“…Another way is using context-free parsers extended with a subset of approaches used for parsing specific types of non-context-free language constructs and features. [25]. One such approach is stateful parsing, which maintains a global parse-wide state.…”
Section: Related Workmentioning
confidence: 99%
“…Legacy programming languages, such as COBOL and Fortran. Additionally, POSIX shell [21] could be supported as well (with a few extensions for the syntax that is not context-free). These languages were developed before the advent of modern parsing methods.…”
Section: Introductionmentioning
confidence: 99%