Programming Language Eulisp, Version 0.99

Total Page:16

File Type:pdf, Size:1020Kb

Programming Language Eulisp, Version 0.99 Programming Language Eulisp Version Programming Language EuLisp version Contents Page Foreword Intro duction Language Structure Scop e Conformance Denitions Error Denitions Compliance Conventions Layout and Typ ography MetaLanguage Naming Denitions Syntax Whitespace and Comments Ob jects Mo dules Directives Exp ort Directive Imp ort Directive Exp ose Directive Syntax Directive Denitions and Expressions Mo dule Pro cessing Mo dule Denition Ob jects System Dened Classes Single Inheritance Dening Classes Dening Generic Functions and Metho ds Sp ecializin g Metho ds Metho d Lo okup and Generic Dispatch Creating and Initializi ng Ob jects Accessing Slots Concurrency Threads Lo cks Conditions Condition Classes Condition Handling ii Programming Language EuLisp version Expressions Denitions and Control Forms Simple Expressions Functions creation denition and application Destructive Op erations Conditional Expressions Variable Binding and Sequences Events Quasiquotation Expressions Summary of Level Expressions and Denitions Syntax of Level dening forms Syntax of Level expressions Syntax of Level macros Annexes ALevel Mo dule Library A Characters A Collections A Comparison A Conversion A Copying A Double Precision Floats A Elementary Functions A Floating Point Numbers A Fixed Precision Integers AFormattedIO AIntegers ALists ANumbers AStreams AStrings ASymbols ATables AVectors ASyntax of Level ob jects B Programming Language EuLisp Level B Classes and Ob jects B Generic Functions B Metho ds B Ob ject Introsp ection B Class Introsp ection B Slot Introsp ection B Generic Function Introsp ection B Metho d Introsp ection B Class Initializa tion B Slot Description Initializa tion B Generic Function Initializ ation B Metho d Initializati on B Inheritance Proto col B Slot Access Proto col B Metho d Lo okup and Generic Dispatch B LowLevel Allo cation Primitives B Dynamic Binding B Exit Extensions B Summary of Level Expressions and Denitions B Syntax of Level dening forms B Syntax of Level expressions B Syntax of Level macros Indexes Class Index Condition Index ConstantIndex Function Index Macro Index Generic Function Index Metho d Index iii Programming Language EuLisp version General Index Figures Example of mo dule directives Example mo dule using expose Level initial class hierarchy Level initial condition class hierarchy Illustration of handler actions Example using letcc Interaction of unwindprotect with nonlo cal exits A Level numb er class hierarchy B Level class hierarchy B Initializati on Call Structure Tables Mo dules comprising eulisplevel Minimal character set Syntax of ob jects for reading and writing Mo dule syntax defstruct syntax defgeneric rewrite rules A Character Syntax A Summary of comparison functions A Floating Point Syntax A Integer Syntax A Pair and List Syntax A Examples of string literals A String Syntax A IdentierSymb ol Syntax A Vector Syntax iv COMMITTEE DRAFT Programming Language EuLisp version Programming Language EuLisp version In the b eginning the work of the EULISP group was sup p orted by the institutions or companies where the partici pants worked but in DG XI I I Information technol ogy directorate of the Commission of the Europ ean Com munities agreed to supp ort the continuation of the work ing group by funding meetings and providing places to meet It can honestly b e said that without this supp ort EULISP would not have reached its presentstate In ad dition the EULISP group is grateful for the supp ort of British Council in France Alliance programme British Council in Spain Acciones Integradas programme British Council in Germany Academic Research Collab oration pro gramme British Standards Institute Deutscher Akademis cher Austauschdienst DAAD Departament de Llenguat ges i Sistemes Informatics LSI Universitat Politecnica de Catalunya Fraunhofer Gesellschaft Institut fur Software Foreword und Systemtechnik Gesellschaft fur Mathematik und Daten verarb eitung GMD ILOG SA Insiders GmbH Institut The EULISP group rst met in Septemb er at IRCAM National de Recherche en Informatique et en Automatique in Paris to discuss the idea of a new dialect of Lisp which INRIA Institut de Recherche et de Co ordination Acous should b e less constrained by the past than Common Lisp tique Musique IRCAM Rank XeroxFrance Science and and less minimalis t than Scheme Subsequent meetings for Engineering Research Council UK Siemens AG University mulated the view of EULISP that was presented at the of Bath UniversityofTechnology Delft University of Edin ACM Conference on Lisp and Functional Programming held burgh Universitat Erlangen and UniversiteParis VI LITP at MIT Cambridge Massachusetts and at the Euro p ean Conference on Articial Intelligence ECAI held The following p eople in alphab etical order have con in Brighton Sussex Since then progress has not b een tributed in various ways to the evolution of the language steady but happ ening as various p eople had sucient time ejar Russell Bradford Harry Giusepp e Attardi Javier B and energy to develop part of the language Consequently Bretthauer Peter Broadb ery Christopher Burdorf Jerome although the vision of the language has in the most part Chailloux Thomas Christaller Je Dalton Klaus Daler b een shared over this p erio d only certain parts were turned Harley Davis David DeRoure John Fitch Richard Gabriel into physical descriptions and implementations For a nine Brigitte Glas Nicolas Graub e Dieter Kolb Jurgen Kopp month p erio d starting in January through the supp ort Antonio Moreno Eugen Neidl Pierre Parquier Keith Play of INRIA it b ecame p ossible to start writing the EULISP ford Willem van der Po el Christian Queinnec Enric Sesa denition Since then aairs have returned to their previ Herb ert Stoyan and Richard Tobin ous state but with the evolution of the implementation s of EULISP and the background of the foundations laid by the The editors of the EULISP denition wish particularly to ac INRIAsupp orted work there is convergence to a consistent knowledge the work of Harley Davis on the rst versions of and practical denition the description of the ob ject system The second version was largely the work of Harry Bretthauer with the assistance of The acknowledgments for this denition fall into three cate Jurgen Kopp Harley Davis and Keith Playford gories intellectual p ersonal and nancial Julian Padget japmathsbathacuk The ancestors of EULISP in alphab etical order are Common Scho ol of Mathematical Sciences Lisp I nterLISP LELISP LISPVM Scheme and University of Bath T Thus the authors of this rep ort are pleased to Bath Avon BA AY UK acknowledge b oth the authors of the manuals and denitions of the ab ove languages and the many who have dissected and extended those languages in individ ual pap ers The various Greg Nuyens nuyensilogcom pap ers on Standard ML and the draft rep ort on Haskell ILOG SA have also provided much useful input Avenue Gallieni Gentilly CEDEX FRANCE The writing of this rep ort has at various stages b een sup p orted by Bull SA Gesellschaft fur Mathematik und Daten verarb eitung GMD Sankt Augustin Ecole Polytechniqu e editors LIX ILOG SA Institut National de Recherche en Infor matique et en Automatique INRIA University of Bath and UniversiteParis VI LITP The authors gratefully ac knowledge this supp ort Many p eople from Europ ean Com munitycountries have attended and contributed to EULISP meetings since they started and the authors would liketo thank all those who have help ed in the development of the language Programming Language EuLisp version necessary But this is not the place for a detailed language comparison That can b e drawn from the rest of this text EULISP breaks with LISP tradition in describing all its typ es in fact classes in terms of an ob ject system This is called The EULISP Ob ject System or TELOS TELOS incorp orates elements of the Common Lisp Ob ject System CLOS Ob jVLisp Oaklisp MicroCeyx and MCS Language Structure The EULISP denition comprises the following items Intro duction Level comprises all the level functions macros EULISP is a dialect of Lisp and as suchowes much to the and sp ecial forms which is this text minus Annex B The great b o dy of work that has b een done on language design in ob ject system can b e extended by userdened structure the name of Lisp over the last thirtyyears The distinguish classes and generic functions ing features of EULISP are i the integration of the classical Lisp typ e system and the ob ject system into a single class Level extends level with the functions macros hierarchy ii the complementary abstraction facilities pro and sp ecial forms dened in Annex B The ob ject system vided by the class and the mo dule mechanism iii supp ort can b e extended by userdened classes and metaclasses for concurrent
Recommended publications
  • Equal Rights for Functional Objects Or, the More Things Change, The
    ACM OOPS Messenger 4,4 (Oct. 1993), 2-27. Equal Rights for Functional Objects1 or, The More Things Change, The More They Are the Same2 Henry G. Baker Nimble Computer Corporation 16231 Meadow Ridge Way, Encino, CA 91436 (818) 986-1436 (818) 986-1360 FAX August, October, 1990, October, 1991, and April, 1992 This work was supported in part by the U.S. Department of Energy Contract No. DE-AC03-88ER80663 We argue that intensional object identity in object-oriented programming languages and databases is best defined operationally by side-effect semantics. A corollary is that "functional" objects have extensional semantics. This model of object identity, which is analogous to the normal forms of relational algebra, provides cleaner semantics for the value-transmission operations and built-in primitive equality predicate of a programming language, and eliminates the confusion surrounding "call-by-value" and "call-by-reference" as well as the confusion of multiple equality predicates. Implementation issues are discussed, and this model is shown to have significant performance advantages in persistent, parallel, distributed and multilingual processing environments. This model also provides insight into the "type equivalence" problem of Algol-68, Pascal and Ada. 1. INTRODUCTION Parallel, distributed and persistent programming languages are leaving the laboratories for more wide-spread use. Due to the substantial differences between the semantics and implementations of these languages and traditional serial programming languages, however, some of the most basic notions of programming languages must be refined to allow efficient, portable implementations. In this paper, we are concerned with defining object identity in parallel, distributed and persistent systems in such a way that the intuitive semantics of serial implementations are transparently preserved.
    [Show full text]
  • The Evolution of Lisp
    1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp.
    [Show full text]
  • Balancing the Eulisp Metaobject Protocol
    Balancing the EuLisp Metaob ject Proto col x y x z Harry Bretthauer and Harley Davis and Jurgen Kopp and Keith Playford x German National Research Center for Computer Science GMD PO Box W Sankt Augustin FRG y ILOG SA avenue Gallieni Gentilly France z Department of Mathematical Sciences University of Bath Bath BA AY UK techniques which can b e used to solve them Op en questions Abstract and unsolved problems are presented to direct future work The challenge for the metaob ject proto col designer is to bal One of the main problems is to nd a b etter balance ance the conicting demands of eciency simplicity and b etween expressiveness and ease of use on the one hand extensibili ty It is imp ossible to know all desired extensions and eciency on the other in advance some of them will require greater functionality Since the authors of this pap er and other memb ers while others require greater eciency In addition the pro of the EuLisp committee have b een engaged in the design to col itself must b e suciently simple that it can b e fully and implementation of an ob ject system with a metaob ject do cumented and understo o d by those who need to use it proto col for EuLisp Padget and Nuyens intended This pap er presents a metaob ject proto col for EuLisp to correct some of the p erceived aws in CLOS to sim which provides expressiveness by a multileveled proto col plify it without losing any of its p ower and to provide the and achieves eciency by static semantics for predened means to more easily implement it eciently The current metaob
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria
    Department of Computer Science and Software Engineering Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Jiang Li Sleiman Rabah Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] Mingzhi Liu Yuanwei Lai Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] COMP 6411 - A Comparative studies of programming languages 1/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai This page was intentionally left blank COMP 6411 - A Comparative studies of programming languages 2/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai Abstract There are many programming languages in the world today.Each language has their advantage and disavantage. In this paper, we will discuss ten programming languages: C++, C#, Java, Groovy, JavaScript, PHP, Schalar, Scheme, Haskell and AspectJ. We summarize and compare these ten languages on ten different criterion. For example, Default more secure programming practices, Web applications development, OO-based abstraction and etc. At the end, we will give our conclusion that which languages are suitable and which are not for using in some cases. We will also provide evidence and our analysis on why some language are better than other or have advantages over the other on some criterion. 1 Introduction Since there are hundreds of programming languages existing nowadays, it is impossible and inefficient
    [Show full text]
  • Ccured Type-Safe Retrofitting of Legacy Code
    CCured Type-Safe Retrofitting of Legacy Code George C. Necula Scott McPeak Westley Weimer University of California, Berkeley {necula, smcpeak, weimer}@cs, berkeley, edu Abstract While in lhe 1970s sacrificing lype safely for flexibilily and perfbrmance mighl have been a sensible language design In lhis paper we propose a scheme lhai combines type in- choice, today lhere are more and more siiuaiions in which ference and run-time checking to make exisiing C programs type safety is jusi as imporiani as, if noi more importani type saI~. }V~ describe lhe CCured type sysiem, which ex- lhan, performance. Errors like array oui-of:bounds accesses lends lhat of C by separaiing poinier types according to lead boih lo painful debugging sessions chasing inadverieni lheir usage. This type sysiem allows boih poiniers whose memory updaies and lo malicious atiacks exploiiing buft>r usage can be verified siaiically to be type saI>, and poiniers overrun errors in security-criiical code. (Almost g0% of re- whose sai>ty musi be checked ai run lime. }V~ prove a type ceni CERT advisories resuli fi'om security violaiions of this soundness resuli and lhen we preseni a surprisingly simple kind [29].) Type safety is desirable for isolaiing program type inference algoriihm lhai is able lo infer lhe appropriaie componenis in a large or exiensible sysiem, wiihoui lhe loss poinier kinds for exisiing C programs. of performance of separaie address spaces. II is also valu- Our experience wiih lhe CCured sysiem shows lhai lhe able for inter-operaiion wiih sysiems wriiien in type-saf> inference is very eft~ciive for many C programs, as ii is able languages (such as type-saf> Java naiive meihods, for exam- io infer ihai most or all of the pointers are statically ver- pie).
    [Show full text]
  • The Embeddable Common Lisp
    ACM Lisp Pointers 8(1), 1995, 30-41 The Embeddable Common Lisp Giuseppe Attardi Dipartimento di Informatica, Universit`adi Pisa Corso Italia 40, I-56125 Pisa, Italy net: [email protected] Abstract The Embeddable Common Lisp is an implementation of Common Lisp designed for being embeddable within C based applications. ECL uses standard C calling conventions for Lisp compiled functions, which allows C programs to easily call Lisp functions and viceversa. No foreign function interface is required: data can be exchanged between C and Lisp with no need for conversion. ECL is based on a Common Runtime Support (CRS) which provides basic facilities for memory management, dynamic loading and dumping of binary images, support for multiple threads of execution. The CRS is built into a library that can be linked with the code of the application. ECL is modular: main modules are the program development tools (top level, debugger, trace, stepper), the compiler, and CLOS. A native implementation of CLOS is available in ECL: one can configure ECL with or without CLOS. A runtime version of ECL can be built with just the modules which are required by the application. 1 Introduction As applications become more elaborate, the facilities required to build them grow in number and sophistica- tion. Each facility is accessed through a specific package, quite complex itself, like in the cases of: modeling, simulation, graphics, hypertext facilities, data base management, numerical analysis, deductive capabilities, concurrent programming, heuristic search, symbolic manipulation, language analysis, special device control. Reusability is quite a significant issue: once a package has been developed, tested and debugged, it is un- desirable having to rewrite it in a different language just because the application is based in such other language.
    [Show full text]
  • Some Non-Standard Issues on Lisp Standardization
    Some Non-standard Issues on Lisp Standardization Takayasu IT0 * Taiichi YUASA Introduction Lisp was born about 25 years ago as an A1 language with a precise operational semantics. Since then many Lisp dialects have been proposed, implemented and used. In 1960's Lisp 1.5 was a kind of Lisp standard, although there were many Lisp 1.5 dialects which depend on 1/0 and computer systems. In 1970's various Lisp dialects were spawned to respond to the need of more powerful Lisp systems for A1 research and symbolic computation. Among them we know that Lisp 1.6, Interlisp and Maclisp had big influences in the development of Lisp; especially, Maclisp brought us various interesting successors, including Franzlisp, Scheme, Zet alisp and Common Lisp. Common Lisp [STEELE] may be taken as a result of standardization activities of Maclisp and its successors, and Scheme is one of the first steps to try to settle and resolve some syntactic and semantic incompatibilities in Maclisp families. Eulisp [PADGET] may be taken to be another attempt along with this line with greater ambition for Lisp standardization, employing the design philosophy of extensible languages based on "leveling of languages". Various design and standardization issues have been considered and examined in the course of designing Common Lisp and Eulisp. The current standardization activities in US and Europe are mainly placed on "clean-upn of Common Lisp and "refinement and development" of Eulisp, in addition to efforts of designing object-oriented features in Lisp systems. In a sense major (standard) issues in Lisp standardization have been considered in these efforts of clean-up of Common Lisp and design of Eulisp.
    [Show full text]
  • Programming Language Eulisp
    Programming Language Eulisp Version 0.99 Programming Language EuLisp, version 0.99 Contents Page Foreword :::::::::::::::::::::::::::::::::::::::::::::::::: 1 Introduction ::::::::::::::::::::::::::::::::::::::::::::::: 2 1 Language Structure :::::::::::::::::::::::::::::::::::::: 2 2 Scope :::::::::::::::::::::::::::::::::::::::::::::::::: 3 3 Conformance Definitions :::::::::::::::::::::::::::::::::: 3 4 Error Definitions :::::::::::::::::::::::::::::::::::::::: 3 5 Compliance ::::::::::::::::::::::::::::::::::::::::::::: 4 6 Conventions :::::::::::::::::::::::::::::::::::::::::::: 4 6.1 Layout and Typography ::::::::::::::::::::::::::::::::: 4 6.2 Meta-Language :::::::::::::::::::::::::::::::::::::::: 6 6.3 Naming ::::::::::::::::::::::::::::::::::::::::::::: 6 7 Definitions :::::::::::::::::::::::::::::::::::::::::::::: 6 8 Syntax ::::::::::::::::::::::::::::::::::::::::::::::::: 9 8.1 Whitespace and Comments ::::::::::::::::::::::::::::::: 9 8.2 Objects ::::::::::::::::::::::::::::::::::::::::::::: 9 9 Modules :::::::::::::::::::::::::::::::::::::::::::::::: 10 9.1 Directives :::::::::::::::::::::::::::::::::::::::::::: 10 9.2 Export Directive ::::::::::::::::::::::::::::::::::::::: 10 9.3 Import Directive ::::::::::::::::::::::::::::::::::::::: 10 9.4 Expose Directive :::::::::::::::::::::::::::::::::::::: 11 9.5 Syntax Directive ::::::::::::::::::::::::::::::::::::::: 11 9.6 Definitions and Expressions :::::::::::::::::::::::::::::: 11 9.7 Module Processing ::::::::::::::::::::::::::::::::::::: 12 9.8 Module Definition ::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Oaklisp: an Object-Oriented Scheme with First Class Types
    Oaklisp: an Object-Oriented Scheme with First Class Types Kevin J. l,ang and llarak A. Peaflmutter Department of Computer Science Carnegie-Mellon University Pittsburgh, PA 15213 Abstract several implications that are not immediately obvious. Because • The Scheme papers demonstrated that lisp could be made simpler function can be applied at a point distant in time and space from ilz and more expressive by elevating functions to the level of first class point of origin, it must be able to remember the bindings of any objects. Oaklisp shows that a message based language can derive variables that were visible when it was made. This additional similar benefits from having first class types. complexity is offset by the ability to write many previously primitive control structures at the user level and by the fact that the special Introduction mechanisms that lisp ordinarily uses for defining and applying Oaklisp is a message based, multiple inheritence dialect of lisp. functions can be dispensed with. Programs are written using lisp syntax, and traditional lisp data types In lisp, the car position of a function call is treated as the name of a coexist with a Smalltalk style class hierarchy. This paper assumes that function which is looked up in a special table and then applied to the the reader is familiar with one of the many object-oriented lisp dialects values obtained by evaluating the arguments of the call. In Scheme, the of this sort. and will therefore concentrate on the unique aspects of car of a call is an evaluated position. Although any expression can Oaklisp which are mostly due to the influence of Scheme.
    [Show full text]
  • Einführung in LISP
    Einführung in LISP Simon Lutz, Frank Preiswerk “Real Programmers don't write in LISP. Only idiots' programs contain more parenthesis than actual code.” “Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.” 04/19/06 Seminar 10 Programmiersprachen - Lisp/Scheme - Simon Lutz, Frank Preiswerk 1 Zeitlicher Überblick 1958: Lisp wurde von John McCarthy am MIT speziell für nicht-numerische Probleme designed und von Steve Russell auf einer IBM 704 Maschine implementiert. Der Name bedeutet “List Processing Language”. 1968: Erster Lisp Compiler geschrieben in Lisp von Tim Hart und Mike Levin. 1968-70: Implementation von SHRDLU mittels Lisp, berühmtes AI-System. 1970er Jahre: Performanz von bestehenden Lisp-Systemen wird zum Thema, es entstehen optimierte Lisp-Maschinen. Heute wieder verschwunden. 1980er – 1990er Jahre: Bemühungen für eine Vereinheitlichung der vielen bestehenden Lisp-Dialekte: Common Lisp entsteht. 1994: ANSI veröffentlicht Common Lisp Standard. Dies zu einem Zeitpunkt, als der Weltmarkt für Lisp viel kleiner war als in den früheren Zeiten. 04/19/06 Seminar 10 Programmiersprachen - Lisp/Scheme - Simon Lutz, Frank Preiswerk 2 Lisp heute Nach einem Rückgang in den 90er Jahren ist das Interesse seit 2000 wieder gestiegen, massgeblich im Rahmen von Open Source Implementationen von Common Lisp. 2004: Peter Seibel’s “Practical Common Lisp” ist für kurze Zeit an zweiter Stelle von Amazon’s populärsten Programmierbüchern. April 2006: Tiobe Software rankt Lisp auf Platz 14 der populärsten Programmiersprachen. Neue “Lisper” beschreiben die Sprache gerne als “eye-opening experience” und behaupten, in Lisp deutlich produktiver zu sein als in anderen Sprachen.
    [Show full text]
  • An Overview of Eulisp
    LISP AND SYMBOLIC COMPUTATION An International Journal c Kluwer Academic Publishers Manufactured in The Netherlands An overview of EuLisp JULIAN PADGET japmathsbathacuk University of Bath School of Mathematical Sciences Bath BA AY United Kingdom GREG NUYENS nuyensilogcom Ilog Inc Landings Drive Mountain View CA USA HARRY BRETTHAUER bretthauergmdde German National Research Centre for Computer Science GMD POBox W Sankt Augustin FRG Keywords Lisp mo dules concurrency ob jectoriented programming conditions re ection Abstract This pap er is an abstracted version of the EuLisp denition As such it emphasizes those parts of the language that we consider the most imp ortant or note worthy while we just mention without much detail the elements that are included for completeness This is reected in the structure of the pap er which describ es the mo dule scheme the ob ject system and supp ort for concurrent execution in the main part and consigns the ma jority of the datatyp es to an app endix Intro duction EuLisp is a dialect of Lisp and as such owes much to the great b o dy of work that has b een done on language design in the name of Lisp over the last thirty years The distinguishing features of EuLisp are i the integration of the classical Lisp typ e system and the ob ject system into a single class hierarchy ii the complementary abstraction facilities provided by the class and the mo dule mechanism iii supp ort for concurrent execution Here is a brief summary of the main features of the language Classes are rstclass ob jects The
    [Show full text]
  • New Model for VDT Associated Visual Comfort in Office Spaces
    Niloofar Moghbel New Model for VDT Associated Visual Comfort in Office Spaces Dissertation Department of Architecture Karlsruhe Institute of Technology (KIT) New Model for VDT Associated Visual Comfort in Office Spaces Zur Erlangung des akademischen Grades eines Doktor-Ingenieurs von der Fakultät für Architektur des Karlsruher Instituts für Technologie (KIT) genehmigte Dissertation von Niloofar Moghbel Tag der mündlichen Prüfung: 19. April 2012 Referent: Prof. Dipl.-Ing. Andreas Wagner, Karlsruhe Korreferent: Prof. Dr. Sc. nat. Christoph Schierz, TU Ilmenau Weiteres Mitglied: Prof. Dr. Ing. Rosemarie Wagner Vorsitzender: Prof. Dipl.-Ing. Matthias Pfeifer 2 Acknowledgements This thesis has been carried out during my tenure at the Fraunhofer Institute for Solar Energy Systems (ISE) in Freiburg, Germany. I am indebted to the Fraunhofer ISE for providing me with an excellent scientific environment, financial support and research facilities. I appreciate Prof. Weber, Dr. Henning, S. Herkel. T. Kuhn and J. Wienold for their support to realize and conduct this work. My Ph.D. thesis has been conducted within the framework of a DFG funded project (QUANTA). I acknowledge the QUANTA partners, Fraunhofer Institute for Solar Energy Systems (Freiburg) and department of Architecture at the Karlsruhe Institute of Technology (KIT). I want to thank Prof. Andreas Wagner for accepting me as a Ph.D. student at the department of Architecture of the Karlsruhe Institute of Technology (KIT), Germany and for supervising my Ph.D. thesis. Many thanks to Prof. Christoph Schierz (TU Ilmenau, D) for accepting to be the co-advisor of my thesis, for all his kind support and advice whilst conducting this research including performing the experimental procedure in person described in chapter 5 which provided valuable insight.
    [Show full text]