Post-Javaism

Total Page:16

File Type:pdf, Size:1020Kb

Post-Javaism Peer to Peer Editor: Li Gong • [email protected] Post-Javaism Andrew P.Black • OGI School of Science & Engineering, Oregon Health & Science University he Java programming language ogy — that one period or movement fol- Modernism in has been a phenomenal success. lows another in time — but also a Programming Language Design TIt’s a significant improvement change in direction or philosophy. Post- It is Smalltalk, not Java, that provides over C and C++, and its libraries for modernism, for example, is a reaction an analog to architectural modernism. network and GUI programming have against modernism’s established princi- Smalltalk was a sparse, simple language introduced large numbers of program- ples. Similarly, the call for participation with few unnecessary features; its form mers to previously esoteric disciplines. to the ECOOP workshop effectively was unconventional but functional. But Java isn’t the end of programming defines post-Javaism as a reaction continued on p. 93 language history. What language will against Java’s established principles. we use 10 or 20 years from now? In architecture, the modernists used Although good news for most pro- scientific principles to create stark, grammers, Java has been a mixed functional designs that flouted con- blessing for programming language vention. Architectural modernism’s researchers. On the positive side, Java defining moment was the 1958 con- has demonstrated that a quality lan- struction of the Seagram building in guage can make complex program- New York (see Figure 1). With its func- ming tasks much simpler: it shows that tional, clean, and simple lines, it language design is still a relevant dis- quickly became one of the US’s most cipline. On the negative side, Java’s architecturally influential office build- success has made obtaining support for ings. With its ethos captured in phras- research into new languages — and es that have passed into our cultural publishing the results of that research heritage (think “less is more” and 2004 Andrew P.Black. Used by permission. — more difficult. The effect is that “form follows function”), modernism Figure 1. Seagram building, New York. object-oriented language research became the dominant style of the Modernism: less is more. focuses on fixing Java’s trouble spots 1960s and 1970s. or extending it to provide missing In Complexity and Contradiction in functionality. These are not bad activi- Architecture (1966), Robert Venturi ties, but they are necessarily limited to responded with a definition of post- Java-like languages: statically typed, modernism. He celebrated the rich mix class-based, single-inheritance lan- of historic styles found in great cities guages with a weak notion of interface. such as Rome and observed that many The recent European Conference for people find this complex, sometimes Object-Oriented Programming (ECOOP) contradictory, mix more comfortable included the Workshop on Object-Ori- than stark minimalism. That said, ented Language Engineering for the postmodernism is not a return to clas- Post-Java Era at which researchers sical architecture; rather, it takes clas- gathered to examine languages that sical elements and uses them in incon- diverge from this model. gruous ways. The AT&T building in New York, which incorporates classi- 2004 Andrew P.Black. Used by permission. What is Post-Javaism? cal arcades and a pediment reminis- Figure 2. AT&T building (now Sony The prefix “post” is used in art and cent of a Chippendale highboy, is a Plaza). Postmodernism: using classical architecture to indicate not just chronol- defining example (see Figure 2). elements in inconguous ways. 96 JANUARY • FEBRUARY 2004 Published by the IEEE Computer Society 1089-7801/04/$20.00 © 2004 IEEE IEEE INTERNET COMPUTING Post-Javaism continued from p. 96 its strength. Is this just coincidence, or architecture. New technology is the Indeed, “form follows function” de- do similar forces shape the evolution most obvious: type inference, parser scribes Smalltalk well. Smalltalk reject- of both architectural styles and pro- generators, garbage collection, large ed established conventions, such as stor- gramming languages? and inexpensive memories, peephole ing programs in files, using lots of optimizers, just-in-time compilers, and keywords, declaring types for identifiers, Evolution in Architecture advances in raw hardware speed have and sprinkling everything with paren- Four major forces have shaped archi- changed languages in ways that For- theses regardless of necessity. Instead, tecture’s evolution: technology, eco- tran’s designers could not conceive. Smalltalk embraced an architectural nomics, function, and fashion. Layered over this is the effect of model of amazing purity: everything New technology leads to structures economics. Computation is a young was an object, from classes to closures, that were never before possible: field, but we’ve already seen it progress dictionaries to methods, messages to dressed stone arches, cast-iron facades, from a dozen programmers sharing a numbers. Everything that supported the reinforced concrete, steel girders, plate $100,000, room-sized computer to language — compilers, browsers, execu- glass, mechanical ventilation, insula- dozens of smaller computers compet- tion contexts, debuggers — was an tion, engineered wood products — the ing for the attention of a $100,000 object, too. Less was more. list goes on. Simultaneously, econom- programmer. The result was breathtaking: a ic changes help one technology Although each of those smaller palace that seemed to defy gravity and advance as another recedes. Large computers is a thousand times more certainly challenged conventional wis- plate-glass windows, for example, powerful than one of the old room- dom. Smalltalk provided the seed that were once the prerogative of the fabu- sized machines, our languages are still blossomed into many of the past 30 lously wealthy; the rest of us had to be designed as if the computer’s time years’ innovations, including Java, content with arrays of small panes were more valuable than the program- graphical interfaces, programming in divided by mullions. The situation mer’s. A similar revolution has oc- the debugger, and contextual menus. today is reversed: large expanses of curred in the economics of memory, However, most of the tourists who glass are inexpensive, and we must but perhaps with a more obvious came to admire this modernist palace pay extra for true divided lights. effect: most of us program as if mem- went back home to their Victorian row New functions are another major ory were free, which indeed it is — houses. Only a few visionaries felt they source of innovation. The Romans did until it runs out. could live there. not build railway stations, and the Vic- These changes have made garbage torians did not build multistory park- collection and virtual machines the Java as Postmodernism ing structures. Each new function cat- norm, instead of esoterica of the Taking the analogy to architecture one alyzed the creation of new forms, and research laboratory. Technology and step further, we can say that Java often of the technology that made economics have enabled us to take one defined postmodernism. It celebrated the these forms possible. step away from the raw hardware — mix of styles in historic bodies of code Finally, we can’t underestimate fash- but only one step. and blended classical elements such as ion’s importance. The powerful display The demand for increased function- bytes, Bools, and curly braces with the their wealth by creating new fashions; ality has forced a minority of language functional modernist forms of objects the rest of us often have the urge to fol- designers to look seriously at declara- and instance variables. It gave people low them. I won’t try to explain fashion, tive notations like SQL, used for defin- back the conventions that made them but denying that it’s a powerful force for ing searches over databases, and feel comfortable — along with a healthy change would be foolish. HTML, used for defining Web pages. dose of complexity and contradiction. The result of these forces has pushed Others work with languages that don’t The result was that people liked architecture toward larger, more open even have names: their sentences are Java. They didn’t just visit on Sunday buildings, with such huge oscillations sequences of gestures and clicks in a afternoon tours: they gave up their about the mean that this trend user interface. Approximately 95 per- Victorian row houses and moved in. becomes apparent only decades or cent of all the people who program Java represented not innovation, but centuries later. Will the same be true computers today use these or other consolidation. for programming languages? domain-specific languages. Of course, the remaining 5 percent — people, like The Forces of Evolution Evolution in us, who read IEEE Computer Society I don’t have enough space to pursue Programming Languages publications — realize that these aren’t the architectural analogy too much The forces that effect programming “real” languages at all, and that the further, but I’m constantly surprised by languages are similar to those in programmers who use them aren’t IEEE INTERNET COMPUTING www.computer.org/internet/ JANUARY • FEBRUARY 2004 93 Peer to Peer “real” programmers. We’ve even 1970s. I can’t find anything in Ingall’s opment; Java has not been able to do coined a separate name for them: users design principles paper that argues this yet, despite the valiant efforts of (or sometimes, lusers).1 This catego- against type declarations.3 In fact, Object Technology International and rization is similar to the way that when we designed Emerald in the VisualAge for Java. Because Smalltalk “real” architects recognize that food early 1980s, we had to invent a type represents programs as objects instead processing plants, fabs, bridges, and system that was adequate for letting of files, tools are amazingly easy to municipal housing projects aren’t programmers define their own build.
Recommended publications
  • Liste Von Programmiersprachen
    www.sf-ag.com Liste von Programmiersprachen A (1) A (21) AMOS BASIC (2) A# (22) AMPL (3) A+ (23) Angel Script (4) ABAP (24) ANSYS Parametric Design Language (5) Action (25) APL (6) Action Script (26) App Inventor (7) Action Oberon (27) Applied Type System (8) ACUCOBOL (28) Apple Script (9) Ada (29) Arden-Syntax (10) ADbasic (30) ARLA (11) Adenine (31) ASIC (12) Agilent VEE (32) Atlas Transformatikon Language (13) AIMMS (33) Autocoder (14) Aldor (34) Auto Hotkey (15) Alef (35) Autolt (16) Aleph (36) AutoLISP (17) ALGOL (ALGOL 60, ALGOL W, ALGOL 68) (37) Automatically Programmed Tools (APT) (18) Alice (38) Avenue (19) AML (39) awk (awk, gawk, mawk, nawk) (20) Amiga BASIC B (1) B (9) Bean Shell (2) B-0 (10) Befunge (3) BANCStar (11) Beta (Programmiersprache) (4) BASIC, siehe auch Liste der BASIC-Dialekte (12) BLISS (Programmiersprache) (5) Basic Calculator (13) Blitz Basic (6) Batch (14) Boo (7) Bash (15) Brainfuck, Branfuck2D (8) Basic Combined Programming Language (BCPL) Stichworte: Hochsprachenliste Letzte Änderung: 27.07.2016 / TS C:\Users\Goose\Downloads\Softwareentwicklung\Hochsprachenliste.doc Seite 1 von 7 www.sf-ag.com C (1) C (20) Cluster (2) C++ (21) Co-array Fortran (3) C-- (22) COBOL (4) C# (23) Cobra (5) C/AL (24) Coffee Script (6) Caml, siehe Objective CAML (25) COMAL (7) Ceylon (26) Cω (8) C for graphics (27) COMIT (9) Chef (28) Common Lisp (10) CHILL (29) Component Pascal (11) Chuck (Programmiersprache) (30) Comskee (12) CL (31) CONZEPT 16 (13) Clarion (32) CPL (14) Clean (33) CURL (15) Clipper (34) Curry (16) CLIPS (35)
    [Show full text]
  • A Metacircular Architecture for Runtime Optimisation Persistence Clément Béra
    Sista: a Metacircular Architecture for Runtime Optimisation Persistence Clément Béra To cite this version: Clément Béra. Sista: a Metacircular Architecture for Runtime Optimisation Persistence. Program- ming Languages [cs.PL]. Université de Lille 1, 2017. English. tel-01634137 HAL Id: tel-01634137 https://hal.inria.fr/tel-01634137 Submitted on 13 Nov 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Universit´edes Sciences et Technologies de Lille { Lille 1 D´epartement de formation doctorale en informatique Ecole´ doctorale SPI Lille UFR IEEA Sista: a Metacircular Architecture for Runtime Optimisation Persistence THESE` pr´esent´eeet soutenue publiquement le 15 Septembre 2017 pour l'obtention du Doctorat de l'Universit´edes Sciences et Technologies de Lille (sp´ecialit´einformatique) par Cl´ement B´era Composition du jury Pr´esident: Theo D'Hondt Rapporteur : Ga¨elThomas, Laurence Tratt Examinateur : Elisa Gonzalez Boix Directeur de th`ese: St´ephaneDucasse Co-Encadreur de th`ese: Marcus Denker Laboratoire d'Informatique Fondamentale de Lille | UMR USTL/CNRS 8022 INRIA Lille - Nord Europe Numero´ d’ordre: XXXXX i Acknowledgments I would like to thank my thesis supervisors Stéphane Ducasse and Marcus Denker for allowing me to do a Ph.D at the RMoD group, as well as helping and supporting me during the three years of my Ph.D.
    [Show full text]
  • The Future: the Story of Squeak, a Practical Smalltalk Written in Itself
    Back to the future: the story of Squeak, a practical Smalltalk written in itself Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay [Also published in OOPSLA ’97: Proc. of the 12th ACM SIGPLAN Conference on Object-oriented Programming, 1997, pp. 318-326.] VPRI Technical Report TR-1997-001 Viewpoints Research Institute, 1209 Grand Central Avenue, Glendale, CA 91201 t: (818) 332-3001 f: (818) 244-9761 Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself by Dan Ingalls Ted Kaehler John Maloney Scott Wallace Alan Kay at Apple Computer while doing this work, now at Walt Disney Imagineering 1401 Flower Street P.O. Box 25020 Glendale, CA 91221 [email protected] Abstract Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. Other noteworthy aspects of Squeak include: a compact object format that typically requires only a single word of overhead per object; a simple yet efficient incremental garbage collector for 32-bit direct pointers; efficient bulk- mutation of objects; extensions of BitBlt to handle color of any depth and anti-aliased image rotation and scaling; and real-time sound and music synthesis written entirely in Smalltalk. Overview Squeak is a modern implementation of Smalltalk-80 that is available for free via the Internet, at http://www.research.apple.com/research/proj/learning_concepts/squeak/ and other sites. It includes platform-independent support for color, sound, and image processing.
    [Show full text]
  • Towards Gradual Typing for Generics
    Towards Gradual Typing for Generics Lintaro Ina and Atsushi Igarashi Graduate School of Informatics, Kyoto University {ina,igarashi}@kuis.kyoto-u.ac.jp Abstract. Gradual typing, proposed by Siek and Taha, is a framework to combine the benefits of static and dynamic typing. Under gradual typing, some parts of the program are type-checked at compile time, and the other parts are type-checked at run time. The main advantage of gradual typing is that a programmer can write a program rapidly without static type annotations in the beginning of development, then add type annotations as the development progresses and end up with a fully statically typed program; and all these development steps are carried out in a single language. This paper reports work in progress on the introduction of gradual typing into class-based object-oriented programming languages with generics. In previous work, we have developed a gradual typing system for Feather- weight Java and proved that statically typed parts do not go wrong. After reviewing the previous work, we discuss issues raised when generics are introduced, and sketch a formalization of our solutions. 1 Introduction Siek and Taha have coined the term “gradual typing” [1] for a linguistic sup- port of the evolution from dynamically typed code, which is suitable for rapid prototyping, to fully statically typed code, which enjoys type safety properties, in a single programming language. The main technical challenge is to ensure some safety property even for partially typed programs, in which some part is statically typed and the rest is dynamically typed. The framework of gradual typing consists of two languages: the surface lan- guage in which programmers write programs and the intermediate language into which the surface language translates.
    [Show full text]
  • Safe, Fast and Easy: Towards Scalable Scripting Languages
    Safe, Fast and Easy: Towards Scalable Scripting Languages by Pottayil Harisanker Menon A dissertation submitted to The Johns Hopkins University in conformity with the requirements for the degree of Doctor of Philosophy. Baltimore, Maryland Feb, 2017 ⃝c Pottayil Harisanker Menon 2017 All rights reserved Abstract Scripting languages are immensely popular in many domains. They are char- acterized by a number of features that make it easy to develop small applications quickly - flexible data structures, simple syntax and intuitive semantics. However they are less attractive at scale: scripting languages are harder to debug, difficult to refactor and suffers performance penalties. Many research projects have tackled the issue of safety and performance for existing scripting languages with mixed results: the considerable flexibility offered by their semantics also makes them significantly harder to analyze and optimize. Previous research from our lab has led to the design of a typed scripting language built specifically to be flexible without losing static analyzability. Inthis dissertation, we present a framework to exploit this analyzability, with the aim of producing a more efficient implementation Our approach centers around the concept of adaptive tags: specialized tags attached to values that represent how it is used in the current program. Our frame- work abstractly tracks the flow of deep structural types in the program, and thuscan ii ABSTRACT efficiently tag them at runtime. Adaptive tags allow us to tackle key issuesatthe heart of performance problems of scripting languages: the framework is capable of performing efficient dispatch in the presence of flexible structures. iii Acknowledgments At the very outset, I would like to express my gratitude and appreciation to my advisor Prof.
    [Show full text]
  • Strongtalk Plan Prezentacji
    Elżbieta Bajkowska Strongtalk Plan prezentacji Czym jest Strongtalk Historia Strongtalk System typów w Strongtalk Podsumowanie Źródła Czym jest Strongtalk Składnia i semantyka Smalltalk’a-80 plus: Większa wydajność – najszybsza implementacja Smalltalk System typów – opcjonalny i przyrostowy; silny, statyczny system typów działający niezależnie od metody kompilacji (nie typowany kod Smalltalka wykonuje się równie szybko) Typowana biblioteka klas według Smalltalk Blue Book Historia Strongtalk Dwa równoległe i niezależne wątki rozwoju przyszłego systemu Strongtalk Zachodnie wybrzeże – prace grupy związanej z językiem Self nad innowacyjną maszyną wirtualną Wschodnie wybrzeże – prace nad systemem typów dla języka Smalltalk Historia Strongtalk Zachód – maszyna wirtualna Cel – poprawienie wydajności czysto obiektowego języka Self Satysfakcjonujące odśmiecanie Problem efektywnej kompilacji dla dynamicznie typowanego języka, używającego konstrukcji bloku gdzie wszystkie dane są obiektami (analogia do Smalltalk’a) - Urs Hoelzle Historia Strongtalk Wschód – system typów Dave Griswold i Gilad Bracha opracowują Strongtalk - (nazwa systemu wywodzi się od systemu typów) – konferencja OOPSLA ’93 Baza – biblioteki ParcPlace Smalltalk, nie odzwierciedlające w pełni hierarchii typów Strongtalka Zainteresowanie technologią grupy pracującej nad kompilatorem Self dla poprawienia wydajności Historia Strongtalk Połączenie technologii Animorphic Systems - Dave Griswold zaczyna współpracę z Urs’em Hoelzle (reszta grupy: Lars Bak, Gilad Bracha,
    [Show full text]
  • Type Feedback for Bytecode Interpreters Position Paper ICOOOLPS 2007
    Type Feedback for Bytecode Interpreters Position Paper ICOOOLPS 2007 Michael Haupt1, Robert Hirschfeld1, and Marcus Denker2 1 Software Architecture Group Hasso-Plattner-Institut University of Potsdam, Germany 2 Software Composition Group Institute of Computer Science and Applied Mathematics University of Berne, Switzerland michael.haupt,hirschfeld @hpi.uni-potsdam.de, [email protected] { } Abstract. This position paper proposes the exploitation of type feed- back mechanisms, or more precisely, polymorphic inline caches, for purely interpreting implementations of object-oriented programming languages. Using Squeak’s virtual machine as an example, polymorphic inline caches are discussed as an alternative to global caching. An implementation proposal for polymorphic inline caches in the Squeak virtual machine is presented, and possible future applications for online optimization are outlined. 1 Introduction Bytecode interpreters are small in size and comparatively easy to implement, but generally execute programs much less efficiently than just-in-time (JIT) compilers. Techniques like threaded interpretation [9, 11, 2] focus on speeding up bytecode interpretation itself, and caching [4, 5, 1] improves the performance of message sends—the most common operation in object-oriented software [7]. It is interesting to observe that, while threading mechanisms are used natu- rally to a varying degree in bytecode interpreter implementations, such systems usually employ only global caching to speed up dynamic method dispatch. A global cache is clearly beneficial with respect to overall performance. Still, it does not provide optimal support for polymorphic message send sites, and it does not allow for exploiting type information (we provide details on these issues in the following section). In our opinion, the employment of polymorphic inline caches (PICs) [5] instead can provide means for achieving significant speedups in bytecode interpreters while exhibiting only a moderate increase in memory footprint and implementation complexity.
    [Show full text]
  • CONFERENCE COMPANION ESUG 2008 - 16Th International Smalltalk Conference
    ESUG-2008 CONFERENCE COMPANION ESUG 2008 - 16th International Smalltalk Conference CONTENTS Platinum Sponsors.......................................................................................................... 3 Gold Sponsors................................................................................................................ 4 Conference Location....................................................................................................... 5 Program Overview........................................................................................................... 8 Saturday, August 23...................................................................................................... 10 Sunday, August 24......................................................................................................... 10 Monday, August 25....................................................................................................... 11 Tuesday, August 26....................................................................................................... 16 Wednesday, August 27.................................................................................................. 20 Thursday, August 28...................................................................................................... 23 Friday, August 29........................................................................................................... 27 Program Overview........................................................................................................
    [Show full text]
  • Preserving Instance State During Refactorings in Live Environments Pablo Tesone, Guillermo Polito, Luc Fabresse, Noury Bouraqadi, Stéphane Ducasse
    Preserving Instance State during Refactorings in Live Environments Pablo Tesone, Guillermo Polito, Luc Fabresse, Noury Bouraqadi, Stéphane Ducasse To cite this version: Pablo Tesone, Guillermo Polito, Luc Fabresse, Noury Bouraqadi, Stéphane Ducasse. Preserving In- stance State during Refactorings in Live Environments. Future Generation Computer Systems, Else- vier, In press, 10.1016/j.future.2020.04.010. hal-02541754 HAL Id: hal-02541754 https://hal.archives-ouvertes.fr/hal-02541754 Submitted on 14 Apr 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Preserving Instance State during Refactorings in Live Environments Pablo Tesonea,b,∗, Guillermo Politoc, Luc Fabresseb, Noury Bouraqadib, Stéphane Ducassea aInria Lille-Nord Europe, 40 Avenue Halley, Villeneuve d’Ascq, France bUnité de Recherche Informatique et Automatique, IMT Lille Douai, 764 Boulevard Lahure, Douai, France cUniv. Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL - Centre de Recherche en Informatique Signal et Automatique de Lille, F-59000 Lille, France Abstract An important activity of software evolution consists in applying refactorings to enhance the quality of the code without changing its behaviour. Having a proper refactoring tool is a must-to in any professional development environment.
    [Show full text]
  • Cormac Flanagan Fritz Henglein Nate Nystrom Gavin Bierman Jan Vitek Gilad Bracha Philip Wadler Jeff Foster Tobias Wrigstad Peter Thiemann Sam Tobin-Hochstadt
    PC: Amal Ahmed SC: Matthias Felleisen Robby Findler (chair) Cormac Flanagan Fritz Henglein Nate Nystrom Gavin Bierman Jan Vitek Gilad Bracha Philip Wadler Jeff Foster Tobias Wrigstad Peter Thiemann Sam Tobin-Hochstadt Organizers: Tobias Wrigstad and Jan Vitek Schedule Schedule . 3 8:30 am – 10:30 am: Invited Talk: Scripting in a Concurrent World . 5 Language with a Pluggable Type System and Optional Runtime Monitoring of Type Errors . 7 Position Paper: Dynamically Inferred Types for Dynamic Languages . 19 10:30 am – 11:00 am: Coffee break 11:00 am – 12:30 pm: Gradual Information Flow Typing . 21 Type Inference with Run-time Logs . 33 The Ciao Approach to the Dynamic vs. Static Language Dilemma . 47 12:30 am – 2:00 pm: Lunch Invited Talk: Scripting in a Concurrent World John Field IBM Research As scripting languages are used to build increasingly complex systems, they must even- tually confront concurrency. Concurrency typically arises from two distinct needs: han- dling “naturally” concurrent external (human- or software-generated) events, and en- hancing application performance. Concurrent applications are difficult to program in general; these difficulties are multiplied in a distributed setting, where partial failures are common and where resources cannot be centrally managed. The distributed sys- tems community has made enormous progress over the past few decades designing specialized systems that scale to handle millions of users and petabytes of data. How- ever, combining individual systems into composite applications that are scalable—not to mention reliable, secure, and easy to develop maintain—remains an enormous chal- lenge. This is where programming languages should be able to help: good languages are designed to facilitate composing large applications from smaller components and for reasoning about the behavior of applications modularly.
    [Show full text]
  • Bridging the Gap Between Machine and Language Using First-Class Building Blocks
    Bridging the Gap between Machine and Language using First-Class Building Blocks Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultat¨ der Universitat¨ Bern vorgelegt von Toon Verwaest von Belgien Leiter der Arbeit: Prof. Dr. O. Nierstrasz Institut fur¨ Informatik und angewandte Mathematik Von der Philosophisch-naturwissenschaftlichen Fakultat¨ angenommen. Copyright © 2012 Toon Verwaest. Software Composition Group University of Bern Institute of Computer Science and Applied Mathematics Neubruckstrasse¨ 10 CH-3012 Bern http://scg.unibe.ch/ ISBN: 978-1-105-51835-5 This work is licensed under the Creative Commons Attribution–ShareAlike 3.0 License. The license is available at http://creativecommons.org/licenses/by-sa/3.0/. This dissertation is available at http://scg.unibe.ch. Acknowledgments My adventure in Bern started more than four years ago, in October 2007. This page is too short to capture the gratitude I have towards all those who have contributed in any way to this dissertation. First I’d like to extend my gratitude to Oscar Nierstrasz for supporting me throughout my time at the Software Composition Group. He gave me the freedom to develop my own research project, and provided invaluable sup- port in formulating my thoughts. It is thanks to his well-organized research group that developing this thesis almost seemed effortless. I thank Marcus Denker for his continued support and interest in my work. I very much enjoyed our discussions about research; especially while ex- ploring the Swiss mountains. I’d like to thank him for reviewing this thesis, writing the Koreferat, and accepting to be on the PhD committee. I thank Torsten Braun for accepting to chair the PhD defense.
    [Show full text]
  • CONFERENCE COMPANION ESUG 2008 - 16Th International Smalltalk Conference
    ESUG-2008 CONFERENCE COMPANION ESUG 2008 - 16th International Smalltalk Conference CONTENTS Platinum Sponsors.......................................................................................................... 3 Gold Sponsors................................................................................................................ 4 Conference Location....................................................................................................... 5 Conference Location..................................................................................................... 10 Saturday, August 23...................................................................................................... 10 Sunday, August 24......................................................................................................... 10 Monday, August 25....................................................................................................... 11 Tuesday, August 26....................................................................................................... 16 Wednesday, August 27.................................................................................................. 20 Thursday, August 28...................................................................................................... 23 Friday, August 29........................................................................................................... 27 CWI Page 2 ESUG 2008 -16th International Smalltalk Conference Platinum Sponsors cosmocows Page
    [Show full text]