programminglanguage researchers increasingly recognize that a high proportion of application development costs involve the interface with users of the application, including various dialogues, input formats, error ch...
详细信息
This paper discusses a language and associated environment for building rule-based programs. The language and environment are encapsulated in a system we call ORBS (Oregon Rule Based System). In tune with this confere...
详细信息
ISBN:
(纸本)0897911652
This paper discusses a language and associated environment for building rule-based programs. The language and environment are encapsulated in a system we call ORBS (Oregon Rule Based System). In tune with this conference, our focus will be on the interplay between language and environment design. However, we will broaden this somewhat to include design constraints placed by our program development model as well. Instead of attempting a complete design rationalization of ORBS, we will concentrate on design decisions that highlight the coupling between language, environment, and development model.
The quality of a programminglanguage itself is only one component in the ability of application writers to get the job done. programminglanguages can succeed or fail based on the breadth and quality of their library...
详细信息
ISBN:
(纸本)9781605580647
The quality of a programminglanguage itself is only one component in the ability of application writers to get the job done. programminglanguages can succeed or fail based on the breadth and quality of their library collection. Over the last few years, the Haskell community has risen to the task of building the library infrastructure necessary for Haskell to succeed as a programminglanguage suitable for writing real-world applications. This on-going work, the Cabal and Hackage effort, is built on the open source model of distributed development, and have resulted in a flowering of development in the language with more code produced and reused now than at any point in the community's history. It is easier to obtain and use Haskell code, in a wider range of environments, than ever before. This demonstration describes the infrastructure and process of Haskell development inside the Cabal/Hackage framework, including the build system, library dependency resolution, centralised publication, documentation and distribution, and how the code escapes outward into the wider software community. We survey the benefits and trade-offs in a distributed, collaborative development ecosystem and look at a proposed Haskell Platform that envisages a complete Haskell development environment, batteries included.
We show how to combine a general purpose type system for an existing language with support for programming with binders and contexts by refining the type system of ML with a restricted form of dependent types where in...
详细信息
ISBN:
(纸本)9781450310833
We show how to combine a general purpose type system for an existing language with support for programming with binders and contexts by refining the type system of ML with a restricted form of dependent types where index objects are drawn from contextual LF. This allows the user to specify formal systems within the logical framework LF and index ML types with contextual LF objects. Our language design keeps the index language generic only requiring decidability of equality of the index language providing a modular design. To illustrate the elegance and effectiveness of our language, we give programs for closure conversion and normalization by evaluation. Our three key technical contribution are: 1) We give a bidirectional type system for our core language which is centered around refinement substitutions instead of constraint solving. As a consequence, type checking is decidable and easy to trust, although constraint solving may be undecidable. 2) We give a big-step environment based operational semantics with environments which lends itself to efficient implementation. 3) We prove our language to be type safe and have mechanized our theoretical development in the proof assistant Coq using the fresh approach to binding.
Monads as an organizing principle for programming and semantics are notoriously difficult to grasp, yet they are a central and powerful abstraction in Haskell. This paper introduces a domain-specific language, MonadLa...
详细信息
ISBN:
(纸本)9781605580647
Monads as an organizing principle for programming and semantics are notoriously difficult to grasp, yet they are a central and powerful abstraction in Haskell. This paper introduces a domain-specific language, MonadLab, that simplifies the construction of monads, and describes its implementation in Template Haskell. MonadLab makes monad construction truly first class, meaning that arcane theoretical issues with respect to monad transformers are completely hidden from the programmer. The motivation behind the design of MonadLab is to make monadic programming in Haskell simpler while providing a tool for non-Haskell experts that will assist them in understanding this powerful abstraction.
programminglanguages have been trapped in a world of linear textual representations fundamentally unchanged for half a century. Even systems pushing beyond these forms visual languages, projectional language workbenc...
详细信息
ISBN:
(纸本)9798400712159
programminglanguages have been trapped in a world of linear textual representations fundamentally unchanged for half a century. Even systems pushing beyond these forms visual languages, projectional language workbenches, and end-user programming tools - largely ape the strictures of stream-of-bytes compilers and confine themselves to the popular paradigms of conventional textual systems. Instead of recreating what succeeded in textual paradigms, newprogramming systems should also be exploring what did not- the confounding, confusing, convoluted approaches that fell by the wayside- with the sorts of direct manipulation, spatial connection, and change over time that textual languages could never match;and they should use their control of presentation to let the user choose the right representation for a piece of code in the moment- and change it. We argue that these two points unlock new frontiers for programming systems, and present preliminary explorations to highlight how multiple-representation environments can lower the pressure on more speculative visual paradigms, to encourage more investigation of this underexamined space.
The Cedar environment provides a variety of somewhat novel integration mechanisms;they are the subject of this paper. We discuss Cedar from the viewpoint of a tool developer, discussing both 'rights' and '...
详细信息
ISBN:
(纸本)0897911652
The Cedar environment provides a variety of somewhat novel integration mechanisms;they are the subject of this paper. We discuss Cedar from the viewpoint of a tool developer, discussing both 'rights' and 'responsibilities';in building a new tool. We describe integration in Cedar from the 'ground up'. First, we discuss the Cedar programminglanguage and its effect on integration;the main point here is that in Cedar, one finds little 'code stealing' and a lot of 'code sharing'. Then we discuss Cedar packages;the key point here is that programmer's interfaces are just as important as the user's interface. Finally, we discuss the Cedar file system, FS, and the degree to which FS makes it easy to manage large numbers of files.
Databases contain vast amounts of highly related data accessed by programs of considerable size and complexity. Therefore, database programming has a particular need for high level constructs that abstract from detail...
详细信息
Unifying programming and command languages is a promising idea that has yet to be thoroughly exploited. Most attempts at such unification have used Lisp or traditional languages, such as Pascal. This paper describes t...
详细信息
暂无评论