Rapid Prototyping for Virtual Environments

Total Page:16

File Type:pdf, Size:1020Kb

Rapid Prototyping for Virtual Environments Old Dominion University ODU Digital Commons Electrical & Computer Engineering Theses & Dissertations Electrical & Computer Engineering Winter 2008 Rapid Prototyping for Virtual Environments Emre Baydogan Old Dominion University Follow this and additional works at: https://digitalcommons.odu.edu/ece_etds Part of the Computer Sciences Commons, and the Electrical and Computer Engineering Commons Recommended Citation Baydogan, Emre. "Rapid Prototyping for Virtual Environments" (2008). Doctor of Philosophy (PhD), Dissertation, Electrical & Computer Engineering, Old Dominion University, DOI: 10.25777/pb9g-mv96 https://digitalcommons.odu.edu/ece_etds/45 This Dissertation is brought to you for free and open access by the Electrical & Computer Engineering at ODU Digital Commons. It has been accepted for inclusion in Electrical & Computer Engineering Theses & Dissertations by an authorized administrator of ODU Digital Commons. For more information, please contact [email protected]. RAPID PROTOTYPING FOR VIRTUAL ENVIRONMENTS by Emre Baydogan B.S. June 1999, Marmara University, Turkey M.S. June 2001, Marmara University, Turkey A Dissertation Submitted to the Faculty of Old Dominion University in Partial Fulfillment of the Requirement for the Degree of DOCTOR OF PHILOSOPHY ELECTRICAL AND COMPUTER ENGINEERING OLD DOMINION UNIVERSITY December 2008 Lee A. Belfore, H (Director) K. Vijayan Asari Jesmca R. Crouch ABSTRACT RAPID PROTOTYPING FOR VIRTUAL ENVIRONMENTS Emre Baydogan Old Dominion University, 2008 Director: Dr. Lee A. Belfore, II Development of Virtual Environment (VE) applications is challenging where appli­ cation developers are required to have expertise in the target VE technologies along with the problem domain expertise. New VE technologies impose a significant learn­ ing curve to even the most experienced VE developer. The proposed solution relies on synthesis to automate the migration of a VE application to a new unfamiliar VE platform/technology. To solve the problem, the Common Scene Definition Frame­ work (CSDF) is developed, that serves as a superset/model representation of the target virtual world. Input modules are developed to populate the framework with the capabilities of the virtual world imported from VRML 2.0 and X3D formats. The synthesis capability is built into the framework to synthesize the virtual world into a subset of VRML 2.0, VRML 1.0, X3D, Java3D, JavaFX, JavaME, and OpenGL technologies, which may reside on different platforms. Interfaces are designed to keep the framework extensible to different and new VE formats/technologies. The frame­ work demonstrated the ability to quickly synthesize a working prototype of the input virtual environment in different VE formats. IV To My Family V ACKNOWLEDGMENTS I would like to acknowledge and extend my heartfelt gratitude to my advisor, Dr. Lee A. Belfore II, for his support and encouragement, which has made the completion of this dissertation possible. I would also like to thank Dr. K. Vijayan Asari, Dr. Jessica R. Crouch, and Dr. Frederic D. McKenzie for serving on my dissertation committee and for their constructive comments and feedback. My sincere gratitude also goes to Dr. M. Borahan Turner, who advised me during my Master's years at Marmara University, and who encouraged me to start my PhD education endeavor in the United States. This project was started together with my colleague, Prabhu Krishnan. Many thanks go to him for helping me build a strong foundation on which to add my research ideas. I would also like to thank my parents, my brothers, and my sister, who have always helped me ascend during difficult times, by supporting me morally and financially. My appreciation also goes to my good friends, Catalina, Hector, Marija, Ulas, Keremcan, and Saurav, who kept me true to who I am and who offered their valuable time for moral support and discussions. VI TABLE OF CONTENTS Page List of Tables ix List of Figures xi CHAPTER I Introduction 1 1.1 Current Frameworks 1 1.1.1 VR Juggler 2 1.1.2 DIVERSE 3 1.1.3 INTML 3 1.1.4 Unicron CVE 4 1.1.5 ALICE: Rapid Prototyping for Virtual Reality 5 1.2 Methodology: Rapid Prototyping 7 1.3 Problem Statement 8 1.4 Pros and Cons of Present Frameworks and CSDF 10 II Background 12 11.1 3DVEs 12 II.1.1 Domains 13 11.2 Prototyping 16 11.3 Technologies 18 11.3.1 VRML 19 11.3.2 X3D 23 11.3.3 Java3D 24 11.3.4 JavaFX . 31 11.3.5 M3G (Mobile 3D Graphics API) 33 11.3.6 JavaME (Java Platform, Micro Edition) 34 11.3.7 OpenGL (Open Graphics Library) 35 11.3.8 DirectX - Direct3D 37 11.3.9 Virtools 40 11.3.10 TouchDesigner 40 11.4 Platforms 42 11.4.1 Microsoft Windows PC 42 11.4.2 Unix-like PC(Linux & Mac OS) 43 11.4.3 Portable Devices 43 vii II.4.4 Immersive Devices 44 II.5 Graphics Processing (Rendering) 44 11.5.1 Immediate Mode Rendering 46 11.5.2 Retained Mode Rendering 47 III Theory 50 111.1 Rapid Prototyping 50 111.2 Classification of VE Capabilities 52 111.2.1 Geometry/ Appearance 52 111.2.2 Behaviors 52 111.2.3 Scripting/Custom Coding 53 111.3 CSDF 53 111.3.1 Framework 54 111.3.2 Modules 56 111.3.3 Analysis (Parsing) from Technologies 56 111.3.4 Synthesis to Technologies/Platforms 57 111.3.5 Authoring 59 IV Reference Implementation 60 IV. 1 Software for Implementation and Testing 60 IV.1.1 Java 60 IV.1.2 CSDF and Proprietary Platforms 63 IV.2 Modules 63 IV.2.1 CSDF Core 64 IV.2.2 Analysis 65 IV.2.3 Synthesis 76 IV.2.4 Authoring 78 IV.2.5 Current Implementation status 78 V Applications 82 V.l A Simple VE 82 V.l.l VRML Synthesis 83 V.1.2 X3D Synthesis 85 V.l.3 Java3D Synthesis 86 V.1.4 OpenGL/GLUT Synthesis 87 V.l.5 JavaFX Synthesis for Portable Device 90 V.2 VOR 90 V.2.1 Virtools Analysis 91 VI Conclusions 94 viii VI.l Future Work 95 BIBLIOGRAPHY 96 APPENDICES VITA 108 ix LIST OF TABLES Page I Features and Differences among Frameworks 11 II Node Types and Nodes in VRML 1.0 19 III X3D Supported Features 26 IV DirectX Components 39 V Differences between C++ and Java 62 VI Analysis and Synthesis Support for CSDF 79 X LIST OF FIGURES Page 1 Layered architecture of the Juggler Suite 2 2 DIVERSE sample code 3 3 InTml Architecture 4 4 Unicron CVE Architecture 5 5 ALICE hierarchy sample 6 6 ALICE sample 6 7 Prototyping Process 16 8 VRML sample code 20 9 VRML Sample View in Cortona Player 21 10 Modular block of X3D baseline profiles 25 11 X3D sample code 25 12 X3D Sample View in Xj3D Browser 27 13 Java3D Sample Scene Graph Diagram 29 14 Java3D Sample Code 30 15 Java3D Sample View 31 16 JavaFX sample script 32 17 M3G code piece (Retained Mode) 34 18 OpenGL Graphics Pipeline Process 37 19 OpenGL sample code displaying a solid cube, using GLUT 38 20 OpenGL (GLUT) sample: Color Cube 39 21 Virtools development environment (Virtual Chainsaw) 41 22 TouchDesigner development environment (Wound Debridement Simu­ lator) 41 xi 23 CSDF Concept Diagram 51 24 CSDF Classes 64 25 CSDFGeometry interface and a few classes that implement the interface. 65 26 CSDFSynthesis interface and a few classes that implement the interface. 66 27 Analysis components of CSDF 66 28 Phases of VRML Parser 67 29 A small portion of the context-free grammar (CFG) for VRML language. 69 30 Example of Semantic action in the VRML parser 70 31 Semantic action for node name handling and type checking (VRML Parsing) 71 32 Semantic action for node attribute handling and type checking (VRML Parsing) 73 33 X3D parser embedded in constructor of CSDF nodes (recursive con­ struction of CSDF classes) 75 34 Virtools to TouchDesigner Analysis/Synthesis 76 35 Synthesis components of CSDF 77 36 VRML 2.0 implementation of the simple VE 84 37 VRML 2.0 implementation of the simple VE in Cortona plug-in for Internet Explorer 85 38 X3D view of the synthesized VE in Xj3D Browser 86 39 Java3D view of the synthesized environment 88 40 OpenGL view of the synthesized VE 89 41 JavaFX view of the synthesized VE 90 42 Virtual Operating Room in Virtools VR Player (Four Projections). 92 43 Virtual Operating Room in Virtools Development Environment. ... 93 1 CHAPTER I INTRODUCTION Virtual environment (VE) applications are used in a wide variety of areas and can be deployed on many different platforms. A VE can be defined simply as "an envi­ ronment that is simulated by a computer which includes aspects of reality." Since most of the VEs provide primarily visual experiences, much of the work is done in the improvement or construction of visual environments. Applications of VEs have been employed in many domains (e.g., medicine, military and training), and have greatly benefited from the continous improvements in computer systems, processing power, and network bandwidth. New directions and interesting projects are now available to be explored by researchers and workers in the area of VEs, and different types of VE development technologies and platforms have been created to meet the great demand for VE in many areas. 1.1 CURRENT FRAMEWORKS There are currently several tools and environments that serve as development and prototyping platforms to VE technologies. VR Juggler, DIVERSE (Device Indepen­ dent Virtual Environments Reconfigurable, Scalable, Extensible), InTml (Interaction Techniques Markup Language), Unicron CVE (Collaborative 3D Virtual Environ­ ments) and ALICE (Rapid Prototyping for Virtual Reality) are some examples of The reference model for this work is IEEE Transactions on Visualization and Computer Graphics.
Recommended publications
  • Rich Internet Applications
    Rich Internet Applications (RIAs) A Comparison Between Adobe Flex, JavaFX and Microsoft Silverlight Master of Science Thesis in the Programme Software Engineering and Technology CARL-DAVID GRANBÄCK Department of Computer Science and Engineering CHALMERS UNIVERSITY OF TECHNOLOGY UNIVERSITY OF GOTHENBURG Göteborg, Sweden, October 2009 The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Rich Internet Applications (RIAs) A Comparison Between Adobe Flex, JavaFX and Microsoft Silverlight CARL-DAVID GRANBÄCK © CARL-DAVID GRANBÄCK, October 2009. Examiner: BJÖRN VON SYDOW Department of Computer Science and Engineering Chalmers University of Technology SE-412 96 Göteborg Sweden Telephone + 46 (0)31-772 1000 Department of Computer Science and Engineering Göteborg, Sweden, October 2009 Abstract This Master's thesis report describes and compares the three Rich Internet Application !RIA" frameworks Adobe Flex, JavaFX and Microsoft Silverlight.
    [Show full text]
  • Tessellation and Rendering of Trimmed NURBS Models in Scene Graph Systems
    Tessellation and rendering of trimmed NURBS models in scene graph systems Dissertation zur Erlangung des Doktorgrades (Dr. rer. nat.) der Mathematisch-Naturwissenschaftlichen Fakultat¨ der Rheinischen Friedrich-Wilhelms-Universitat¨ Bonn vorgelegt von Dipl.-Inform. Akos´ Balazs´ aus Budapest/Ungarn Munchen,¨ April 2008 Universitat¨ Bonn, Institut fur¨ Informatik II Romerstraße¨ 164, 53117 Bonn Angefertigt mit Genehmigung der Mathematisch-Naturwissenschaftlichen Fakultat¨ der Rheinischen Friedrich-Wilhelms Universitat¨ Bonn. Diese Dissertation ist auf dem Hochschulschriftenserver der ULB Bonn http://hss.ulb.uni-bonn.de/diss online elektronisch publiziert. Dekan: Prof. Dr. Armin B. Cremers 1. Referent: Prof. Dr. Reinhard Klein 2. Referent: Prof. Dr. Andreas Weber Tag der Promotion: 25.09.2008 Erscheinungsjahr: 2008 I To the memory of my father To my parents, for making all of this possible. II III Acknowledgements “Standing on the shoulders of giants” - Isaac Newton once wrote, and this sentence describes how I feel about the support many people have given me during the writing of this thesis. Acknowledging their support here is beyond doubt not enough to express my sincere appreciation for their help, yet, I hope they know what their backing has meant to me. First and foremost, I must thank my advisor Prof. Dr. Reinhard Klein, whose inspi- ration, patience and guidance made writing this thesis possible. His occasional nudges were also necessary to keep me on the right track and for this I cannot be grateful enough. I would like to thank
    [Show full text]
  • Opengl Shading Languag 2Nd Edition (Orange Book)
    OpenGL® Shading Language, Second Edition By Randi J. Rost ............................................... Publisher: Addison Wesley Professional Pub Date: January 25, 2006 Print ISBN-10: 0-321-33489-2 Print ISBN-13: 978-0-321-33489-3 Pages: 800 Table of Contents | Index "As the 'Red Book' is known to be the gold standard for OpenGL, the 'Orange Book' is considered to be the gold standard for the OpenGL Shading Language. With Randi's extensive knowledge of OpenGL and GLSL, you can be assured you will be learning from a graphics industry veteran. Within the pages of the second edition you can find topics from beginning shader development to advanced topics such as the spherical harmonic lighting model and more." David Tommeraasen, CEO/Programmer, Plasma Software "This will be the definitive guide for OpenGL shaders; no other book goes into this detail. Rost has done an excellent job at setting the stage for shader development, what the purpose is, how to do it, and how it all fits together. The book includes great examples and details, and good additional coverage of 2.0 changes!" Jeffery Galinovsky, Director of Emerging Market Platform Development, Intel Corporation "The coverage in this new edition of the book is pitched just right to help many new shader- writers get started, but with enough deep information for the 'old hands.'" Marc Olano, Assistant Professor, University of Maryland "This is a really great book on GLSLwell written and organized, very accessible, and with good real-world examples and sample code. The topics flow naturally and easily, explanatory code fragments are inserted in very logical places to illustrate concepts, and all in all, this book makes an excellent tutorial as well as a reference." John Carey, Chief Technology Officer, C.O.R.E.
    [Show full text]
  • Javafx in Action by Simon Morris
    Covers JavaFX v1.2 IN ACTION Simon Morris SAMPLE CHAPTER MANNING JavaFX in Action by Simon Morris Chapter 1 Copyright 2010 Manning Publications brief contents 1 ■ Welcome to the future: introducing JavaFX 1 2 ■ JavaFX Script data and variables 15 3 ■ JavaFX Scriptcode and structure 46 4 ■ Swing by numbers 79 5 ■ Behind the scene graph 106 6 ■ Moving pictures 132 7 ■ Controls,charts, and storage 165 8 ■ Web services with style 202 9 ■ From app to applet 230 10 ■ Clever graphics and smart phones 270 11 ■ Best of both worlds: using JavaFX from Java 300 appendix A ■ Getting started 315 appendix B ■ JavaFX Script: a quick reference 323 appendix C ■ Not familiar with Java? 343 appendix D ■ JavaFX and the Java platform 350 vii Welcome to the future: introducing JavaFX This chapter covers ■ Reviewing the history of the internet-based application ■ Asking what promise DSLs hold for UIs ■ Looking at JavaFX Script examples ■ Comparing JavaFX to its main rivals “If the only tool you have is a hammer, you tend to see every problem as a nail,” American psychologist Abraham Maslow once observed. Language advocacy is a popular pastime with many programmers, but what many fail to realize is that programming languages are like tools: each is good at some things and next to useless at others. Java, inspired as it was by prior art like C and Smalltalk, sports a solid general-purpose syntax that gets the job done with the minimum of fuss in the majority of cases. Unfortunately, there will always be those areas that, by their very nature, demand something a little more specialized.
    [Show full text]
  • Java and C I CSE 351 Autumn 2016
    L26: JVM CSE351, Spring 2018 Java Virtual Machine CSE 351 Spring 2018 Model of a Computer “Showing the Weather” Pencil and Crayon on Paper Matai Feldacker-Grossman, Age 4 May 22, 2018 L26: JVM CSE351, Spring 2018 Roadmap C: Java: Memory & data Integers & floats car *c = malloc(sizeof(car)); Car c = new Car(); x86 assembly c->miles = 100; c.setMiles(100); c->gals = 17; c.setGals(17); Procedures & stacks float mpg = get_mpg(c); float mpg = Executables free(c); c.getMPG(); Arrays & structs Memory & caches Assembly get_mpg: Processes language: pushq %rbp Virtual memory movq %rsp, %rbp ... Memory allocation popq %rbp Java vs. C ret OS: Machine 0111010000011000 code: 100011010000010000000010 1000100111000010 110000011111101000011111 Computer system: 2 L26: JVM CSE351, Spring 2018 Implementing Programming Languages Many choices in how to implement programming models We’ve talked about compilation, can also interpret Interpreting languages has a long history . Lisp, an early programming language, was interpreted Interpreters are still in common use: . Python, Javascript, Ruby, Matlab, PHP, Perl, … Interpreter Your source code implementation Your source code Binary executable Interpreter binary Hardware Hardware 3 L26: JVM CSE351, Spring 2018 An Interpreter is a Program Execute (something close to) the source code directly Simpler/no compiler – less translation More transparent to debug – less translation Easier to run on different architectures – runs in a simulated environment that exists only inside the interpreter process . Just port the interpreter (program), not the program-intepreted Slower and harder to optimize 4 L26: JVM CSE351, Spring 2018 Interpreter vs. Compiler An aspect of a language implementation . A language can have multiple implementations . Some might be compilers and other interpreters “Compiled languages” vs.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria Revision 1.0
    Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Revision 1.0 Rana Naim∗ Mohammad Fahim Nizam† Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Sheetal Hanamasagar‡ Jalal Noureddine§ Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Marinela Miladinova¶ Concordia University Montreal, Quebec, Canada [email protected] Abstract This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following criteria: secure programming practices, web application development, web service composition, OOP-based abstractions, reflection, aspect orientation, functional programming, declarative programming, batch scripting, and UI prototyping. We study these languages in the context of the above mentioned criteria and the level of support they provide for each one of them. Keywords: programming languages, programming paradigms, language features, language design and implementation 1 Introduction Choosing the best language that would satisfy all requirements for the given problem domain can be a difficult task. Some languages are better suited for specific applications than others. In order to select the proper one for the specific problem domain, one has to know what features it provides to support the requirements. Different languages support different paradigms, provide different abstractions, and have different levels of expressive power. Some are better suited to express algorithms and others are targeting the non-technical users. The question is then what is the best tool for a particular problem.
    [Show full text]
  • Java FX and Java SE 6 Update N
    Java FX and Java SE 6 Update N Raghavan “Rags” N. Srinivas CTO, Technology Evangelism Sun Microsystems Inc. 1 Agenda • State of Java • Java FX • Java SE 6 update N • Future 2 How Much Java Technology Is Out There? • >91% of all PCs run Java platform* • ~77% of all Java technology-enabled PCs run Sun’s Java Platform, Standard Edition (Java SE platform)** • Distribution through PC OEMs > Nine of the top ten PC OEMs ship the Sun JRE software > Representing >60% of all shipped PCs > 58 white box vendors have signed JRE software redistribution agreements • Download/installs > ~44m installations / month for the last six months on Windows > >50M in Jan, Feb, April, 2007 * Omniture, April 2007 **Mapsolute/Map24.com, April 2007 3 Completed Java SE Platform Downloads Windows numbers only 55,000,000 50,000,000 45,000,000 40,000,000 35,000,000 30,000,000 25,000,000 20,000,000 15,000,000 10,000,000 5,000,000 0 1/2003 1/2004 1/2005 1/2006 1/2007 4 Agenda • State of Java • Java FX • Java SE 6 update N • Future 5 Update N and JavaFX Java Comes Home to the Consumer 6 JavaFX 7 JavaFX Features • Java FX Script • Scene graph • Media • HTML • Multiple Device 8 J a v a F X S c r i p t 9 JavaFX Script • Language > Simple data binding > Fast prototyping > Declarative GUIs and graphics > Easily programmed animations • Compiler > Interpreter (now): okay for demos > Compiler (soon): necessary for real applications 10 The Java GUI Quagmire • Java Swing and 2D APIs are very powerful and yet > Why does it take a long time to write GUI programs? > How can we avoid the
    [Show full text]
  • Desktop Java™ Technology
    Desktop Java™ Technology Thorsten Laux Chet Haase Sun Microsystems, Inc. TS-3160 2007 JavaOneSM Conference | Session TS-3160 | Goal Where We Are Where We’re Going 2007 JavaOneSM Conference | Session TS-3160 | 2 Agenda State of the Desktop World Where We Are Going Consumer JRE Release Future Platform Features 2007 JavaOneSM Conference | Session TS-3160 | 3 Agenda State of the Desktop World Where We Are Going Consumer JRE Release Future Platform Features 2007 JavaOneSM Conference | Session TS-3160 | 4 How Much Java Technology Is Out There? ● > 91% of all PCs run Java platform* ● ~ 77% of all Java technology-enabled PCs run Sun’s Java Platform, Standard Edition (Java SE platform)** ● Distribution through PC OEMs ● Nine of the top ten PC OEMs ship the JRE software ● Representing > 60% of all shipped PCs ● 58 white box vendors have signed JRE software redistribution agreements ● Download/installs ● ~ 44m installations/month for the last six months on Windows ● > 50M in January, February, April, 2007 * Omniture, April 2007 **Mapsolute/Map24.com, April 2007 2007 JavaOneSM Conference | Session TS-3160 | 5 Completed Java SE Platform Downloads Windows numbers only 55,000,000 50,000,000 45,000,000 40,000,000 35,000,000 30,000,000 25,000,000 20,000,000 15,000,000 10,000,000 5,000,000 0 1/2003 1/2004 1/2005 1/2006 1/2007 2007 JavaOneSM Conference | Session TS-3160 | 6 Where Does the Time Go? Evans Data Survey: Fall 2006 45 40 35 30 Desktop 25 Server Mobile 20 Others 15 10 5 0 Percentage of Java Development Time Spent Spring 05 Fall 05 Spring 06 Fall
    [Show full text]
  • A Performance Tale
    A Performance Tale The evolution of binding in JavaFX Robert Field Brian Goetz Sun Microsystems, Inc. Overview • This talk will chronicle our ongoing work on making JavaFX Script not only powerful and fun but fast > We'll focus specifically on one feature: binding > This is a work in progress... Sun Microsystems, Inc. 2 VM vs Language • The VM provides certain base services > Compiler is free to decide which to expose and which not > Compiler can build additional features atop these – we call these language fictions > Some language fictions have no runtime cost > Checked exceptions > Others are hard to implement efficiently > Dynamic dispatch in JRuby > Data binding in JavaFX Sun Microsystems, Inc. 3 VM vs Language JavaFX language fictions Java language Data binding fictions On-replace Triggers JVM Overloading Overloading features Enums Function values Generics Var init override Exceptions Exceptions+checked Exceptions Constructors Constructors+chaining Constructors Primitive types+ops Primitive types+ops Primitive types+ops Interfaces Interfaces Mixins Access control Access control New access control Object model Object model Object model Memory model Memory model Memory model Dynamic linking Dynamic linking Dynamic linking GC GC GC Sun Microsystems, Inc. 4 Typical implementation evolution • Most languages follow a fairly standard evolution > For simple things like 32-bit arithmetic, let the VM do it > For most language fictions, implement in a runtime library Sun Microsystems, Inc. 5 Language Fictions in Runtime • Implement fictions in a runtime library (usually written in Java) > Have compiler emit calls to the runtime > Fast time-to-implementation > Flexible > Testable • Problem with runtime-centric approach can be performance > People can try out the cool features > And then notice how slow they are > Go from fan mail to hate mail in almost no time..
    [Show full text]
  • Co-Development, Delivery and Structural Analysis of a Computer Game Course
    Otto-von-Guericke-University Magdeburg University of Otago, Dunedin Department of Computer Science Research Report Co-Development, Delivery and Structural Analysis of a Computer Game Course Lennart Nacke Supervisors: Professor Dr Maic Masuch (Otto-von-Guericke-University Magdeburg), Mr Simon McCallum (University of Otago) Nacke, Lennart: Co-Development, Delivery and Structural Analysis of a Computer Game Course Research Report, Otto-von-Guericke-University Magdeburg, June 2004. i Internship Task Computer game design is still a young, growing subject in computer science education. Due to the industry’s need for qualified personnel, who appreciate the complexities of computer game design, many new academic courses are being created. As computer game design is a new topic there is still much research required into ped- agogy and delivery. The focus of this internship is to assist in the development and delivery of an undergraduate course on computer game design. There are three phases to this internship: 1. Development This includes the research on suitable game engines, taking into account the limited budget available for the course. It also includes • the analysis of proposed lecture topics corresponding to the IGDA Curriculum Framework [IGD03] • research and study on software engineering topics, such as version control A systems like CVS and documentation with LTEX 2. Delivery Including assistance in lectures for the course as well as tutoring. To further help the students we also include: • an introduction to interactive fiction using the Inform environment and con- struction of the first assignment • the creation and maintenance of an interactive website accompanying the course, which includes a student feedback system, a forum and a maintenance system for lecture topics and textbook errata 3.
    [Show full text]
  • Deltek Costpoint MES 2.0 LA Browser Installation Guide
    Deltek Costpoint® Manufacturing Execution 2.0 Browser Installation Guide December 15, 2017 While Deltek has attempted to verify that the information in this document is accurate and complete, some typographical or technical errors may exist. The recipient of this document is solely responsible for all decisions relating to or use of the information provided herein. The information contained in this publication is effective as of the publication date below and is subject to change without notice. This publication contains proprietary information that is protected by copyright. All rights are reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, or translated into another language, without the prior written consent of Deltek, Inc. This edition published December 2017. © Deltek, Inc. Deltek’s software is also protected by copyright law and constitutes valuable confidential and proprietary information of Deltek, Inc. and its licensors. The Deltek software, and all related documentation, is provided for use only in accordance with the terms of the license agreement. Unauthorized reproduction or distribution of the program or any portion thereof could result in severe civil or criminal penalties. All trademarks are the property of their respective owners. Browser Installation Guide ii Contents About this Manual ............................................................................................................................ 1 Scope .........................................................................................................................................
    [Show full text]
  • The Λ Abroad a Functional Approach to Software Components
    The ¸ Abroad A Functional Approach To Software Components Een functionele benadering van software componenten (met een samenvatting in het Nederlands) Proefschrift ter verkrijging van de graad van doctor aan de Universiteit Utrecht op gezag van de Rector Magni¯cus, Prof. dr W.H. Gispen, ingevolge het besluit van het College voor Promoties in het openbaar te verdedigen op dinsdag 4 november 2003 des middags te 12.45 uur door Daniel Johannes Pieter Leijen geboren op 7 Juli 1973, te Alkmaar promotor: Prof. dr S.D. Swierstra, Universiteit Utrecht. co-promotor: dr H.J.M. Meijer, Microsoft Research. The work in this thesis has been carried out under the auspices of the research school IPA (Institute for Programming research and Algorithmics), and has been ¯nanced by Ordina. Printed by Febodruk 2003. Cover illustration shows the heavily cratered surface of the planet Mercury, photographed by the mariner 10. ISBN 90-9017528-8 Contents Dankwoord ix 1 Overview 1 2 H/Direct: a binary language interface for Haskell 5 2.1 Introduction ................................ 5 2.2 Background ................................ 6 2.2.1 Using the host or foreign language ............... 7 2.2.2 Using an IDL ........................... 8 2.2.3 Overview ............................. 9 2.3 The Foreign Function Interface ..................... 12 2.3.1 Foreign static import and export ................ 12 2.3.2 Variations on the theme ..................... 13 2.3.3 Stable pointers and foreign objects ............... 14 2.3.4 Dynamic import ......................... 15 2.3.5 Dynamic export ......................... 15 2.3.6 Implementing dynamic export .................. 18 2.3.7 Related work ........................... 19 iv Contents 2.4 Translating IDL to Haskell ......................
    [Show full text]