共查询到20条相似文献,搜索用时 15 毫秒
1.
Compiling code for the Icon programming language presents several challenges, particularly in dealing with types and goal-directed expression evaluation. In order to produce optimized code, it is necessary for the compiler to know much more about operations than is necessary for the compilation of most programming languages. This paper describes the organization of the Icon compiler and the way it acquires and maintains information about operations. The Icon compiler generates C code, which makes it portable to a wide variety of platforms and also allows the use of existing C compilers for performing routine optimizations on the final code. A specially designed implementation language, which is a superset of C, is used for writing Icon's run-time system. This language allows the inclusion of information about the abstract semantics of Icon operations and their type-checking and conversion requirements. A translator converts code written in the run-time language to C code to provide an object library for linking with the code produced by the Icon compiler. The translation process also automatically produces a database that contains the information the Icon compiler needs to generate and optimize code. This approach allows easy extension of Icon's computational repertoire, alternate computational extensions, and cross compilation. 相似文献
2.
Huibiao Zhu Fan YangJifeng He Jonathan P. BowenJeff W. Sanders Shengchao Qin 《The Journal of Logic and Algebraic Programming》2012,81(1):2-25
Complex software systems typically involve features like time, concurrency and probability, with probabilistic computations playing an increasing role. However, it is currently challenging to formalize languages incorporating all those features. Recently, the language PTSC has been proposed to integrate probability and time with shared-variable concurrency (Zhu et al. (2006, 2009) [51] and [53]), where the operational semantics has been explored and a set of algebraic laws has been investigated via bisimulation. This paper investigates the link between the operational and algebraic semantics of PTSC, highlighting both its theoretical and practical aspects.The link is obtained by deriving the operational semantics from the algebraic semantics, an approach that may be understood as establishing soundness of the operational semantics with respect to the algebraic semantics. Algebraic laws are provided that suffice to convert any PTSC program into a form consisting of a guarded choice or an internal choice between programs, which are initially deterministic. That form corresponds to a simple execution of the program, so it is used as a basis for an operational semantics. In that way, the operational semantics is derived from the algebraic semantics, with transition rules resulting from the derivation strategy. In fact the derived transition rules and the derivation strategy are shown to be equivalent, which may be understood as establishing completeness of the operational semantics with respect to the algebraic semantics.That theoretical approach to the link is complemented by a practical one, which animates the link using Prolog. The link between the two semantics proceeds via head normal form. Firstly, the generation of head normal form is explored, in particular animating the expansion laws for probabilistic interleaving. Then the derivation of the operational semantics is animated using a strategy that exploits head normal form. The operational semantics is also animated. These animations, which again supports to claim soundness and completeness of the operational semantics with respect to the algebraic, are interesting because they provide a practical demonstration of the theoretical results. 相似文献
3.
COMIB(COMposite Icon Browser) is a graphical user interface for retrieval of multimedia databases. It gives users the effect of browsing and navigating multimedia objects simultaneously in a screen using composite icons, that may be thumbnails of the several nested attribute values of those objects. Users can specify these attributes with a mouse while browsing the visualized aggregation hierarchy. Both querying and browsing can be interleaved via query reformulation. We show how these features of COMIB overcome the three drawbacks of the browsing paradigm such as no overview of many objects, the repetitious short-sighted navigation, and the weak presentation of a multimedia object. We also explain the retrieval mechanism algebraically and describe the implementation of COMIB based on this mechanism. 相似文献
4.
5.
Bialgebras for structural operational semantics: An introduction 总被引:1,自引:0,他引:1
Bartek Klin 《Theoretical computer science》2011,412(38):5043-5069
Bialgebras and distributive laws are an abstract, categorical framework to study various flavors of structural operational semantics. This paper aims to introduce the reader to the basics of bialgebras for operational semantics, and to sketch the state of the art in this research area. 相似文献
6.
Ivan Lanese 《Theoretical computer science》2010,411(19):1928-6611
In wireless systems, the communication mechanism combines features of broadcast, synchrony, and asynchrony. We develop an operational semantics for a calculus of wireless systems. We present different Reduction Semantics and a Labelled Transition Semantics and prove correspondence results between them. Finally, we apply CWS to the modelling of the Alternating Bit Protocol, and prove a simple correctness result as an example of the kind of properties that can be formalized in this framework.A major goal of the semantics is to describe the forms of interference among the activities of processes that are peculiar of wireless systems. Such interference occurs when a location is simultaneously reached by two transmissions. The Reduction Semantics differ on how information about the active transmissions is managed.We use the calculus to describe and analyse a few properties of a version of the Alternating Bit Protocol. 相似文献
7.
Two features of the Icon programming language strongly influence its implementation: generators and goal-directed evaluation. A generator is an expression that is capable of producing a sequence of results. In goal-directed evaluation, the results of generators are produced automatically in an attempt to complete computations successfully. This paper describes the generated code and run-time support for generators, goal-directed evaluation, and related control structures. 相似文献
8.
The need to design and verify architectures to support parallel implementations of declarative languages has led to the development of a novel language, called Paragon, which bridges the gap between the top-level specification of the abstract machine, and its detailed implementation in terms of parallel processes and message passing. The central technical contributions in this paper are: ? The introduction and specification of Paragon, a parallel object-oriented language based on graph rewriting and message passing principles. ? An illustration of the approach at work in the design of a parallel supercombinator graph reduction machine. ? A sketch proof that this design meets the requirements statement. 相似文献
9.
Saumya K. Debray 《Software》1993,23(12):1337-1360
Janus is a language designed for distributed constraint programming. This paper describes QD-Janus, a sequential implementation of Janus in Prolog. The compiler uses a number of novel analyses and optimizations to improve the performance of the system. The choice of Prolog as the target language for a compiler, although unusual, is motivated by the following: (i) the semantic gap between Janus and Prolog is much smaller than that between Janus and, say, C or machine language—this simplifies the compilation process significantly, and makes it possible to develop a system with reasonable performance fairly quickly; (ii) recent progress in Prolog implementation techniques, and the development of Prolog systems whose speeds are comparable to those of imperative languages, indicates that the translation to Prolog need not entail a significant performance loss compared to native code compilers; and (iii) compilation to Prolog can benefit immediately from a significant body of work on, and implementations of, parallel Prolog systems. Our experience indicates that translation of logic programming languages to Prolog, accompanied by the development of good program analysis and optimization tools, is an effective way to quickly develop flexible and portable implementations with good performance and low cost. 相似文献
10.
11.
12.
We develop a denotational semantics for POOL, a parallel object-oriented programming language. The main contribution of this semantics is an accurate mathematical model of the most important concept in object-oriented programming: the object. This is achieved by structuring the semantics in layers working at three different levels: for statements, objects and programs. For each of these levels we define a specialized mathematical domain of processes, which we use to assign a meaning to each language construct. This is done in the mathematical framework of complete metric spaces. We also define operators that translate between these domains. At the program level we give a precise definition of the observable input/output behaviour of a particular program, which could be used at a later stage to decide the issue of full abstractness. We illustrate our semantic techniques by first applying them to a toy language similar to CSP.This paper describes work done in ESPRIT Basic Research Action 3020,Integration. 相似文献
13.
Much work has been done to clarify the notion of metamodelling and new ideas, such as strict metamodelling, distinction between
ontological and linguistic instantiation, unified modelling elements and deep instantiation, have been introduced. However,
many of these ideas have not yet been fully developed and integrated into modelling languages with (concrete) syntax, rigorous
semantics and tool support. Consequently, applying these ideas in practice and reasoning about their meaning is difficult,
if not impossible. In this paper, we strive to add semantic rigour and conceptual clarity to metamodelling through the introduction
of Nivel, a novel metamodelling language capable of expressing models spanning an arbitrary number of levels. Nivel is based on a core set of conceptual modelling concepts: class, generalisation, instantiation, attribute, value and association.
Nivel adheres to a form of strict metamodelling and supports deep instantiation of classes, associations and attributes. A formal
semantics is given for Nivel by translation to weight constraint rule language (WCRL), which enables decidable, automated reasoning about Nivel. The modelling facilities of Nivel and the utility of the formalisation are demonstrated in a case study on feature modelling.
相似文献
Timo AsikainenEmail: |
14.
Gianluca Mura 《The Visual computer》2007,23(5):359-368
The complexity of abstract art languages create new semantics in art. This model tries to implement its conceptual language
within creating a new virtual environment. The gap between art and technology has been approached with a fuzzy logic engine
which uses a red and black semantic codification. The examples include the application of this metalanguage to a virtual artwork
experimentation. 相似文献
15.
Apara-functional programming language is a functional language that has been extended with special annotations that provide an extra degree of control over parallel evaluation. Of most interest are annotations that allow one to express the dynamic mapping of a program onto a known multiprocessor topology. Since it is quite desirable to provide a precise semantics for any programming language, in this paper adenotational semantics is given for a simple para-functional programming language with mapping annotations. A precise meaning is given not only to the normalfunctional behavior of the program (i.e., the answer), but also to theoperational notion of where (i.e., on what processor) expressions are evaluated. The latter semantics is accomplished through an abstract entity called anexecution tree.This research was supported in part by the National Science Foundation under Grants DCR-8403304 and DCR-8451415, and the Department of Energy under Grant DE-FG02-86ER25012. 相似文献
16.
17.
18.
19.
Conclustions The paper formalizes two denotational models for mixed computation process in a structural programming language. A criterion of functional correctness is formulated and theorems are proved that show that the described models are functionally correct. The proposed models define more precisely the concept of mixed computations discussed in [1, 2], and make it, possible formally to prove their properties. Moreover, they can be regarded as formal specifications of the respective components of a mixed-computer software.Translated from Kibernetika, No. 1, pp. 16–27, 43, January–February, 1988. 相似文献
20.
Existing results in membrane computing refer mainly to P systems’ characterization of Turing computability, also to some polynomial solutions to NP-complete problems by using an exponential workspace created in a “biological way”. In this paper we define an operational semantics of a basic class of P systems, and give two implementations of the operational semantics using rewriting logic. We present some results regarding these implementations, including two operational correspondence results, and discuss why these implementations are relevant in order to take advantage of good features of both structural operational semantics and rewriting logic. 相似文献