首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 889 毫秒
1.
2.
The second of a series of papers on modern high-level programming languages for microprocessors introduces PASCAL, which was the first language to implement strong data typing and support for structured programming. The major language constructs — program structures, control structures, simple and structured data types etc. — are discussed with respect to their support for good software engineering practice. The development of a program to simulate the behaviour of a simple computer is outlined as a programming example.  相似文献   

3.
A large subset of the language Algol 68 has been implemented on a small computer—the TESLA 200 with a 64 Kbyte store. In this paper, the general structure of the compiler and organization of the program at run-time are described. Especially, the original methods and devices are mentioned that cause a considerable enhancement of the speed of compilation and program run. These concern the syntax analysis (consistent notation, error recovery), the organization of the resulting program (procedure organization, algorithms of work with multiple values) and the techniques of code generation. We try to show that Algol 68 is a suitable programming language for small as well as large computers and that it can successfully compete with traditional programming languages.  相似文献   

4.
I. C. Wand 《Software》1979,9(10):853-878
The U.S. Department of Defense has recently issued a set of requirements, which it called IRONMAN, for the design of a programming language that it will use for embedded computer applications. To date four competing languages have been designed and, after considerable debate and scrutiny, these have been reduced to two. It is expected that the winning language will be selected during 1979. This report compares the IRONMAN requirements against the state-of-the-art in systems implementation language design in an attempt to see the extent to which IRONMAN can be met from existing technology. Particular emphasis is given to the areas of large-scale program structuring, parallel programming, exception handling and hardware interaction. Finally, Dijkstra's criticism of IRONMAN and the competing languages will be examined. It will be argued that he may be justified in doubting the viability of a language with such diverse features.  相似文献   

5.
6.
随着计算机技术飞速发展,编程技术取得巨大进步,各种各样的程序为我们学习工作生活提供了很大方便,编程工具和语言类型也空前丰富。其中,C语言由于实现速度快,逻辑性强,在编程技术中占有重要地位,成为研究开发的重要工具,很多环境下非常便捷。本文从研究角度出发,以总结的方式,介绍在采用C语言编译密码方案并进行分析的过程,在应用中不断学习。  相似文献   

7.
Josef,the robot     
Computers cannot be properly understood without at least an elementary exposure to programming. Many teachers would reject this proposal on the grounds that for many people programming is too difficult and uninteresting. This objection is probably correct if we imply that programming should be introduced in a general purpose programming language. Its validity becomes questionable if the vehicle is a special programming language which puts the student into a natural environment, familiar to every ordinary person.The LOGO system is a well known example of such a natural environment. This article presents a related language called Josef which is used to program a robot moving on the map of a computer terminal. The distinguishing features of Josef are: (a) Extensibility of built-in vocabulary: (b) Possibility of fully top-down approach to the solution of large problems; (c) Similarity to general purpose languages in terms of concepts available in the language and the syntax used to express them: (d) Ability to work on ordinary computer terminals.The larger part of the article attempts to present the general philosophy of the language on a few programming examples of medium complexity.  相似文献   

8.
各类安全攸关系统的可靠运行离不开软件程序的正确执行.程序的演绎验证技术为程序执行的正确性提供高度保障.程序语言种类繁多,且用途覆盖高可靠性场景的新式语言不断涌现,难以为每种语言设计支撑其程序验证任务的整套逻辑规则,并证明其相对于形式语义的可靠性和完备性.语言无关的程序验证技术提供以程序语言的语义为参数的验证过程及其可靠性结果.对每种程序语言,提供其形式语义后可直接获得面向该语言的程序验证过程.提出一种面向大步操作语义的语言无关演绎验证技术,其核心是对不同语言中循环、递归等可导致无界行为的语法结构进行可靠推理的通用方法.特别地,借助大步操作语义的一种函数式形式化提供表达程序中子结构所执行计算的能力,从而允许借助辅助信息对子结构进行推理.证明所提出验证技术的可靠性和相对完备性,通过命令式、函数式语言中的程序验证实例初步评估了该技术的有效性,并在Coq辅助证明工具中形式化了所有理论结果和验证实例,为基于辅助证明工具实现面向大步语义的语言无关程序验证工具提供了基础.  相似文献   

9.
The succession of digital program steps in typical hybrid analog digital computer simulations is so similar to the stepwise solution of differential-equation systems that well-established continuoussystem-simulation languages, and especially interactive digital simulation systems, can serve as excellent hybridcomputer software with little modification. In particular, the block-diagram-oriented DARE II simulation language can control the ultra-fast LOCUST analog computer to produce unprecendented hybrid execution speed while still permitting quite simple programming. Examples include iterative optimization, computation of hybrid-computer Monte Carlo statistics, and digital two-variable function generation in a hybrid-computer loop.  相似文献   

10.
One of the well-known properties of software systems is that they are subject to changes. Incremental software development enables making such program changes in a non-destructive manner. In the area of programming language definition the language designer/implementer wants to include new language features incrementally as the programming language evolves. In the paper our approach to incremental programming language development is presented. The proposed approach has been successfully used in the development of real programming languages, which confirms feasibility in practice.  相似文献   

11.
《Computers & Education》1988,12(1):11-15
Every time we use a computer we are working with metaphors. In some cases the metaphor is obvious, and in others not. This aspect of the computer is what makes it so useful. User interface metaphors like desktops, menus and windows can make computing appear more like the “real” activities in which we take part. In the realm of educational software, the task of programming boils down to the creation of a metaphorical microworld in which the user can interact with tasks and simulations that are designed to aid the acquisition and development of knowledge.Programming is hard no matter which language is used. The reasons why traditional authoring languages such as PILOT have failed to sweep through educational computing have nothing to do with the syntax or structure of programming languages but more to do with the failure of the underlying metaphor. The major difference between various high level languages are not to be found in their syntaxes, grammars, or vocabularies, but in their metaphors. A Pascal programmer sees a program as a collection of procedures, a Smalltalk programmer as objects and messages. The trick to making programming easy is to make the metaphor of the language match that of the application.Construction set languages including good spreadsheet programs have become immensely popular tools arising from their ease of use as a direct consequence of the consistency of the metaphor as one moves from programming to execution. Construction sets have a strong limitation; they are not general-purpose tools. The closest we have come to general purpose direct manipulation languages is with products like Filevision (a Macintosh-based visual database) and Guide.Paper-based media are very well suited to linear progression from one topic to another. As soon as it becomes important to branch between two activities, they become cumbersome to use. It is the ability of computer programs to branch which gives them quite different functions from documents. While programming languages allow the creation of branching programs, there is a new class of application programs which provide the same capability based on metaphors that are a natural evolution from the linear world of paper-based documents. Hypermedia is a term that refers to this class of software, not to one particular application; for example, Filevision is a hypermedia database tool. Hypermedia tools have great potential as authoring systems and they can make life much more exciting for those of us involved in educational computing.  相似文献   

12.
In aspect-oriented programming, pointcuts are formulated as conditions over the context of dynamic events in the execution of a program. Hybrid pointcut languages also allow this context to come from interactions between the pointcut language and the base program. While some pointcut languages only allow conditions on the current execution event, more recent proposals have demonstrated the need for expressing conditions over a history of join points. Such pointcut languages require means to balance the expressiveness of the language with the additional memory and runtime overhead caused by keeping a history of join point context data. In this paper, we introduce a logic-based pointcut language that allows interaction with the base program as well as pointcuts over a history of join points. We introduce forward chaining as an implementation model for this language, and discuss possible optimization strategies for the additional overhead.  相似文献   

13.
文章通过阐述计算机常用的编程语言,分析不同编程语言对计算机软件开发的影响,对计算机软件开发中编 程语言选择相关注意事项展开探讨,旨在为促进计算机软件开发中编程语言的合理选择提供一些思路。  相似文献   

14.
This article addresses the need for engineers to have a working knowledge of the fundamental structures of computer programming languages. In pursuit of this, it briefly looks at the history behind four of the more well-known programming languages. It then attempts to identify, and to look critically at, the attributes of programming languages that significantly affect the production of engineering software. The four traditional procedural programming languages chosen for review are those intended for scientific and general purpose programmin—FORTRAN-77, C, Pascal, and Modula-2. These languages are compared and some general observations are made.The emphasis of this article is on the attributes, characteristics, and components of programming languages that are important to software development and maintenance. Consequently, the comparison itself is of secondary importance, with the actual methodology of comparison given prominence in order that professional engineers who need to develop engineering software are able to make rational decisions about the choice of a programming language. Choosing an appropriate language can be a complex task and many factors must be considered. Therefore, in this article the fundamental structures, constructs, and attributes of programming languages are discussed, with very little attention given to the specific syntax of any particular language.  相似文献   

15.
Many novel computer architectures like array and multiprocessors which achieve high performance through the use of concurrency exploit variations of the von Neumann model of computation. The effective utilization of the machines makes special demands on programmers and their programming languages, such as the structuring of data into vectors or the partitioning of programs into concurrent processes. In comparison, the data flow model of computation demands only that the principle of structured programming be followed. A data flow program, often represented as a data flow graph, is a program that expresses a computation by indicating the data dependencies among operators. A data flow computer is a machine designed to take advantage of concurrency in data flow graphs by executing data independent operations in parallel. In this paper, we discuss the design of a high level language (DFL: Data Flow Language) suitable for data flow computers. Some sample procedures in DFL are presented. The implementation aspects have not been discussed in detail since there are no new problems encountered. The language DFL embodies the concepts of functional programming, but in appearance closely resembles Pascal. The language is a better vehicle than the data flow graph for expressing a parallel algorithm. The compiler has been implemented on a DEC 1090 system in Pascal.  相似文献   

16.
This paper addresses aspects of programming language design that affect the ease with which programs written in a language can be subjected to systematic testing and/or program verification. The discussion focuses of Pascal and on several languages that have been derived primarily from Pascal, particularly Euclid and PLAIN. Specific language issues addressed include translation-time checking, program readability, flow of control, support for program modularity, data flow, and program immutability. The relative ease of validating such programs is then determined by the style in which the programs are written. The paper presents some guidelines for writing programs in Pascal-like languages for testability and verifiability.  相似文献   

17.
High level languages used for programming microprocessors still need some assembly code to cover all the programming requirements and aspects. Using assembly code in a high level language program introduces certain difficulties and disadvantages. Practical suggestions to minimise the use of assembly code procedures in a high level language program is presented. (The high level language discussed is pascal/64000.)  相似文献   

18.
Spitbol, the compiler version of the symbol manipulation language Snobol 4, is compared with the well-known higher-level languages of Cobol, Fortran and PL-I. An algorithm for searching and insertion into a binary tree was chosen for a comparison standard and programmed in each language. Development and computer costs were then compared for the four languages. Although a single comparison does not prove one language superior to another, this comparison does suggest that Spitbol should at least be considered when choosing a programming language for non-numeric applications.  相似文献   

19.
Robot controllers are often programmed using either standard sequential programming languages or a robot-specific language, which are then compiled to assembly language specific to the robot. Modern real-time programming languages, on the other hand, are more appropriate to program robots, as they better fit the real-time reactive model of robots. This paper reports on a project to program a non-trivial robot, the Rug Warrior, in the Artificial Intelligence Laboratory of UNSW, using Esterel, which is a real-time programming language. The approach is illustrated by simulation of a colony of Siberian ants using a group of Rug Warriors.  相似文献   

20.
Atoment is a domain-specific language of executable specifications applied to describe methods and techniques of program verification. In this paper, a series of typical examples of using the Atoment language covering program models; the operational, transformational, and axiomatic semantics; and the formal specification of programming languages is presented.  相似文献   

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

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