首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 562 毫秒
1.
We present our experience withEuLisp as a teaching language, focussing on the level of the language which was specifically designed for this purpose (level-0).EuLisp has been used in undergraduate and postgraduate teaching since 1990, in lectures and laboratories, where in many cases it has replaced Scheme or Common Lisp. It has been used extensively in programming courses, parallelism courses, as a vehicle for advanced courses in symbolic computing and programming language design; it has also been used as a platform for final year undergraduate projects. This experience has demonstrated thatEuLisp is well suited to teaching and far reaching in its capabilities: it supports the relevant concepts in a consistent and versatile framework, so that the language serves to facilitate the educational process. The discussion is illustrated with examples, and where appropriate we draw a comparison with the Lisp dialects used previously in these courses.  相似文献   

2.
EuLisp has an integrated object system with reflective capabilities. We discuss some example applications which use these facilities to experiment with some advanced and powerful concepts, namely, finalization, virtual shared memory and persistence. A secondary goal is to attempt to illustrate the additional possibilities of metaobject programming over non-metalevel techniques.  相似文献   

3.
C语言是一门典型的结构化程序设计语言,很多高校将其定为编程入门语言。时常会听到有学生抱怨C语言难学,难懂,难用,在解决实际问题编制应用软件时往往无以下手,缺乏编程和调试的能力。如何更好地开展C语言课程的教学呢?本文就C语言教学中存在的问题,进行了相关的教学研究,提出了相应的看法,以促进C语言教学。  相似文献   

4.
Esterel is a formally-defined language designed for programming reactive systems; namely, those that maintain a permanent interaction with their environment. The AT&T 5ESS® telephone switching system is an example of a reactive system. We describe an implementation in Esterel of one feature of a 5ESS switch; this implementation has been tested in the 5ESS switch simulator. Furthermore, it has been formally verified that this implementation satisfies some safety properties stated by 5ESS software development. Our experience indicates that Esterel is suitable for programming industrial-strength reactive systems, and affords significant advantages in software development over more traditional programming languages used in industrial settings.An earlier version of this paper appeared in the Proceedings of the Workshop on Industrial-Strength Formal Specification Techniques, Boca Raton, Florida, 1995.The author is currently supported by a Fulbright fellowship from Spain's Ministry of Science and Education. The work described here was performed while the author was visiting AT&T Bell Laboratories.  相似文献   

5.
This paper proposes a methodology for the development of distributed real-time systems. The methodology consists of the Hierarchical Communicating Real-Time State Machines (H-CRSM) modelling language, and the Violin toolset. H-CRSM combines Statecharts constructs with CSP-like timed communications. Violin provides a visual environment supporting in a seamless way all the life-cycle development phases of an H-CRSM system. Temporal validation rests on assertion checking during system simulation. Code generation is based on Java and a customizable runtime. The practical use of H-CRSM/Violin is shown by an example. A preliminary version of this paper appears in Proc. of Joint Modular Languages Conference (JMLC'2003), Klagenfurt, Austria, August 2003, LNCS 2789, Springer, pp. 110–121. Angelo Furfaro, Phd, is a computer science assistant professor at Unical, DEIS, teaching object-oriented programming. His research interests include: multiagent systems, Petri nets, parallel simulation, verification of time-dependent systems, distributed measurement systems. He is a member of ACM. Libero Nigro is a full professor of computer science at Unical, DEIS, where he teaches object-oriented programming, software engineering and real-time systems courses. He is the responsible of Software Engineering Laboratory (www.lis.deis.unical.it). His current research interests include: software engineering of time-dependent and distributed systems, real-time systems, Petri nets, modeling and parallel simulation of complex systems, distributed measurement systems. Prof. Nigro is a member of ACM and IEEE. Francesco Pupo, Phd, is a computer science assistant professor at Unical, DEIS, teaching introductory programming and computer architecture courses. His research interests include: Petri nets, discrete-event simulation, real-time systems, distributed measurement systems.  相似文献   

6.
This paperlintroduces the reader to many of the salient features of the Cedar programming environment, a state-of-the-art progrmming system that combines in a single integrated environment: high quality graphics, a sophisticated editor and document preparation facility, and a variety of tools for the programmer to use in the construction and debugging of his programs. The Cedar programming language [8] is a strongly typed, compiler-oriented language of the Pascal family. What is especially interesting about the Cedar project is that it is one of the few examples where an interactive, experimental programming environment has been built for this kind of language. In the past, such environments have been confined to dynamically typed languages like Lisp and Smalltalk.  相似文献   

7.
The challenge for the metaobject protocol designer is to balance the conflicting demands of efficiency, simplicity, and extensibility. It is impossible to know all desired extensions in advance; some of them will require greater functionality, while others require greater efficiency. In addition, the protocol itself must be sufficiently simple that it can be fully documented and understood by those who need to use it.This paper presents the framework of a metaobject protocol forEuLisp which provides expressiveness by a multi-leveled protocol and achieves efficiency by static semantics for predefined metaobjects and modularizing their operations. TheEuLisp module system supports global optimizations of metaobject applications. The metaobject system itself is structured into modules, taking into account the consequences for the compiler. It provides introspective operations as well as extension interfaces for various functionalities, including new inheritance, allocation, and slot access semantics.While the overall goals and functionality are close to those of Kiczaleset al. [9], the approach shows different emphases. As a result, time and space efficiency as well as robustness have been improved.This article is a revised and extended version of [4]The work of this paper was supported by the joint project APPLY, Ilog SA, the University of Bath, the British Council/DAAD ARC program, and theEuLisp working group.The joint project APPLY is funded by the German Federal Ministry for Research and Technology (BMFT). The partners in this project are the University of Kiel, the Fraunhofer Institute for Software Engineering and Systems Engineering (ISST), the German National Research Center for Computer Science (GMD), and VW-Gedas.  相似文献   

8.
This paper is an abstracted version of theEuLisp definition. As such it emphasizes those parts of the language that we consider the most important or note-worthy, while we just mention, without much detail the elements that are included for completeness. This is reflected in the structure of the paper which describes the module scheme, the object system and support for concurrent execution in the main part and consigns the majority of the datatypes to an appendix.This work has been supported by too many organisations and programmes to name them individually here, although special mention should be made of the Commission of the European Communities and Jean Omnes of DG XIII (Information technology directorate). A complete list of acknowledgements appears in Section 11  相似文献   

9.
In this article, we present the formal verification of a Common Lisp implementation of Buchberger’s algorithm for computing Gröbner bases of polynomial ideals. This work is carried out in ACL2, a system which provides an integrated environment where programming (in a pure functional subset of Common Lisp) and formal verification of programs, with the assistance of a theorem prover, are possible. Our implementation is written in a real programming language and it is directly executable within the ACL2 system or any compliant Common Lisp system. We provide here snippets of real verified code, discuss the formalization details in depth, and present quantitative data about the proof effort.  相似文献   

10.
Many universities and colleges, throughout the world, that deliver undergraduate programmes in science and engineering are currently incorporating virtual instruments as teaching, measurement and analysis tools for student learning. The aim of this study is to enhance the learning experience of undergraduate engineering students and stimulate their research interests by incorporating hands-on, hardware linked programming. The framework for the current research consisted of, initially, observing and recording the interest students showed in a graphical-based computer language for programming control and data acquisitions. Secondly, in the software laboratory sessions, the students were introduced to the concept of research activity and the use of computer software in such activity. LabVIEW™, an easy-to-use, interactive, graphical programming language that can be used to build virtual instruments was used in the current study. This software allows creation of sophisticated programs and applications in a shorter amount of time without needing an in-depth knowledge of computers or indeed programming languages. The methodology consisted of an introductory learning period for the LabVIEW™ programming language, followed by hands-on programming with a specific set of laboratory exercises aimed at solving typical industrial automation type problems. Finally the results of a detailed student questionnaire and created programs were analysed to establish the learning experiences. It was established that student experiences in designing and developing LabVIEW™ programs with associated hardware has hugely stimulated their interest and enthusiasm in the subject of industrial automation. Students acquired knowledge by direct experience, explored phenomena, visualized expected outcomes and experimented with possible solutions. Critically, the LabVIEW programming laboratory sessions undertaken during the course of this research has stimulate students interest in pursing further research at post-graduate level.  相似文献   

11.
程序设计语言课程是数学与应用数学专业的基础课,设置合理的课程体系是新建本科院校人才培养模式的一个重要环节,以专业需求和培养学生综合素质为目的,根据目前流行的程序设计语言,从课程选择与设置、教材建设、加强实践教学和改进教学手段等方面做了探讨。  相似文献   

12.
Multilisp is a parallel programming language derived from the Scheme dialect of Lisp by addition of thefuture construct. It has been implemented on Concert, a 32-processor shared-memory multiprocessor. A statistics-gathering feature of Concert Multilisp producesparallelism profiles showing the number of processors busy with computing or overhead, as a function of time. Experience gained using parallelism profiles and other measurement tools on several application programs has revealed three basic ways in whichfuture generates concurrency. These ways are illustrated on two example programs: the Lisp mapping functionmapcar and the partitioning routine from Quicksort. Experience with Multilisp programming exposes issues relating to side effects, error and exception handling, low-level operations for explicit manipulation of futures and tasks, and speculative computing, which are also discussed. The basic outlines of Multilisp are now fairly clear and have stood the test of being used for several applications, but further language design work is especially needed in the areas of speculative computing and exception handling.This research was supported in part by the Defense Advanced Research Projects Agency and was monitored by the Office of Naval Research under contract numbers N00014-83-K-0125 and N00014-84-K-0099.  相似文献   

13.
14.
Lisp applications need to show a reasonable cost-benefit relationship between the offered expressiveness and their demand for storage and run-time. Drawbacks in efficiency, apparent inLisp as a dynamically typed programming language, can be avoided by optimizations. Statically inferred type information can be decisive for the success of these optimizations.This paper describes a practical approach to type inference realized in a module and application compiler forEuLisp. The approach is partly related to Milner-style polymorphic type inference, but differs by describing functions withgeneric type schemes. Dependencies between argument and result types can be expressed more precisely by using generic type schemes of several lines than by using the common one-line type schemes. Generic type schemes contain types of a refined complementary lattice and bounded type variables. Besides standard and defined types so-calledstrategic types (e.g. singleton, zero, number-list) are combined into the type lattice. Local, global and control flow inference using generic type schemes with refined types generate precise typings of defined functions. Due to module compilation, inferred type schemes of exported functions can be stored in export interfaces, so they may be reused when imported elsewhere.This work was supported by the German Federal Ministry for Research and Technology (BMFT) within the joint project APPLY. The partners in this project are the Christian Albrechts University Kiel, the Fraunhofer Institute for Software Engineering and Systems Engineering (ISST), the German National Research Centre for Computer Science (GMD), and VW-GEDAS.  相似文献   

15.
Scheme 48 is an implementation of the Scheme programming language constructed with tractability and reliability as its primary design goals. It has the structural properties of large, compiler-based Lisp implementations: it is written entirely in Scheme, is bootstrapped via its compiler, and provides numerous language extensions. It controls the complexity that ordinarily attends such large Lisp implementations through clear articulation of internal modularity and by the exclusion of features, optimizations, and generalizations that are of only marginal value.  相似文献   

16.
Many current high level languages have been designed with support for concurrency in mind, providing constructs for the programmer to build explicit parallelism into a program. TheEuLisp threads mechanism, in conjunction with locks, and a generic event waiting operation provides a set of primitive tools with which such concurrency abstractions can be constructed. The object system (Telos) provides a powerful approach to building and controlling these abstractions. We provide a synopsis of this concurrency toolbox, and demonstrate the construction of a number of established abstractions using the facilities ofEuLisp: pcall, futures, stack groups, channels, CSP and Linda.  相似文献   

17.
The programming language pascal   总被引:2,自引:0,他引:2  
Summary A programming language called Pascal is described which was developed on the basis ofAlgol 60. Compared toAlgol 60, its range of applicability is considerably increased due to a variety of data structuring facilities. In view of its intended usage both as a convenient basis to teach programming and as an efficient tool to write large programs, emphasis was placed on keeping the number of fundamental concepts reasonably small, on a simple and systematic language structure, and on efficient implementability. A one-pass compiler has been constructed for the CDC 6000 computer family; it is expressed entirely in terms of Pascal itself.Fachgruppe Computer-Wissenschaften, Eidg. Technische Hochschule, Zürich, Schweiz.The author gratefully acknowledges his indeptedness to C. A. R. Hoare for his many valuable suggestions concerning overall design strategy as well as details, and for his critical scrutiny of this paper.  相似文献   

18.
Due to the increasing use of agile methods, teaching SCRUM as an agile project management methodology has become more and more important. In order to teach students to be able to apply SCRUM in concrete situations, often educational (simulation) games are used. However, most of these games have been developed more for professional trainings than taking into consideration typical restrictions of university courses (such as, class duration and low financial resources for instructional materials). Therefore, we present a manual paper and pencil game to reinforce and teach the application of SCRUM in undergraduate computing programmes complementing theoretical lectures. The game has been developed following a systematic instructional design process and based on our teaching experience. It has been applied several times in two undergraduate project management courses. We evaluated motivation, user experience and the game's contribution to learning through case studies on Kirkpatrick's level one based on the perception of the students. First results indicate the potential of the game to contribute to the learning of SCRUM in an engaging way, keeping students immersed in the learning task. In this regard, the game offers a low-budget alternative to complement traditional instructional strategies for teaching SCRUM in the classroom.  相似文献   

19.
BaLinda Lisp is a parallel Lisp dialect employing a shared memory model of parallel processing together with a subset of the Linda tuple space operators. Also included in the design is speculative processing. The aim is to have shared memory multiprocessing with the tuple space acting as the main data structure through which synchronization is done. The result is a flexible programming language. In this paper, we shall describe the design philosophy of BaLinda Lisp, discuss its implementation on three multiprocessing platforms, give examples of programs written in BaLinda Lisp and discuss future work on the language.  相似文献   

20.
C语言是一门应用广泛的结构化程序设计语言,掌握好C语言,不但能提高程序设计的能力,也能为多门后续课程打下坚实的基础。本人在长期从事C语言程序设计课的教学过程中,通过不断总结,不断积累,得出了一种行之有效的教学方法,该方法根据不同的教学对象,将不同的已有教学方法灵活地结合在一起,通过教学实践,取得了很好的教学效果。  相似文献   

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

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

京公网安备 11010802026262号