首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 93 毫秒
1.
The URI online judge is a new online tool created with the main purpose of making programming practice more dynamic, interesting and stimulating for those who have just entered into the art of programming. The URI online judge allows problem corrections in real time, interactivity between users, besides it allows flexibility in the choice of the programming language and it makes some supporting materials available. During the short time in which the tool has being used we have observed that it is a very good tool for self-study. As users of programming portals, the authors noticed some details that would be important to be implemented in a new tool, such as the separation of problems by categories. Another fundamental detail is the fact that this tool is available in two languages (Portuguese and English). This might facilitate the learning process for beginners, both locally and globally.  相似文献   

2.
D-Tuili,having been implemented on microcompute network,is a distributed logical reasoning programming language.D-Tuili supports parallel programming on the language level,and couples loosely with the distributed database management system,so data in distributed databases can be used in the distributed logic programs.In this paper,we mainly introduce the components of D-Tuili used to design distributed logic programs.Furthermore,the main principles to implement D-Tuili and the main technologies adopted in the implemented system of D-Tuili are described.  相似文献   

3.
Starting with some simple representative quantum programming languages, this paper lays stress on quantum computation, language paradigm, program structure, input/output, exception facility, and especially the recent results of the quantum computation group at Nanjing University, namely the functional quantum programming language NDQFP. All primitive functions and combining forms in NDQFP are given in the appendix.  相似文献   

4.
In this paper, we propose a semantic framework to debug synchronous message passing-based con- current programs, which are increasingly useful as parallel computing and distributed systems become more and more pervasive. We first design a concurrent programming language model to uniformly represent exist- ing concurrent programming languages. Compared to sequential programming languages, this model contains communication statements, i.e., sending and receiving statements, and a concurrent structure to represent com- munication and concurrency. We then propose a debugging process consisting of a tracing and a locating procedure. The tracing procedure re-executes a program with a failed test case and uses specially designed data structures to collect useful execution information for locating bugs. We provide for the tracing procedure a struc- tural operational semantics to represent synchronous communication and concurrency. The locating procedure backward locates the ill-designed statement by using information obtained in the tracing procedure, generates a fix equation, and tries to fix the bug by solving the fix equation. We also propose a structural operational semantics for the locating procedure. We supply two examples to test our proposed operational semantics.  相似文献   

5.
This paper describes theoretical and practical aspects of a partial evaluator that treats a parallel lambda language.The parallel language presented is a combination of lambda calculus and message passing communication mechanism.This parallel language can be used to write a programming language‘s denotational semantics which extracts the paallelism in the program.From this denotational definition of the programming language,the partial evaluator can generate parallel compiler of the language by self-application. The key technique of partial evaluation is binding time analysis that determines in advance which parts of the source program can be evaluated during partial evaluation,and which parts cannot,A binding time analysis is described based upon type inference.A new type chcode in introduced into the type system,which denotes the type of those expressions containing residual channel operations.A well-formedness criterion is given which ensures that partial evaluation not only doesn‘t commit type errors but also doesn‘t change the sequence of channel operations.Before binding time analysis,channel analysis is used to analyze the communication relationship between send and receive processes.  相似文献   

6.
7.
Problem solving is an important skill for a computer scientist.Mindstorm based robots have been used previously,for teaching programming to computing and engineering students here we look at problem solving.These approaches focus upon the development of problem solving skills and not on learning a new programming language from the outset.Therefore,initially,any programming is kept simple with the minimum of commands,with 'objects' unknowingly used,as these are later introduced/learnt during the programming stage of the computing module.This work suggests that using LEGO robots within the teaching of problem solving and the resulting java GUI emulation has some benefits for the students when learning to program.  相似文献   

8.
Study on Parallel Computing   总被引:5,自引:0,他引:5       下载免费PDF全文
In this paper, we present a general survey on parallel computing. The main contents include parallel computer system which is the hardware platform of parallel computing, parallel algorithm which is the theoretical base of parallel computing, parallel programming which is the software support of parallel computing. After that, we also introduce some parallel applications and enabling technologies. We argue that parallel computing research should form an integrated methodology of "architecture algorithm programming application". Only in this way, parallel computing research becomes continuous development and more realistic.  相似文献   

9.
张乃孝  蒋凌霄 《计算机科学》2003,30(11):178-180
Based on the idea of domain-specific languages,a little language--ALL ts proposed as a response to some problems in teaching “Algorithms and Data Structures” . We expect that ALL will help decouple the learning of algorithms and data structures from the learning of programming languages. The definition and implementation of the main elements of ALL are introduced in this paper.  相似文献   

10.
In the process of seismic data interpretation,the extraction of a horizon or a fault is generally needed.In this paper we present a fast extraction method.First select some feature points interactively,then reconstruct the surface according to the selected feature points by using B-spline interpolation curve or surface.In order to solve the error-drawing problem appeared in the process of interactive rendering,which is caused by the change of sampling interval as the view point changes,we combine shear-warp and splatting algorithm to render the surface.The rendering of seismic data and specific surface in our work are achieved on GPU platform using CUDA programming language,which make it able to meet the requirements of real-time rendering.  相似文献   

11.
This paper introduces and discusses programming models for parallel processing and recent trends in the area of parallel programming. The paper discusses different parallel programming languages and tools that reflect various parallel computation models. These language differ in expressiveness, portability and performance. Software design and implementation largely varies by using different languages that make the programmer task easy or complex. We describe here the design goals and the main issues of parallel programming models and languages belonging to the following categories: shared-space based languages, message-based languages, parallel toolkits, data-parallel languages, parallel declarative languages, parallel object-oriented languages, and parallel composition-based languages. Tools and languages such as HPF, Linda, Java, OpenMP, PVM, MPI, Parallel C+ +, Sisal, Orca, Mentat, SkieCL, BSP and others are described in some detail. Their main features for design and implementation of high performance applications are discussed. Finally, we outline directions of research and development in the parallel programming area with a special attention to novel approaches based on high-level programming structures that make transparent to the users the architectural details of parallel computing machines.  相似文献   

12.
支持多种并行计算模型的面向对象框架研究   总被引:1,自引:0,他引:1  
为了支持并行程序设计,几乎所有的程序设计语言均通过提供并行与同步通信机制来支持某一高级并行计算模型,如Ada语言的任务与会合机制以及Java语言的线程和同步方法.显然,这样的程序设计语言仅能支持一种高级并行计算模型.尽管单模型的途径对某些应用来说简单而有效,但由于现实世界中的问题往往较为繁杂而难以完全用单一模型来解决.文章采用面向对象的语言机制和框架技术来解决此问题.通过分析现有各种语言中高级并行计算模型的共性,提出了若干新的面向对象语言机制.以此为基础,提出了并行面向对象框架的概念,并讨论用其表达和使用  相似文献   

13.
大规模并行应用程序的性能优化和并行化的关键瓶颈之一在于多核CPU中越来越深和越来越复杂的存储层次。文中系统地分析和总结了当前主要多核CPU和并行程序设计语言中的局部性设计方法,提出了两种局部性,即横向局部性和纵向局部性,从这两种局部性的视角深入分析了当前的主要并行程序设计语言的局部性设计机制,进一步总结对比了其优缺点,并指出了新一代并行程序设计语言应具有的特点,重点提出了新语言应同时综合考虑两种局部性支持的设计机制的研究观点。  相似文献   

14.
Formal properties of logic languages are largely studied; however, their impact on the practice of software design and programming is currently minimal. In this paper we survey some interesting representatives of the family of logic languages aiming at comparing the different capabilities they offer for designing and programming parallel systems. The logic languages Prolog, Aurora, Flat Concurrent Prolog, Parlog, GHC, and DeltaProlog were chosen, because a suitable set of relevant examples has been published, mostly by the language designers themselves. A number of sample programs is used to expose and compare the languages with respect to their object oriented programming capabilities for multiprocess coordination, interprocess communication, and resource management. Special attention is devoted also to metaprogramming as well, seen as a useful technique for specifying and building the operating environments of the languages themselves. The paper ends with a discussion on positive and negative features found comparing these languages, and indicates some guidelines to be followed in the design of new logic languages.  相似文献   

15.
Most concurrent logic programming languages hide the distribution of processes among physical processors from the programmer. For parallel applications based on heuristic search, however, it is important for the programmer to accurately control this distribution. With such applications, an inferior distribution strategy easily leads to enormous search overheads, thus decreasing speedup on parallel hardware.

To solve this problem, various language extensions for concurrent logic languages have been proposed, such as mapping notations and priorities. We present an alternative approach that does not require any new language features. Our solution is to use the replicated workers paradigm in a concurrent logic language (PARLOG). This paradigm has thus far mainly been used in parallel procedural languages, such as Linda and Orca. We show that it is just as useful for logic languages. We have implemented two parallel applications, the Traveling Salesman Problem and alpha-beta search, using this approach. Also, we have done some performance measurements of these programs on a multiprocessor. These experiments show that significant speedups can be obtained in this way.  相似文献   


16.
There are many paradigms being promoted and explored for programming parallel computers, including modified sequential languages, new imperative languages and applicative languages. SISAL is an applicative language which has been designed by a consortium of industrial and research organizations for the specification and execution of parallel programs. It allows programs to be written with little concern for the structure of the underlying machine, thus the programmer is free to explore different ways of expressing the parallelism. A major problem with applicative languages has been their poor efficiency at handling large data structures. To counter this problem SISAL includes some advanced memory management techniques for reducing the amount of data copying that occurs. In this paper we discuss the implementation of some image processing benchmarks in SISAL and C to evaluate the effectiveness of the memory management code. In general, the SISAL program was easier to code than the C (augmented with the PARMACS macros) because we were not concerned with the parallel implementation details. We found that the SISAL performance was in general comparable to C, and that it could be brought in line with an efficient parallel C implementation by some programmer-specified code transformations.  相似文献   

17.
Scientific computing is usually associated with compiled languages for maximum efficiency. However, in a typical application program, only a small part of the code is time-critical and requires the efficiency of a compiled language. It is often advantageous to use interpreted high-level languages for the remaining tasks, adopting a mixed-language approach. This will be demonstrated for Python, an interpreted object-oriented high-level language that is well suited for scientific computing. Particular attention is paid to high-level parallel programming using Python and the BSP model. We explain the basics of BSP and how it differs from other parallel programming tools like MPI. Thereafter we present an application of Python and BSP for solving a partial differential equation from computational science, utilizing high-level design of libraries and mixed-language (Python–C or Python–Fortran) programming.  相似文献   

18.
This paper describes some factors in, approaches to, and specific elements of, programming language history. It first lists a number of general factors and approaches which can be used to discuss the history of programming languages. After presenting a life cycle for programming language development, it provides numerous illustrations of programming language history and chronology from many of the viewpoints indicated earlier. There is a brief discussion of relevant literature and a section indicating some of the reasons for the vast proliferation of programming languages. Various charts and lists are included. This paper should be viewed as one approach to considering the history of programming languages, rather than as a history of programming languages per se.  相似文献   

19.
C语言是目前最流行的计算机语言之一,它兼有传统高级语言和汇编语言的优点,概念简洁,风格灵活,内涵相当丰富。要真正掌握该语言的精髓和理解其语义并非易事。本文对C语言的语义特点作了深入探讨,并给出了一些重要概念,最后,列举了若干在编程中的常见错误。  相似文献   

20.
Several parallel programming languages, libraries and environments have been developed to ease the task of writing programs for multiprocessors. Proponents of each approach often point out various language features that are designed to provide the programmer with a simple programming interface. However, virtually no data exist that quantitatively evaluate the relative ease of use of different parallel programming languages. The paper borrows techniques from the software engineering field to quantify the complexity of three predominant programming models: shared-memory, message-passing and high-performance Fortran. It is concluded that traditional software complexity metrics are effective indicators of the relative complexity of parallel programming languages. The impact of complexity on run-time performance is also discussed in the context of message-passing vs. HPF on an IBM SP2. © 1998 John Wiley & Sons, Ltd.  相似文献   

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

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