LUCID, the dataflow programming language
LUCID, the dataflow programming language
Proc. of a conference on Functional programming languages and computer architecture
Message-based functional operating systems
Science of Computer Programming
Comprehension differences in debugging by skilled and novice programmers
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
Non-strict languages-programming and implementation
The Computer Journal - Special issue on Lazy functional programming
Spreadsheet-based interactive graphics: from prototype to tool
CHI '90 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Processes in a functional animation system
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Graphical techniques in a spreadsheet for specifying user interfaces
CHI '91 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Debuggable concurrency extensions for standard ML
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Declarative programming of graphical interfaces by visual examples
UIST '92 Proceedings of the 5th annual ACM symposium on User interface software and technology
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A small matter of programming: perspectives on end user computing
A small matter of programming: perspectives on end user computing
FUDGETS: a graphical user interface in a lazy functional language
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Watch what I do: programming by demonstration
Watch what I do: programming by demonstration
The Rendezvous constraint maintenance system
UIST '93 Proceedings of the 6th annual ACM symposium on User interface software and technology
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
SIGGRAPH '94 Proceedings of the 21st annual conference on Computer graphics and interactive techniques
Interactive generation of graphical user interfaces by multiple visual examples
UIST '94 Proceedings of the 7th annual ACM symposium on User interface software and technology
User interface specification using an enhanced spreadsheet model
ACM Transactions on Graphics (TOG)
ACM Transactions on Computer-Human Interaction (TOCHI)
Supporting distributed, concurrent, one-way constraints in user interface applications
Proceedings of the 8th annual ACM symposium on User interface and software technology
KidSim: end user programming of simulations
CHI '95 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Bridging the gulf between code and behavior in programming
CHI '95 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Easily adding animations to interfaces using constraints
Proceedings of the 9th annual ACM symposium on User interface software and technology
An empirical study of constraint usage in graphical applications
Proceedings of the 9th annual ACM symposium on User interface software and technology
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An introduction to formal languages and automata (2nd ed.)
An introduction to formal languages and automata (2nd ed.)
Dealing with multiple granularity of time in temporal logic programming
Journal of Symbolic Computation - Special issue: executable temporal logics
Does continuous visual feedback aid debugging in direct-manipulation programming systems?
Proceedings of the ACM SIGCHI Conference on Human factors in computing systems
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
ACM Computing Surveys (CSUR)
A bug's eye view of immediate visual feedback in direct-manipulation programming systems
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
Graphical definitions: expanding spreadsheet languages through direct manipulation and gestures
ACM Transactions on Computer-Human Interaction (TOCHI)
What you see is what you test: a methodology for testing form-based visual programs
Proceedings of the 20th international conference on Software engineering
Slicing spreadsheets: an integrated methodology for spreadsheet testing and debugging
Proceedings of the 2nd conference on Domain-specific languages
Exception Handling in the Spreadsheet Paradigm
IEEE Transactions on Software Engineering - special section on current trends in exception handling—part II
A correspondence between ALGOL 60 and Church's Lambda-notations: Part II
Communications of the ACM
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
Operating System Concepts
Principles for Information Visualization Spreadsheets
IEEE Computer Graphics and Applications
A 3D Spreadsheet Based on Intensional Logic
IEEE Software
PROVIDE: A Process Visualization and Debugging Environment
IEEE Transactions on Software Engineering
NREVERSAL of Fortune - The Thermodynamics of Garbage Collection
IWMM '92 Proceedings of the International Workshop on Memory Management
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Composing the User Interface with Haggis
Advanced Functional Programming, Second International School-Tutorial Text
Display-based problems in spreadsheets: a critical incident and a design remedy
VL '95 Proceedings of the 11th International IEEE Symposium on Visual Languages
VL '96 Proceedings of the 1996 IEEE Symposium on Visual Languages
Solving Display-Based Problems
VL '96 Proceedings of the 1996 IEEE Symposium on Visual Languages
Keyboardless Visual Programming Using Voice, Handwriting, and Gesture
VL '97 Proceedings of the 1997 IEEE Symposium on Visual Languages (VL '97)
Implementing Level 4 Liveness in Declarative Visual Programming Languages
VL '98 Proceedings of the IEEE Symposium on Visual Languages
Similarity Inheritance: A New Model of Inheritance for Spreadsheet VPLs
VL '98 Proceedings of the IEEE Symposium on Visual Languages
Scaling Up a "What You See Is What You Test" Methodology to Spreadsheet Grids
VL '99 Proceedings of the IEEE Symposium on Visual Languages
Time in Grid-Oriented VPLs: Just Another Dimension?
VL '00 Proceedings of the 2000 IEEE International Symposium on Visual Languages (VL'00)
Testing Strategies for Form-Based Visual Programs
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
AVI '96 Proceedings of the workshop on Advanced visual interfaces
A seamless integration of algorithm animation into a visual programming language
AVI '96 Proceedings of the workshop on Advanced visual interfaces
Designing dynamic web pages and persistence in the WYSIWYG interface
Proceedings of the 7th international conference on Intelligent user interfaces
Testing Homogeneous Spreadsheet Grids with the "What You See Is What You Test" Methodology
IEEE Transactions on Software Engineering
Automated test case generation for spreadsheets
Proceedings of the 24th International Conference on Software Engineering
Interactive visual functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A scalable method for deductive generalization in the spreadsheet paradigm
ACM Transactions on Computer-Human Interaction (TOCHI)
Harnessing curiosity to increase correctness in end-user programming
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
End-user software visualizations for fault localization
Proceedings of the 2003 ACM symposium on Software visualization
End-user software engineering with assertions in the spreadsheet paradigm
Proceedings of the 25th International Conference on Software Engineering
A user-centred approach to functions in Excel
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Impact of interruption style on end-user debugging
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Validating the Unit Correctness of Spreadsheet Programs
Proceedings of the 26th International Conference on Software Engineering
Proceedings of the 17th annual ACM symposium on User interface software and technology
ACM SIGPLAN Notices
Effectiveness of end-user debugging software features: are there gender issues?
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
An empirical study of fault localization for end-user programmers
Proceedings of the 27th international conference on Software engineering
An approach for categorizing end user programmers to guide software engineering research
WEUSE I Proceedings of the first workshop on End-user software engineering
Six challenges in supporting end-user debugging
WEUSE I Proceedings of the first workshop on End-user software engineering
ACM Computing Surveys (CSUR)
Subtext: uncovering the simplicity of programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A delta-driven execution model for semantic computing
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A1: end-user programming for web-based system administration
Proceedings of the 18th annual ACM symposium on User interface software and technology
Developing constraint-based applications with spreadsheets
IEA/AIE'2003 Proceedings of the 16th international conference on Developments in applied artificial intelligence
Integrating automated test generation into the WYSIWYT spreadsheet testing methodology
ACM Transactions on Software Engineering and Methodology (TOSEM)
Gencel: a program generator for correct spreadsheets
Journal of Functional Programming
An empirical evaluation of a testing and debugging methodology for Excel
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
RecipeSheet: creating, combining and controlling information processors
UIST '06 Proceedings of the 19th annual ACM symposium on User interface software and technology
Spreadsheet functional programming
Journal of Functional Programming
UCheck: A spreadsheet type checker for end users
Journal of Visual Languages and Computing
The semantics of graphical languages
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A1: spreadsheet-based scripting for developing web tools
LISA '05 Proceedings of the 19th conference on Large Installation System Administration Conference - Volume 19
Component-based end-user database design for ecologists
Journal of Intelligent Information Systems
Tangible functional programming
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Experiences developing architectures for realizing thin-client diagram editing tools
Software—Practice & Experience
Living it up with a live programming language
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Enhancing the Programmability of Spreadsheets with Logic Programming
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
Relational Blocks: A Visual Dataflow Language for Relational Web-Applications
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
ACM Transactions on Computer-Human Interaction (TOCHI)
Agent warp engine: formula based shape warping for networked applications
AVI '08 Proceedings of the working conference on Advanced visual interfaces
Algorithm library based on algorithmic cyberFilms
Knowledge-Based Systems
Algorithm Library based on Algorithmic CyberFilms
Proceedings of the 2007 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the sixth SoMeT_07
SEEUP '09 Proceedings of the 2009 ICSE Workshop on Software Engineering Foundations for End User Programming
Visual Lisp/CLOS programming in OpenMusic
Higher-Order and Symbolic Computation
Mining problem-solving strategies from HCI data
ACM Transactions on Computer-Human Interaction (TOCHI)
Impact of high-intensity negotiated-style interruptions on end-user debugging
Journal of Visual Languages and Computing
A framework and methodology for studying the causes of software errors in programming systems
Journal of Visual Languages and Computing
Interactive, visual fault localization support for end-user programmers
Journal of Visual Languages and Computing
Unification of arrays in spreadsheets with logic programming
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
No Code Required: Giving Users Tools to Transform the Web
No Code Required: Giving Users Tools to Transform the Web
Spreadsheet as a relational database engine
Proceedings of the 2010 ACM SIGMOD International Conference on Management of data
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
How a freeform spatial interface supports simple problem solving tasks
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
A spreadsheet client for web applications
NGITS'06 Proceedings of the 6th international conference on Next Generation Information Technologies and Systems
A document-centered environment for haskell
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Benefits of subjunctive interface support for exploratory access to online resources
IHI'04 Proceedings of the 2004 international conference on Intuitive Human Interfaces for Organizing and Accessing Intellectual Assets
Mulspren: a multiple language programming environment for children
CHINZ '03 Proceedings of the 4th Annual Conference of the ACM Special Interest Group on Computer-Human Interaction
Safety concerns regarding the use of visual programming in civilian avionics software
Proceedings of the 4th international ACM Sigsoft symposium on Architecting critical systems
KScript and KSWorld: a time-aware and mostly declarative language and interactive GUI framework
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Awareness and control for inter-widget communication: challenges and solutions
ICWE'13 Proceedings of the 13th international conference on Web Engineering
Hi-index | 0.00 |
Although detractors of functional programming sometimes claim that functional programming is too difficult or counter-intuitive for most programmers to understand and use, evidence to the contrary can be found by looking at the popularity of spreadsheets. The spreadsheet paradigm, a first-order subset of the functional programming paradigm, has found wide acceptance among both programmers and end users. Still, there are many limitations with most spreadsheet systems. In this paper, we discuss language features that eliminate several of these limitations without deviating from the first-order, declarative evaluation model. The language used to illustrate these features is a research language called FormsF;3. Using FormsF;3, we show that procedural abstraction, data abstraction and graphics output can be supported in the spreadsheet paradigm. We show that, with the addition of a simple model of time, animated output and GUI IF;O also become viable. To demonstrate generality, we also present an animated Turing machine simulator programmed using these features. Throughout the paper, we combine our discussion of the programming language characteristics with how the language features prototyped in FormsF;3 relate to what is known about human effectiveness in programming.