Programming by sketching for bit-streaming programs
By Armando Solar-Lezama, Rodric M. Rabbah, Rastislav Bodík, K. Ebcioglu. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2005
305 citations recorded by the source corpus.
Subfields: Computer Science Applications, Hardware and Architecture, Mechanical Engineering
View Paper: https://www.semanticscholar.org/paper/f663cf55bf1bc4e5aaa61d98e73ae64065ecd530
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Science Applications
- Rishabh Singh
- Pushmeet Kohli
- Rajeev Alur
- Sumit Gulwani
- Armando Solar-Lezama
- Rastislav Bodík
- Marc Brockschmidt
- Lihong Li
In Hardware and Architecture
- Rishabh Singh
- Armando Solar-Lezama
- Rajeev Alur
- Pushmeet Kohli
- Sumit Gulwani
- Marc Brockschmidt
- Satish Chandra
- Rastislav Bodík
In Mechanical Engineering
- Rajeev Alur
- Rishabh Singh
- Sumit Gulwani
- Armando Solar-Lezama
- Rastislav Bodík
- Hari Balakrishnan
- Lihong Li
Citations in the corpus
- Programming with a Differentiable Forth Interpreter (2016, background): “The core insight that enables this approach is the fact that programming languages can usually be formulated in terms of an abstract machine that executes the commands of the language.”
- Neuro-Symbolic Program Synthesis (2016, methodology): “the back of the development of methods for learning programs in various domains, ranging from low-level bit manipulation code (Solar-Lezama et al., 2005) to data structure manipulations (Singh & Solar-Lezama, 2011) and regular expression based string transformations (Gulwani, 2011).”
- Packet Transactions: High-Level Programming for Line-Rate Switches (2015, methodology): “esizer [90] for this purpose, as the atom templates can be easily expressed using SKETCH, while SKETCH also provides efficient search algorithms and has been used for similar purposes in other domains [89,38,39,78]. As an illustration, assume we want to map the codelet x=x+1 to the atom template show”
- Synthesis of loop-free programs (2011, methodology): “In this paper, we demonstrate how to semi-automate the discovery of small, but intricate, bitvector programs using the currently available formal veri.cation technology.”
- Syntax-guided synthesis (2013, methodology): “For instance, in the programming approach advocated by the SKETCH system, a programmer writes a partial program with incomplete details, and the synthesizer fills in the missing details using user-specified assertions as the correctness specification [4].”
- Formal verification of hybrid systems (2011, methodology): “Illustrative examples of this new view of synthesis include programming by examples for spreadsheet transformations in Microsoft Excel [27], and sketching of bit-streaming programs using program skeletons [51].”
- Program synthesis by sketching (2008, methodology): “Many of the insights behind the Sketch language came from the lessons we learned through the user studies he encouraged us to undertake for the StreamBit system.”
- SemFix: Program repair via semantic analysis (2013, background): “Such an approach would be more in the flavor of sketching [7], [8].”
- Automated feedback generation for introductory programming assignments (2012, methodology): “Program synthesis has been used recently for many applications such as synthesis of efficient low-level code [29, 38], data structure manipulations [34], inference of efficient synchronization in concurrent programs [42], snippets of excel macros [18, 33], relational data representations [19, 20] an”
- Expectation vs. Experience: Evaluating the Usability of Code Generation Tools Powered by Large Language Models (2022, background): “More recently, program synthesis has been applied to a variety of domains, e.g., low-level bit-vector implementations [36], data manipulation in excel [14], and regular expression synthesis [51].”
- TerpreT: A Probabilistic Programming Language for Program Induction (2016, background): “, 2012; Polozov and Gulwani, 2015), inference of efficient synchronization in concurrent programs, synthesizing efficient low-level code from partial programs (Solar-Lezama et al., 2005), compilers for low-power spatial architectures (Phothilimthana et al.”