首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
A Transportable Programming Language, TPL, is defined as one that can be used to codeany program that will compile and correctly execute onany machine in a designated range. The range specifies only the minimum software and hardware needed to support the TPL. A HLL-TPL System is one that, in addition to supporting the TPL, can be used to transport any program coded in a dialect of the High-Level Language, HLL, so that it will compile and correctly execute on any machine in a designated range.Methods of implementing a HLL-TPL System are reviewed and it is demonstrated that theSuperset Method, in which the Hypothetical Parent of the HLL (HPHLL) acts as the intermediate language between the dialects of a HLL, leads to a fully transportable High-Level Language—the HPHLL—whose only parameters are: The amount of memory available; and the maximum module size exclusive of arrays. The ongoing work to realize a production version of the FORTRAN-TPL system is described. Its essential characteristic is a fully transportable bifunctional FORTRAN-TPL compiler that converts a dialect of FORTRAN to the intermediate language, HPFORTRAN, and visa-versa.  相似文献   

2.
The programming language TPL that is presented in this paper is a complete combination of PROLOG with a temporal language (the CTL language or other temporal languages expressed in atomata). It can be used to serve or reason along paths in a directed graph (a Kripke structure) which consists of many rule databases. At the end of the paper, a compiler (an algorithm) for reasoning language TPL has been supplied.  相似文献   

3.
4.
OO-HLL是一个ORACLE Pro*C应用生成器,它以面向对象和第四代语言面向问题的非过程方式定义用户需求,生成可嵌入SQL语句到C程序中的Pro*C程序,然后通过Pro*C预编译程序和Microsoft C编译器将其翻译为可执行的目标代码。本文介绍了OO-HLL的基本思想,给出了OO-HLL语言主要语法成分的形式定义,讨论了它的代码生成技术。  相似文献   

5.
A practical approach to the development of a high-quality, re-usable code generator is described in this paper. This code generator produces code for the Prime 64V mode architecture, but the methodology used is generally applicable to the construction of compilers for most architectures. The code generator accepts a tree-structured intermediate form, linearized and represented as a file of integers. This intermediate form uses high-level operators, minimizing work by compiler front-ends that use it and providing a number of advantages in the code generation process. The output of the code generator is assembly language. This tool was found to considerably extend the capabilities of students in a graduate compiler class and has been used in the construction of Pascal and C compilers.  相似文献   

6.
7.
8.
9.
10.
LR分析法在词法分析器自动构造中的应用   总被引:7,自引:2,他引:7  
温敬和 《计算机工程》2001,27(7):188-190
提出了一种新的自动构造编译程序词法分析器的方法,LR分析法通常用于语法分析,但只要适当修改LR分析总控程序,就可将LR分析法用于词法分析器的自动构造。该方法的优点不仅在于将词法分析器自动构造方法与语法分析器自动构造方法统一,简化了编译程序的设计和构造,而且该方法自动化程序较高,只要确定描述单词的文法和词形编码表,便可自动生成任何程序设计语言编译程序的词法分析器。  相似文献   

11.
采用扩展的巴科斯范式(EBNF)定义SQL语言的语法规则,提出了一种基于分析器自动生成工具(JavaCC)的SQL语言编译器的设计模型。该模型采用Java语言开发,具有良好的平台无关性;分别从词法、语法和语义分析、信息提取等方面进行编译器的设计与实现。实际运行结果表明:该模型能够快速高效地构建SQL编译器,且具有良好的可扩展性。  相似文献   

12.
SLR(1)词/语法分析的自动构造   总被引:5,自引:0,他引:5  
主要讨论了SLR(1)词/语法分析器的自动构造,自动生成的SLR(1)语法分析器可从自动生成的SLR(1)词法分析器中获得测试数据进行语法分析,论文相关的软件除可用于编译原理课程教学演示外,还可用于实际编译程序的SLR(1)词/语法分析器的自动构造。由于具有SLR(1)分析表自动构造功能,因此该软件还可作为软件工具用于程序设计语言本身的设计和构造。  相似文献   

13.
An 8088 development system is described which combines the advantages of a personal computer (IBM PC), with high-level language support in the form of a c compiler, and a rack-based system. A suite of programs has been developed to enable the c compiler output to be converted into a form suitable for execution on the rack-based target as either ROM- or RAM-resident applications.  相似文献   

14.
Adam is a high-level language for parallel processing. It is intended for programming resource scheduling applications, in particular supervisory packages for run-time scheduling of multiprocessing systems. An important design goal was to provide support for implementation of Ada and its run-time environment. Adam has been used to implement Ada task supervision and also as a high-level target language for compilation of Ada tasking. Adam provides facilities corresponding to the Ada sequential constructs (including subprograms, packages, exceptions, generics). In addition, it provides specialized module constructs for implementation of packages that may be shared between parallel processes, and new predefined types for scheduling. The parallel processing constructs of Adam are more primitive than Ada tasking. Strong restrictions are enforced on the ways in which parallel processes can interact. A compiler for Adam has been implemented in MacLisp on DEC PDP-10 computers. Runtime support packages in Adam for scheduling (on a single CPU) and I/O are also provided. The compiler contains a library manipulation facility for separate compilation. The Adam compiler has been used to build an Ada compiler for most of the July 1980 Ada, including task types and rendezvous constructs. This was achieved by implementing the translation of Ada tasking into Adam parallel processing as a preprocessor to the Adam compiler. This present Ada compiler, which has been operational since December 1980, uses a procedure call implementation of tasking. It can be easily modified to other implementations. Compilation of Ada tasking into a high-level target language such as Adam facilitates studying questions of correctness and efficiency of various compilation algorithms, and code optimizations specific to tasking, e.g. elimination of unnecessary threads of control. This paper gives an overview of Adam and examples of its use. Emphasis is placed on the differences from Ada. Experience using Adam to build the experimental Ada system is evaluated. Design of a run-time supervisor in Adam is discussed in detail.  相似文献   

15.
This paper deals with the development of an environment for evaluation of assembly languages. The environment, called UAL-E (universal assembly languages environment), consists of three main parts: (a) the UAL kernel used as the common translation ground for other assembly languages; (b) the (SP) software packages used for the translation of an assembly language program into its UAL version and vice versa; and (c) the PROTASK command control language for the synchronization of the UAL-E processes. The UAL-E environment could also be used as an automatic compiler generator.  相似文献   

16.
The implementation of visual programming languages (VPLs) and their supporting environments is time-consuming and tedious. To ease the task, researchers have developed some high-level tools to reduce the development effort. None of these tools, however, can be easily used to create a complete visual language in a seamless way as the lex/yacc tools do for textual language constructions. This paper presents the design, construction and application of a generic visual language generation environment, called VisPro. The VisPro design model improves the conventional model-view-controller framework in that its functional modules are decoupled to allow independent development and integration. The VisPro environment consists of a set of visual programming tools. Using VisPro, the process of VPL construction can be divided into two steps: lexicon definition and grammar specification. The former step defines visual objects and a visual editor, and the latter step provides language grammars with graph rewriting rules. The compiler for the VPL is automatically created according to the grammar specification. A target VPL is generated as a programming environment which contains the compiler and the visual editor. The paper demonstrates how VisPro is used by building a simple visual language and a more complex visual modeling language for distributed programming  相似文献   

17.
Starting from the seminal work of Volpano and Smith, there has been growing evidence that type systems may be used to enforce confidentiality of programs through non-interference. However, most type systems operate on high-level languages and calculi, and “low-level languages have not received much attention in studies of secure information flow” (Sabelfeld and Myers, [Language-based information-flow security. IEEE Journal on Selected Areas in Communications 2003; 21:5–19]). Therefore, we introduce an information flow type system for a low-level language featuring jumps and calls, and show that the type system enforces termination-insensitive non-interference.Furthermore, information flow type systems for low-level languages should appropriately relate to their counterparts for high-level languages. Therefore, we introduce a compiler from a high-level imperative programming language to our low-level language, and show that the compiler preserves information flow types.  相似文献   

18.
This paper identifies high-level program properties that can be discovered by static analysis in a compiler front end, and that are useful for classical low-level optimizations. We suggest how intermediate language code could be annotated to convey these properties to the code generator.I wish to thank David Watt and Andrew Kennedy for their detailed comments and suggestions. Simon Peyton Jones and Norman Ramsey commented on an early draft of this paper. The anonymous reviewers made suggestions that improved the contents and the presentation of the paper.  相似文献   

19.
There is now a good understanding of problems encountered in the design, implementation and use of a high-level language converter. These general issues are illustrated in terms of an account of the design and implementation of one particular converter, which converts programs from Pascal-SC (a Pascal dialect) to Ada. A specific aim of the presentation is to provide guidance for those contemplating future language conversion projects.  相似文献   

20.
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号