- Sponsor:
- sigplan
Onward! focuses on everything to do with programming and software: including processes, methods, languages, communities, and applications. Onward! is more radical, more visionary, and more open than other conferences to not yet well-proven but well-argued ideas. Onward! welcomes different ways of thinking about, approaching, and reporting on programming language and software engineering research.
Onward! is looking for grand visions and new paradigms that could make a big difference in how we will build software in the future. But Onward! is not looking for research-as-usual papers -- conferences like OOPSLA are the place for that. Those conferences require rigorous validation such as theorems or empirical experiments, which are necessary for scientific progress, but which typically preclude discussion of early-stage ideas. Onward! papers must of course also supply some degree of validation, because mere speculation is not a good basis for progress. But Onward! accepts compelling arguments, exploratory implementations, and substantial examples. The use of worked-out examples to support new ideas is strongly encouraged.
We accepted 16 out of 35 research paper submissions and 6 out of 11 essays submissions by following a two-phase process with shepherding. This process allowed the program committees to offer help to the authors of papers deemed potentially acceptable by requesting them to improve specific aspects of the papers in keeping with the assessment criteria and the nature of Onward!. For example, the following represent some core improvement suggestions: Clarity of presentation and overall writing improvements to make the work more accessible, making the presentation of the technical ideas crisper or more concrete, making the argument sharper and more compelling, or expanding or refining the ideas based on new input from the reviewers. Authors were given about two months to perform revisions, after which a second submission occurred. Six research papers and two essays were subjected to shepherding. All of them reflected the revision requests of the program committees and so were accepted.
Our keynote speaker is Peter Norvig. A distinguished researcher and author of books and software as well as a trenchant commentator, Peter helped launch the MOOC revolution. In his talk he will explore the use of machine learning throughout the software space.
Proceeding Downloads
Programming with Managed Time
Most languages expose the computer's ability to globally read and write memory at any time. Programmers must then choreograph control flow so all reads and writes occur in correct relative orders, which can be difficult particularly when dealing with ...
Call by Meaning
Software development involves stitching existing components together. These data/service components are usually not well understood, as they are made by others and often obtained from somewhere on the Internet. This makes software development a daunting ...
Versionable, Branchable, and Mergeable Application State
NoSQL databases are rapidly becoming the storage of choice for large-scale Web applications. However, for the sake of scalability these applications trade consistency for availability. In this paper, we regain control over this trade-off by adapting an ...
The Semantics of Version Control
As software becomes increasingly complex, software configuration management is becoming ever more important. This paper shows how logics for reasoning about mutable state, such as separation logic, can also be used to give semantics for version control ...
Multi-Tier Functional Reactive Programming for the Web
The development of robust and efficient interactive web applications is challenging, because developers have to deal with multiple programming languages, asynchronous events, propagating data and events between clients and servers, data consistency and ...
Towards Tierless Web Development without Tierless Languages
Tierless programming languages enable developing the typical server, client and database tiers of a web application as a single mono-linguistic program. This development style is in stark contrast to the current practice which requires combining ...
Capturing and Exploiting IDE Interactions
Integrated development environments (IDEs) dominate the production and maintenance of software. Developers interact intensively with their IDEs while working. These interactions reflect a developer's thought process and work habits. By capturing and ...
A Language Designer's Workbench: A One-Stop-Shop for Implementation and Verification of Language Designs
- Eelco Visser,
- Guido Wachsmuth,
- Andrew Tolmach,
- Pierre Neron,
- Vlad Vergu,
- Augusto Passalaqua,
- Gabrieël Konat
The realization of a language design requires multiple artifacts that redundantly encode the same information. This entails significant effort for language implementors, and often results in late detection of errors in language definitions. In this ...
Korz: Simple, Symmetric, Subjective, Context-Oriented Programming
Korz is a new computational model that provides for context-oriented programming by combining implicit arguments and multiple dispatch in a slot-based model. This synthesis enables the writing of software that supports contextual variation along ...
Mining the Ecosystem to Improve Type Inference for Dynamically Typed Languages
Dynamically typed languages lack information about the types of variables in the source code. Developers care about this information as it supports program comprehension. Basic type inference techniques are helpful, but may yield many false positives or ...
Description Logic as Programming Language
This paper introduces the use of Description Logic as a programming language, giving: a logic with appropriate concept constructors and sentential forms; some example programs; requirements for the results of program execution; a tableau algorithm that ...
It's Only Illegal If You Get Caught: Breaking Invariants and Getting Away with It
Programming languages and coding standards provide invariants to ease reasoning about the correctness of code. Although useful, invariants are often intentionally broken by programmers for performance or compatibility purposes. An operation that ...
Phrase-Based Statistical Translation of Programming Languages
Phrase-based statistical machine translation approaches have been highly successful in translating between natural languages and are heavily used by commercial systems (e.g. Google Translate).
The main objective of this work is to investigate the ...
Interleaving of Modification and Use in Data-driven Tool Development
Programmers working in a Unix-like environment can easily build custom tools by configuring and combining small filter programs in shell scripts. When leaving such a text-based world and entering one that is graphics-based, however, tool building is ...
Unifying Textual and Visual: A Theoretical Account of the Visual Perception of Programming Languages
Firm principles which can be relied on to analyze and discuss textual and graphical code representations are still missing. We propose a framework relying on ScanVis, an extension of the Semiology of Graphics that models the perception and scanning of ...
Variational Data Structures: Exploring Tradeoffs in Computing with Variability
Variation is everywhere, and in the construction and analysis of customizable software it is paramount. In this context, there arises a need for variational data structures for efficiently representing and computing with related variants of an ...
In Search of Types
The concept of "type" has been used without a consistent, precise definition in discussions about programming languages for 60 years1. In this essay I explore various concepts lurking behind distinct uses of this word, highlighting two traditions in ...
Metamorphic Domain-Specific Languages: A Journey into the Shapes of a Language
External or internal domain-specific languages (DSLs) or (fluent) APIs' Whoever you are - a developer or a user of a DSL - you usually have to choose side; you should not! What about metamorphic DSLs that change their shape according to your needs? Our ...
Coverage and Its Discontents
Everyone wants to know one thing about a test suite: will it detect enough bugs? Unfortunately, in most settings that matter, answering this question directly is impractical or impossible. Software engineers and researchers therefore tend to rely on ...
Getting to Flow in Software Development
Humans are amazing at processing information. This ability has enabled humans to create software development projects that comprise a tremendous amount of information of various forms from predominantly natural language documents like requirements to ...
The Programming Language Wars: Questions and Responsibilities for the Programming Language Community
The discipline of computer science has a long and complicated history with computer programming languages. Historically, inventors have created language products for a wide variety of reasons, from attempts at making domain specific tasks easier or ...
I Throw Itching Powder at Tulips
Programming comes in many shapes & sizes.
Cited By
Recommendations
Acceptance Rates
Year | Submitted | Accepted | Rate |
---|---|---|---|
Onward! 2014 | 35 | 16 | 46% |
Onward! 2013 | 27 | 11 | 41% |
Onward! 2012 | 43 | 13 | 30% |
Overall | 105 | 40 | 38% |