A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Concurrent Processes and Their Syntax
Journal of the ACM (JACM)
Programming by Refinement, as Exemplified by the SETL Representation Sublanguage
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Communications of the ACM
The next 700 programming languages
Communications of the ACM
A Metalanguage for interactive proof in LCF
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Denotational Description of Programming Languages: An Introduction
The Denotational Description of Programming Languages: An Introduction
Software Tools
MFCS '80 Proceedings of the 9th Symposium on Mathematical Foundations of Computer Science
Prolog - the language and its implementation compared with Lisp
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Proceedings of the ACM SIGPLAN symposium on Very high level languages
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Preliminary Ada reference manual
ACM SIGPLAN Notices - Preliminary Ada reference manual
A programming language
Structured programming
Communications of the ACM
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
Trace Specifications: Methodology and Models
IEEE Transactions on Software Engineering
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Automatic binding time analysis for a typed &lgr;-calculus
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data-flow design as a visual programming language
IWSSD '89 Proceedings of the 5th international workshop on Software specification and design
Completeness of rewrite rules and rewrite strategies for FP
Journal of the ACM (JACM)
Compiling pattern matching by term decomposition
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Small domains spell fast strictness analysis
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Retrieving re-usable software components by polymorphic type
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Comparison of priority rules in pattern matching and term rewriting
Journal of Symbolic Computation
An ad hoc approach to the implementation of polymorphism
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fun, rigour and pragmatism in functional programming
ACM SIGCSE Bulletin
Language Design for Program Manipulation
IEEE Transactions on Software Engineering
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Fips: a functional-imperative language for explorative programming
ACM SIGPLAN Notices
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Polymorphic type inference and abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fast strictness analysis based on demand propagation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Putting type annotations to work
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal specification and verification of hardware: a comparative case study
DAC '88 Proceedings of the 25th ACM/IEEE Design Automation Conference
Declaration-free type checking
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Program specification and development in standard ML
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Denotational semantics and rewrite rules for FP
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Semantics-directed code generation
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ICSE '85 Proceedings of the 8th international conference on Software engineering
Equations, sets, and reduction semantics for functional and logic programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A System for Assisting Program Transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Regular expression pattern matching for XML
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Approaches to comprehension-preserving graphical reduction of program visualizations
Proceedings of the 2002 ACM symposium on Applied computing
Type Inference Verified: Algorithm W in Isabelle/HOL
Journal of Automated Reasoning
Treat - an applicative code generator
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A types-as-sets semantics for milner-style polymorphism
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An ideal model for recursive polymorphic types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Static inference of properties of applicative programs
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Compiling a functional language
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
FP with data abstraction and strong typing
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Efficient abstractions for the implementation of structured editors
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Regular expression pattern matching for XML
Journal of Functional Programming
NATURAL EXPERT: a commercial functional programming environment
Journal of Functional Programming
Rapid prototyping: in the OBJ executable specification language
Proceedings of the workshop on Rapid prototyping
More thoughts on specification and verification
ACM SIGSOFT Software Engineering Notes
Pattern matching as cut elimination
Theoretical Computer Science
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
The Zephyr abstract syntax description language
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
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
Cooperating Reduction Machines
IEEE Transactions on Computers
The design of a system for designing knowledge representation systems
IJCAI'81 Proceedings of the 7th international joint conference on Artificial intelligence - Volume 1
IJCAI'85 Proceedings of the 9th international joint conference on Artificial intelligence - Volume 1
Decidability of bounded higher-order unification
Journal of Symbolic Computation
Short communication: Higher-order communications for concurrent programming
Parallel Computing
Links: web programming without tiers
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Semantic subtyping with an SMT solver
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Gradual refinement: blending pattern matching with data abstraction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Expression reduction systems and extensions: an overview
Processes, Terms and Cycles
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Science of Computer Programming
Hi-index | 0.02 |
An applicative language called HOPE is described and discussed. The underlying goal of the design and implementation effort was to produce a very simple programming language which encourages the construction of clear and manipulable programs. HOPE does not include an assignment statement; this is felt to be an important simplification. The user may freely define his own data types, without the need to devise a complicated encoding in terms of low-level types. The language is very strongly typed, and as implemented it incorporates a typechecker which handles polymorphic types and overloaded operators. Functions are defined by a set of recursion equations; the left-hand side of each equation includes a pattern used to determine which equation to use for a given argument. The availability of arbitrary higher-order types allows functions to be defined which 'package' recursion. Lazily-evaluated lists are provided, allowing the use of infinite lists which could be used to provide interactive input/output and concurrency. HOPE also includes a simple modularisation facility which may be used to protect the implementation of an abstract data type.