资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
CC+Erratic Fudgets: a semantic theory for an embedded coordination language?Science of Computer ProgrammingThe powerful abstraction mechanisms of functional programming languages provide the means to develop domain-specific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higher-order reusable programs) for an application area, and by constructing individual applications by combining and coordinating individual combinators. This paper is concerned with a successful example of such an embedded programming language, namely Fudgets, a library of combinators for building graphical user interfaces in the lazy functional language Haskell. The Fudget library has been used to build a number of substantial applications, including a web browser and a proof editor interface to a proof checker for constructive type theory. This paper develops a semantic theory for the non-deterministic stream processors that are at the heart of the Fudget concept. The interaction of two features of stream processors makes the development of such a semantic theory problematic:the sharing of computation provided by the lazy evaluation mechanism of the underlying host language, andthe addition of non-deterministic choice needed to handle the natural concurrency that reactive applications entail.We demonstrate that this combination of features in a higher-order functional language can be tamed to provide a tractable semantic theory and induction principles suitable for reasoning about contextual equivalence of Fudgets.MetaOCaml server pages: Web publishing as staged computation?Modern dynamic web services are really computer programs. Some parts of these programs run off-line, others run server-side on each request, and still others run within the browser. In other words, web publishing is staged computation, either for better performance, or because certain resources are available in one stage but not another. Unfortunately, the various web programming languages make it difficult to spread computation over more than one stage. This is a tremendous opportunity for multi-stage languages in general, and for MetaOCaml in particular.We present the design of MetaOCaml Server Pages. Unlike other languages in its genre, the embedded MetaOCaml code blocks may be annotated with staging information, so that the programmer may safely and precisely control which computation occurs in which stage. A prototype web server, written in OCaml, supports web sites with both static and dynamic content. We provide several sample programs and demonstrate the performance gains won using multi-stage programming.An embedded system for knowledge-based cost evaluation of molded parts?Knowledge-Based Systems In this paper, we present an embedded knowledge-base system and apply it to estimate the manufacturing cost of molded parts. This system is designed on a tiny single board computer, called the Gumstix?, which is an inexpensive and high-performance miniaturized platform. It consists of a knowledge-base, knowledge processing units and server service unit for user interactions, all of which are implemented on the Gumstix computer. A CAD server is provided for the interaction with commercial CAD software and all operations with users are performed via a web browser. This hardware and software structure features a realization of the Plug & Play concept and provides low-cost, low-power consumption, high-performance and high portability of complex engineering software. The system is demonstrated with cost estimation of molded parts. A knowledge set for the injection molding process is formalized in XML and a knowledge-base is constructed. The system is tested with examples, which illustrate the capability of our system for engineering applications.Article Outline1. Introduction2. Development of embedded knowledge-base system2.1. Knowledge representation2.1.1. Frame structure2.1.2. XML-based persistent knowledge description2.2. System features and structure2.2.1. System architecture2.2.2. Hardware components2.2.3. Software components2.2.3.1. Kernel2.2.3.2. XML parser2.2.3.3. HTTP server2.2.3.4. CAD server2.2.4. Knowledge-base and database implementation3. Illustrative example: cost estimation of molded parts3.1. Analysis of problem domain3.1.1. Process model3.1.2. Economics model3.2. Knowledge acquisition3.3. Knowledge-base construction3.4. Testing3.4.1. Analysis of the system3.4.2. Performance3.4.3. Test4. ConclusionsRewriting the Web with ChickenfootNo Code RequiredOn the desktop, an application can expect to control its user interface down to the last pixel, but on the World Wide Web, a content provider h
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号