Many combinatorial optimization problems in biosequence analysis are solved via dynamic programming. To increase programming productivity and program reliability, a domain specific language embedded in Haskell has bee...
详细信息
ISBN:
(纸本)1595931082
Many combinatorial optimization problems in biosequence analysis are solved via dynamic programming. To increase programming productivity and program reliability, a domain specific language embedded in Haskell has been suggested. We point out several shortcomings of this approach, and report on some challenges in the (ongoing) project of migrating this domain specific language from its host language to a directly compiled implementation. Most of these challenges are domain specific optimizations, which not only improve significant constant factors of runtime and space requirements, but also affect asymptotic efficiency. We report on our solutions to some of these problems, and point out others that are still open. Copyright 2006 ACM.
In this paper, we describe a programming paradigm that changes the focus of programming from solution methods for certain application problems to the specification of the problems themselves, leaving the mapping from ...
详细信息
In this paper, we describe a programming paradigm that changes the focus of programming from solution methods for certain application problems to the specification of the problems themselves, leaving the mapping from the problem specification to the computational resources that will provide or coordinate the solution to one or more separate (and possibly external) information files, knowledge bases, or other processes. The Problem Posing Interpretation is a declarative programming paradigm that uses Knowledge-Based Polymorphism to unify the interpretation of all programminglanguages. We describe examples from all major programming paradigms, to justify this claim.
This paper addresses the need for engineers to have a working knowledge of the fundamentals of computer programming languages. It looks at the history behind four programminglanguages. It then attempts to identify, a...
详细信息
This paper addresses the need for engineers to have a working knowledge of the fundamentals of computer programming languages. It looks at the history behind four programminglanguages. It then attempts to identify, and to look critically at, the attributes of programminglanguages that affect the production of engineering software. The four traditional procedural programminglanguages chosen for review are those intended for scientific and general purpose programming -FORTRAN-77, C, Pascal, and Modula-2. These languages are compared and some general observations are made.
Distributed process control has gained in impetus over recent years as an alternative to central control systems. The object-oriented paradigm lends itself well to the description of such distributed systems. The Osca...
详细信息
ISBN:
(纸本)0818608765
Distributed process control has gained in impetus over recent years as an alternative to central control systems. The object-oriented paradigm lends itself well to the description of such distributed systems. The Oscar model of active objects embodies this paradigm, and a support environment for the design and implementation of process control systems built on this model is outlined. A graphical system description language based on an extended GRAFCET notation is described. This language is used to specify the interobject messaging and action required for a particular control task. The parsing of the diagram provides the code for controlling a system. A higher-level iconic approach to the description of control strategies is also described. By restricting themselves to the domain of process control, the authors have been able to make substantial progress in the provision of an integrated support environment. The environment incorporates the notions of visual programming techniques and combines iconic and object-oriented paradigms to produce a consistent interface metaphor.
The tcc paradigm is a formalism for timed concurrent constraint programming. Several tcc languages differing in their way of expressing infinite behavior have been proposed in the literature. In this paper we study th...
详细信息
ISBN:
(纸本)1581135289
The tcc paradigm is a formalism for timed concurrent constraint programming. Several tcc languages differing in their way of expressing infinite behavior have been proposed in the literature. In this paper we study the expressive power of some of these languages. In particular, we show that: (1) recursive procedures with parameters can be encoded into parameterless recursive procedures with dynamic scoping, and viceversa. (2) replication can be encoded into parameterless recursive procedures with static scoping, and viceversa. (3) the languages from (1) are strictly more expressive than the languages from (2). Furthermore, we show that behavioral equivalence is undecidable for the languages from (1), but decidable for the languages from (2). The undecidability result holds even if the process variables take values from a fixed finite domain.
After more than a decade of research, visual languages have still not become everyday programming tools. On a short term, an integration of visual languages with well-established (textual) programminglanguages may be...
详细信息
After more than a decade of research, visual languages have still not become everyday programming tools. On a short term, an integration of visual languages with well-established (textual) programminglanguages may be more likely to meet the actual requirements of practical software development than the highly ambitious goal of creating purely visual languages. In such an integration each paradigm can support the other where it is superior. Particularly attractive is the use of visual expressions for the description of domain-specific data structures in combination with textual notations for abstract control structures. In addition to a basic framework for heterogeneous languages, we outline the design of a development system that allows rapid prototyping of implementations of heterogeneous languages. Examples will be presented from the domains of logical, functional, and procedural languages.
programminglanguages for real-time control are tools provided to the control engineers to apply sophisticated control systems to control problems in understandable terms. The need for integration of several real-time...
详细信息
ISBN:
(纸本)0080334504
programminglanguages for real-time control are tools provided to the control engineers to apply sophisticated control systems to control problems in understandable terms. The need for integration of several real-time control programs is illustrated by reviewing the different levels of the control system development procedure and the personnel involved at each level. Standard languages developed by task force 3 of the International Electrotechnical Commission (IEC) subcommittee 65A on Standards for Programmable Controllers for real-time control applications are shown to have the features required to meet the requirements of the real-time control problem. Real-time control strategy may be conveyed easily to all levels of personnel participating in the control system development by integrating the different languages into the control program. Implementation of integrating different languages to real-time control applications has been slow. However, with the emphasis on productivity at all levels in the production process, more attention will be given to this programming technique in the future.
We describe a technique for executing highly-parallel programs on a network and a prototype system that uses the technique. The programs are written in the Lucid family of programminglanguages. Lucid is a multidimens...
详细信息
ISBN:
(纸本)088986392X
We describe a technique for executing highly-parallel programs on a network and a prototype system that uses the technique. The programs are written in the Lucid family of programminglanguages. Lucid is a multidimensional declarative programming language in which computations are performed in an implicit evaluation context. The execution engine is using a demand-driven execution model and operates in a client/server environment. High-level Lucid code is translated at compile-time into an object-oriented representation in which each Lucid identifier is represented by a class and each Lucid value (identifier in a context) is an instance of this class. The execution engine uses a cache to improve the overall performance and is designed to achieve both flexibility and efficiency.
This paper describes a set of experiments with different ideas and techniques for the programming of telephone exchanges. The project called SPOTS (SPC for POTS, Stored Program Control for Plain Ordinary Telephony Ser...
详细信息
This paper describes a set of experiments with different ideas and techniques for the programming of telephone exchanges. The project called SPOTS (SPC for POTS, Stored Program Control for Plain Ordinary Telephony Service) has been based on a conventional system architecture based on a central processor and regional processors. Work has concentrated on the program system in the central processor and the basic telephony functions. This paper describes systems using conventional (imperative) languages (Ada and Concurrent Euclid), declarative languages (CCS and LPL), object oriented languages (Frames and CLU) and a rule based system.
暂无评论