CLOPS: A DSL for Command Line Options

  • Authors:
  • Mikoláš Janota;Fintan Fairmichael;Viliam Holub;Radu Grigore;Julien Charles;Dermot Cochran;Joseph R. Kiniry

  • Affiliations:
  • School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland;School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland;School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland;School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland;School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland;School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland;School of Computer Science and Informatics, Lero -- The Irish Software Engineering Research Centre, and The Complex and Adaptive Systems Laboratory (CASL), University College Dublin, Ireland

  • Venue:
  • DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programmers often write custom parsers for the command line input of their programs. They do so, in part, because they believe that both their program's parameterization and their option formats are simple. But as the program evolves, so does the parameterization and the available options. Gradually, option parsing, data structure complexity, and maintenance of related program documentation becomes unwieldy. This article introduces a novel DSL called CLOPS that lets a programmer specify command line options and their complex inter-dependencies in a declarative fashion. The DSL is supported by a tool that generates the following features to support command line option processing: (1) data structures to represent option values, (2) a command line parser that performs validity checks, and (3) command line documentation. We have exercised CLOPS by specifying the options of a small set of programs like ls , gzip , and svn which have complex command line interfaces. These examples are provided with the Open Source release of the CLOPS system.