LUCID, the dataflow programming language
LUCID, the dataflow programming language
Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Cognition-sensitive design and user modeling for syntax-directed editors
CHI '87 Proceedings of the SIGCHI/GI Conference on Human Factors in Computing Systems and Graphics Interface
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Can principles of cognition lower the barriers to programming?
Empirical studies of programmers: second workshop
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Fabrik: a visual programming environment
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Watch what I do: programming by demonstration
Watch what I do: programming by demonstration
Why looking isn't always seeing: readership skills and graphical programming
Communications of the ACM
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Structure-based editors and environments
Structure-based editors and environments
Debugging and the experience of immediacy
Communications of the ACM
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Visual Object-Oriented Programming: Concepts and Environments
Visual Object-Oriented Programming: Concepts and Environments
Prototype-Based Object-Oriented Programming: Concepts, Languages, and Applications
Prototype-Based Object-Oriented Programming: Concepts, Languages, and Applications
Test Driven Development: By Example
Test Driven Development: By Example
Interactive visual functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Making smalltalk a database system
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Programming as an Experience: The Inspiration for Self
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
First Steps in Programming: A Rationale for Attention Investment Models
HCC '02 Proceedings of the IEEE 2002 Symposia on Human Centric Computing Languages and Environments (HCC'02)
Similarity Inheritance: A New Model of Inheritance for Spreadsheet VPLs
VL '98 Proceedings of the IEEE Symposium on Visual Languages
A user-centred approach to functions in Excel
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm
Journal of Functional Programming
An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Managing Duplicated Code with Linked Editing
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
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
Beyond the language workbench: a runtime platform for practical semantic computing
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
TableCode: defining, extending and deploying object-oriented programs directly from databases
OOPSLA '05 Companion to 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
Expressive programs through presentation extension
Proceedings of the 6th international conference on Aspect-oriented software development
An introduction to computer science for non-majors using principles of computation
Proceedings of the 38th SIGCSE technical symposium on Computer science education
User-friendly functional programming for web mashups
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Living it up with a live programming language
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
No ifs, ands, or buts: uncovering the simplicity of conditionals
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Towards harmony-oriented programming
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
The Java Programmer's Phrase Book
Software Language Engineering
Silhouette: visual language for meaningful shape
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Harmony-oriented programming and software evolution
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Lessons in Software Evolution Learned by Listening to Smalltalk
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Compose & conquer: modularity for end-users
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Programming with time: cyber-physical programming with impromptu
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Visual programming environment based on hypergraph representations
ICCVG'10 Proceedings of the 2010 international conference on Computer vision and graphics: Part II
First-order interactive programming
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
The continuing quest for abstraction
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
DejaVu: integrated support for developing interactive camera-based programs
Proceedings of the 25th annual ACM symposium on User interface software and technology
Escaping the maze of twisty classes
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
It's alive! continuous feedback in UI programming
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation of a program is the same thing as its execution. Like a spreadsheet, a program is visible and alive, constantly executing even as it is edited. Program edits are coherent semantic transformations.The essence of this new medium is copying. Programs are constructed by copying and executed by copy flow: the projection of changes through copies. The simple idea of copying develops into a rich theory of higher-order continual copying of trees. Notably absent are symbolic names, the workhorse of textual notation, replaced by immediately-bound explicit relationships. Subtext unifies traditionally distinct programming tools and concepts, and enables some novel ones. Ancestral structures are a new primitive data type that combines the features of lists and records, along with unproblematic multiple inheritance. Adaptive conditionals use first-class program edits to dynamically adapt behavior.A prototype implementation shows promise, but calls for much further research. Subtext suggests that we can make programming radically easier, if we are willing to be radical.