Kazimir Majorinc Moćan Koliko Je God Moguće

Total Page:16

File Type:pdf, Size:1020Kb

Kazimir Majorinc Moćan Koliko Je God Moguće Kazimir Majorinc Moćan koliko je god moguće eval[e; a] = [atom[e] → assoc[e; a]; atom[car[e]] → [eq[car[e]; QUOTE] → cadr[e]; eq[car[e]; ATOM] → atom[eval[cadr[e]; a]]; eq[car[e]; EQ] → eq[eval[cadr[e]; a]; eval[caddr[e]; a]]; eq[car[e]; COND] → evcon[cdr[e]; a]; eq[car[e]; CAR] → car[eval[cadr[e]; a]]; eq[car[e]; CDR] → cdr[eval[cadr[e]; a]]; eq[car[e]; CONS] → cons[eval[cadr[e]; a]; eval[caddr[e]; a]]; T → eval[cons[assoc[car[e]; a]; cdr[e]]; a]]; eq[caar[e]; LABEL] → eval[cons[caddar[e]; cdr[e]]; cons[list[cadar[e]; car[e]]; a]]]; eq[caar[e]; LAMBDA] → eval[caddar[e]; append[pair[cadar[e];evlis[cdr[e];a]]; a]]] Kazimir Majorinc: Moćan koliko je god moguće Glavne ideje Lispa u McCarthyjevom periodu Multimedijalni institut ISBN 978-953-7372-28-6 CIP zapis je dostupan u računalnome katalogu Nacionalne i sveučilišne knjižnice u Zagrebu pod brojem 000910180. Zagreb, srpanj 2015. Ova knjiga dana je na korištenje pod licencom Creative Commons Imenovanje ∞ Bez prerada 4.0 međunarodna. Kazimir Majorinc Moćan koliko je god moguće Glavne ideje Lispa u McCarthyjevom periodu Multimedijalni institut Sadržaj 1. Uvod → 10 2. Rani utjecaji na McCarthyja → 13 2.1. Tehnološki entuzijazam → 14 2.2. Konačni automati i eksplicitne reprezentacije činjenica → 14 2.3. Digitalna računala kao inteligentni strojevi → 16 3. Dartmouthški projekt → 17 3.1. Jezik inteligentnih računala → 18 3.2. Između IPL-a i Fortrana → 19 4. FLPL → 20 4.1. Operacije nad riječima → 21 4.2. Liste → 22 4.3. Kreiranje lista → 23 5. Prijedlog kompajlera → 26 5.1. Programski jezik kao koordinatni sustav → 27 5.2. Sloboda programera → 28 5.3. Logičke vrijednosti i funkcije → 28 5.4. Funkcija if → 29 5.5. Sintaksa → 29 5.6. Liste → 30 5.7. Funkcije s višestrukim vrijednostima i kompozicija funkcija → 30 6. Prijedlog programskog jezika → 32 6.1. Uvjetna naredba → 33 6.2. Go to naredba → 33 6.3. Makro naredba → 34 6.4. Funkcije višeg reda → 35 6.5. Lambda-izrazi → 36 7. Imperativni Lisp → 37 7.1. Imperativni i algebarski jezik → 40 7.2. Osnovni tipovi i naredbe → 41 7.3. Potprogrami i “funkcije” → 43 7.4. Simbolički izrazi → 44 7.5. Liste svojstava → 45 7.6. Liste i reprezentacija simboličkih izraza → 45 7.7. Funkcije za analizu i sintezu riječi i referenciranje → 48 7.8. Upravljanje slobodnom memorijom → 49 7.9. Osnovne operacije nad cijelim listama → 50 7.10. Funkcija maplist → 51 8. Elementi funkcionalnog programiranja → 53 8.1. Nova funkcija maplist → 54 8.2. McCarthyjevi lambda-izrazi → 55 8.3. Pojednostavljenje jezika → 58 8.4. Implementacija rekurzivnih funkcija → 60 8.5. Funkcionalni i imperativni stil → 60 8.6. Nede∫nabilnost funkcije list → 61 8.7. Supstitucijske funkcije i funkcija apply → 62 8.8. Pomoćne funkcije i implementacija apply → 63 8.9. Automatizirano upravljanje memorijom → 66 8.10. Rochesterovi lambda izrazi → 66 8.11. Formatiranje programa → 67 8.12. Kompozicije funkcija car i cdr → 67 8.13. Funkcija compute → 67 9. Čisti Lisp → 68 9.1. Matematički izrazi → 72 9.2. Uvjetni izrazi → 72 9.3. Rekurzivno i simultano rekurzivno de∫nirane funkcije → 73 9.4. Lambda-izrazi → 74 9.5. Label-izrazi → 75 9.6. Slobodne i vezane varijable → 76 9.7. Primjedba o simultano rekurzivnim funkcijama → 77 9.8. De∫nicija simboličkih izraza → 77 9.9. Razlika u odnosu na prethodne de∫nicije → 78 9.10. Meta-izrazi → 80 9.11. S-funkcije → 80 9.12. Elementarne S-funkcije → 81 9.13. Primjedbe uz McCarthyjevo de∫niranje S-funkcija → 83 9.14. Primjeri ne-elementarnih S-funkcija → 85 9.15. Pokrata i funkcija list → 89 9.16. Funkcije kao argumenti funkcija → 89 9.17. Primjedba o eliminiranju pokrata i ne-elementarnih S-funkcija → 90 9.18. Prevođenje M-izraza u S-izraze → 92 9.19. Primjedbe o prevođenju M-izraza → 95 9.20. Matematička de∫nicija S-funkcije eval → 97 9.21. S-funkcija eval → 101 9.22. Primjedbe uz de∫niciju funkcije eval → 103 9.23. Univerzalna S-funkcija apply → 105 9.24. Interpreter za Lisp → 106 9.25. S-funkcije i teorija izračunljivosti → 107 9.26. Simulacija Turingovih strojeva S-funkcijom → 108 9.27. Pitanja o S-funkcijama neodlučiva S-funkcijom → 114 9.28. Programi kao S-funkcije → 116 9.29. Predstavljanje simboličkih izraza u memoriji računala → 117 9.30. Razlike između simboličkih izraza i struktura lista → 118 9.31. Garbage collection → 119 10. Linearni Lisp → 121 10.1. L-izrazi → 122 10.2. Elementarne funkcije → 123 10.3. Izdvajanje podizraza → 124 11. Binarni Lisp → 125 12. Slagleov jezik za manipulaciju simbola → 127 13. Simbolički izrazi kao sintaksa jezika → 129 14. Fortranolike naredbe, funkcija program, moć i multiparadigmatičnost Lispa → 132 14.1. Kodiranje stanja stroja i fortranolikih naredbi → 133 14.2. S-funkcija program → 134 14.3. Simultano izvršavanje fortranolikih naredbi i uređaj među simbolima → 135 14.4. Multiparadigmatičnost Lispa → 135 14.5. Moć jezika sa stanovišta programera → 137 15. Woodward-Jenkinsova aritmetika → 139 16. Lisp 1.5 → 142 16.1. Čisti Lisp → 144 16.2. Upotreba liste svojstava → 147 16.3. Pseudofunkcije → 149 16.4. Specijalne forme → 151 16.5. Fexprovi → 151 16.6. Programi u LISP-u → 153 16.7. Funkcionalni argumenti → 155 16.8. Specijalni operator prog → 158 16.9. Gensym i oblist → 159 16.10. Simboli T, *T* i NIL → 161 16.11. Aritmetika → 162 16.12. Polja → 163 16.13. Logika → 163 17. Matematička teorija izračunavanja → 165 17.1. Funkcije de∫nirane osnovnim funkcijama → 167 17.2. Funkcionali → 167 17.3. Uklonjivost label-izraza → 168 17.4. Uvjetni izrazi nisu funkcije → 171 17.5. Neizračunljive funkcije → 171 17.6. Višeznačne funkcije → 172 17.7. Rekurzivna de∫nicija skupa simboličkih izraza → 172 17.8. Rekurzivna indukcija → 173 17.9. Apstraktna sintaksa programskih jezika → 174 17.10. Semantika → 176 18. Gilmoreov lispoliki jezik → 178 18.1. Uvjetni izrazi → 179 18.2. Quote i label → 179 18.3. Apstraktni stroj → 180 19. Memoizacija → 182 20. Nova funkcija eval → 186 20.1. Prošireni Lisp → 187 20.2. Novi eval → 188 20.3. Autonimi lambda i label → 189 21. Prve primjene Lispa → 190 Slike → 195 Bibliogra∫ja → 196 Moćan koliko je god moguće Glavne ideje Lispa u McCarthyjevom periodu 1. Uvod “In developing LISP our first goal is to describe a lan- guage which is as powerful as possible from the point of view of the programmer.” 1 Većina programera se prvi puta susreće s Lispom preko nekog od brojnih citata i aforizama u kojima se, ponekad i preko mjere, ističu ljepota, elegancija i moć jezika. Tako se, primjerice, razumijevanje Lispa naziva prosvjet­ ljenjem; tvrdi se da iskustvo programiranja u Lispu čini programera boljim, čak i ako nikad u životu ne bude ko­ ristio Lisp. Jeziku se, doduše u šali, pripisuju mistična svojstva; bog (ili bogovi) su svijet napisali u Lispu, a Lisp zajednica se opisuje kao kult. Odluči li programer proučiti Lisp, zacijelo će zaključiti da je Lisp začuđujuće moćan, ali jednako tako začuđujuće jednostavan programski jezik. Moć je manje upitna; želi li dizajner jezika stvoriti moćan jezik, uloži li dovoljno vre­ mena i napora, teško da neće i uspjeti. Jednostavnost je čudna; ona ostavlja dojam da je Lisp otkriven, a ne stvo­ ren. Sličan su dojam imali i članovi ARTIFICIAL INTELLI- GENCE projekta na američkom MIT­ju koji su razvili Lisp, zamišljen kao moćan, ali praktičan i vrlo složen jezik. Suprotno onome što bi se moglo očekivati, Lisp je tijekom razvoja postajao sve jednostavniji. Tek kad je glavni dizaj­ ner, John McCarthy napisao članak kojim je Lisp predsta­ vljen javnosti, članovi projekta su prepoznali Lisp kao “predmet ljepote” i sam vrijedan proučavanja. Narednih desetljeća, neki članovi Lisp zajednice su pokušali jezik učiniti još općenitijim, moćnijim, jednostav­ nijim, korektnijim opisom načina na koji programeri raz­ mišljaju. Drugi, brojniji pokušaji unapređenja potaknuti su željom da se jezik učini efikasnijim, praktičnijim, popu­ larnijim, možda čak i profitabilnijim. Čak i kad su radili kompromise, dizajneri su nastojali identificirati, zadržati, možda i unaprijediti bitne kvalitete jezika. Lisp je utjecao na druge programske jezike. U manjoj mjeri, i drugi pro­ gramski jezici su utjecali na Lisp. Različiti motivi, priori­ teti i rješenja doveli su do raspada i fragmentacije zajedni­ ce i razvoja brojnih, znatno različitih dijalekata i zajednica okupljenih oko dijalekata. 1 McCarthy, Programs in Lisp, AIM­012, 1959., str. 4. 11 U uvjetima fragmentacije zajednice i postojanja broj­ nih tumačenja osnovnih ideja, onaj tko želi razumjeti Lisp teško može izbjeći povijesni pristup; upoznavanje s ideja­ ma u obliku koji su imale kad su nastajale. Najzanimljivi­ ji period je pri tome, u pravilu, onaj najraniji. Ova knjiga pokušava izložiti nastajanje i razvoj glavnih ideja Lispa tijekom prvih nekoliko godina u kojima je John McCarthy vodio razvoj jezika. Pokušaja sistematičnog izlaganja glavnih ideja Lispa u ranom periodu je već bilo. Sam je McCarthy održao ne­ koliko predavanja i napisao nekoliko članaka o toj temi. Ranu povijest Lispa je daleko najviše istraživao Herbert Stoyan. Osim Stoyanove knjige LISP, Anwendungsgebie- te, Grundbegriffe, Geschichte iz 1980., izdane samo na nje­ mačkom jeziku i danas teško dostupne, svi radovi o povi­ jesti Lispa pisani su u obliku za čije je razumijevanje pot­ rebna već dobra upućenost u Lisp. Ova knjiga pisana je tako da bude razumljiva svakom programeru s malo isku­ stva u bilo kojem programskom jeziku. Tijekom pisanja knjige, autor je održao nekoliko dese­ taka izlaganja u Hacklabu Mama u Zagrebu. Diskusije s članovima Hacklaba su u velikoj mjeri utjecale na sadržaj i oblik knjige. U izvornim dokumentima, ime Lisp je obično pisano velikim slovima: LISP. U knjizi se koristi danas uobičajen i praktičniji način pisanja: Lisp. Izvorni način pisanja za­ držan je samo pri citiranju.
Recommended publications
  • Document Number Scco24
    Stanford University Libraries Dept. of Special Cr*l!«ctkjns &>W Title Box Series I Fol 5C Fo<. Title " LISP/360 REFERENCE MANUAL FOURTH EDITION # CAMPUS COMPUTER FACILITY STANFORD COMPUTATION CENTER STANFORD UNIVERSITY STANFORD, CALIFORNIA DOCUMENT NUMBER SCCO24 " ■ " PREFACE This manual is intended to provide the LISP 1.5 user with a reference manual for the LISP 1.5 interpreter, assembler, and compiler on the Campus Facility 360/67. It assumes that the reader has a working knowledge by of LISP 1.5 as described in the LISP_I.is_Primer Clark Weissman, and that the reader has a general knowledge of the operating environment of OS 360. Beginning users of LISP will find the sections The , Functions, LI SRZIi O_Syst em , Organiz ation_of_St orage tlSP_Job_Set-]i£» and t.tsp/360 System Messages Host helpful in obtaining a basic understanding of the LISP system. Other sections of the manual are intended for users desiring a more extensive knowledge of LISP. The particular implementation to which this reference manual is directed was started by Mr. J. Kent while he was at the University of Waterloo. It is modeled after his implemention of LISP 1.5 for the CDC 3600. Included in this edition is information on the use of the time-shared LISP system available on the 360/67 which was implemented by Mr. Robert Berns of the " Computer staff. Campus Facility " II TABLE OF CONTENTS Section PREFACE " TABLE OF CONTENTS xxx 1. THE LISP/360 SYSTEM 1 2. ORGANIZATION OF STORAGE 3 2.1 Free Cell Storage (FCS) 3 2.1.1 Atoms 5 2.1.2 Numbers 8 2.1.3 Object List 9 2.2 Push-down Stack (PDS) 9 2.3 System Functions 9 2.4 Binary Program Space (BPS) 9 W 2.5 Input/Output Buffers 9 10 3.
    [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]
  • Implementing a Vau-Based Language with Multiple Evaluation Strategies
    Implementing a Vau-based Language With Multiple Evaluation Strategies Logan Kearsley Brigham Young University Introduction Vau expressions can be simply defined as functions which do not evaluate their argument expressions when called, but instead provide access to a reification of the calling environment to explicitly evaluate arguments later, and are a form of statically-scoped fexpr (Shutt, 2010). Control over when and if arguments are evaluated allows vau expressions to be used to simulate any evaluation strategy. Additionally, the ability to choose not to evaluate certain arguments to inspect the syntactic structure of unevaluated arguments allows vau expressions to simulate macros at run-time and to replace many syntactic constructs that otherwise have to be built-in to a language implementation. In principle, this allows for significant simplification of the interpreter for vau expressions; compared to McCarthy's original LISP definition (McCarthy, 1960), vau's eval function removes all references to built-in functions or syntactic forms, and alters function calls to skip argument evaluation and add an implicit env parameter (in real implementations, the name of the environment parameter is customizable in a function definition, rather than being a keyword built-in to the language). McCarthy's Eval Function Vau Eval Function (transformed from the original M-expressions into more familiar s-expressions) (define (eval e a) (define (eval e a) (cond (cond ((atom e) (assoc e a)) ((atom e) (assoc e a)) ((atom (car e)) ((atom (car e)) (cond (eval (cons (assoc (car e) a) ((eq (car e) 'quote) (cadr e)) (cdr e)) ((eq (car e) 'atom) (atom (eval (cadr e) a))) a)) ((eq (car e) 'eq) (eq (eval (cadr e) a) ((eq (caar e) 'vau) (eval (caddr e) a))) (eval (caddar e) ((eq (car e) 'car) (car (eval (cadr e) a))) (cons (cons (cadar e) 'env) ((eq (car e) 'cdr) (cdr (eval (cadr e) a))) (append (pair (cadar e) (cdr e)) ((eq (car e) 'cons) (cons (eval (cadr e) a) a)))))) (eval (caddr e) a))) ((eq (car e) 'cond) (evcon.
    [Show full text]
  • Mccarthy.Pdf
    HISTORY OF LISP John McCarthy A rtificial Intelligence Laboratory Stanford University 1. Introduction. 2. LISP prehistory - Summer 1956 through Summer 1958. This paper concentrates on the development of the basic My desire for an algebraic list processing language for ideas and distinguishes two periods - Summer 1956 through artificial intelligence work on the IBM 704 computer arose in the Summer 1958 when most of the key ideas were developed (some of summer of 1956 during the Dartmouth Summer Research Project which were implemented in the FORTRAN based FLPL), and Fall on Artificial Intelligence which was the first organized study of AL 1958 through 1962 when the programming language was During this n~eeting, Newell, Shaa, and Fimon described IPL 2, a implemented and applied to problems of artificial intelligence. list processing language for Rand Corporation's JOHNNIAC After 1962, the development of LISP became multi-stranded, and different ideas were pursued in different places. computer in which they implemented their Logic Theorist program. There was little temptation to copy IPL, because its form was based Except where I give credit to someone else for an idea or on a JOHNNIAC loader that happened to be available to them, decision, I should be regarded as tentatively claiming credit for It and because the FORTRAN idea of writing programs algebraically or else regarding it as a consequence of previous decisions. was attractive. It was immediately apparent that arbitrary However, I have made mistakes about such matters in the past, and subexpressions of symbolic expressions could be obtained by I have received very little response to requests for comments on composing the functions that extract immediate subexpresstons, and drafts of this paper.
    [Show full text]
  • Obstacles to Compilation of Rebol Programs
    Obstacles to Compilation of Rebol Programs Viktor Pavlu TU Wien Institute of Computer Aided Automation, Computer Vision Lab A-1040 Vienna, Favoritenstr. 9/183-2, Austria [email protected] Abstract. Rebol’s syntax has no explicit delimiters around function arguments; all values in Rebol are first-class; Rebol uses fexprs as means of dynamic syntactic abstraction; Rebol thus combines the advantages of syntactic abstraction and a common language concept for both meta-program and object-program. All of the above are convenient attributes from a programmer’s point of view, yet at the same time pose severe challenges when striving to compile Rebol into reasonable code. An approach to compiling Rebol code that is still in its infancy is sketched, expected outcomes are presented. Keywords: first-class macros, dynamic syntactic abstraction, $vau calculus, fexpr, Ker- nel, Rebol 1 Introduction A meta-program is a program that can analyze (read), transform (read/write), or generate (write) another program, called the object-program. Static techniques for syntactic abstraction (macro systems, preprocessors) resolve all abstraction during compilation, so the expansion of abstractions incurs no cost at run-time. Static techniques are, however, conceptionally burdensome as they lead to staged systems with phases that are isolated from each other. In systems where different syntax is used for the phases (e. g., C++), it results in a multitude of programming languages following different sets of rules. In systems where the same syntax is shared between phases (e. g., Lisp), the separa- tion is even more unnatural: two syntactically largely identical-looking pieces of code cannot interact with each other as they are assigned to different execution stages.
    [Show full text]
  • Directly Reflective Meta-Programming
    Directly Reflective Meta-Programming ∗ Aaron Stump Computer Science and Engineering Washington University in St. Louis St. Louis, Missouri, USA [email protected] Abstract Existing meta-programming languages operate on encodings of pro- grams as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective pro- gramming is supported directly, without any encoding. The language fea- tures call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional manipulation of arbitrary pro- gram terms. The language is scope safe, in the sense that variables can neither be captured nor escape their scopes. The expressiveness of the language is demonstrated by showing how to implement quotation and evaluation operations, as proposed by Wand. The language's utility for meta-programming is further demonstrated through additional represen- tative examples. A prototype implementation is described and evaluated. Keywords: lambda calculus, reflection, meta-programming, Church en- coding, Mogensen-Scott encoding, Wand-style fexprs, alpha equivalence, language implementation. 1 Introduction This paper presents a new meta-programming language called Archon, in which programs can operate directly on other programs as data. Existing meta- programming languages suffer from defects such as encoding programs at too low a level of abstraction, or in a way that bloats the encoded program terms. Other issues include the possibility for variables either to be captured or escape their static scopes. Archon rectifies these defects by trading the complexity of the reflective encoding for additional programming constructs. We adopt ∗This work is supported by funding from the U.S.
    [Show full text]
  • CONS Y X)))) Which Sets Z to Cdr[X] If Cdr[X] Is Not NIL (Without Recomputing the Value As Woirld Be Necessary in LISP 1.5
    NO. 1 This first (long delayed) LISP Bulletin contains samples of most of those types of items which the editor feels are relevant to this publication. These include announcements of new (i.e. not previously announced here) implementations of LISP !or closely re- lated) systems; quick tricks in LISP; abstracts o. LISP related papers; short writeups and listings of useful programs; and longer articles on problems of general interest to the entire LISP com- munity. Printing- of these last articles in the Bulletin does not interfere with later publications in formal journals or books. Short write-ups of new features added to LISP are of interest, preferably upward compatible with LISP 1.5, especially if they are illustrated by programming examples. -A NEW LISP FEATURE Bobrow, Daniel G., Bolt Beranek and Newman Inc., 50 oulton Street, Cambridge, Massachusetts 02138. An extension of ro 2, called progn is very useful. Tht ralue of progn[el;e ; ,..;e Y- is the value of e . In BBN-LISP on t .e SDS 940 we ha6e extenaed -cond to include $n implicit progn in each clause, putting It In the general form (COND (ell e ) . (e21 . e 2n2) (ekl e )) In1 ... ... kn,_ where nl -> 1. This form is identical to the LISP 1.5 form if n ni = 2. If n > 2 then each expression e in a clause is evaluated (in order) whh e is the first true (nohkN1~)predicate found. The value of the &And Is the value of the last clause evaluated. This is directly Gapolated to the case where n, = 1, bxre the value of the cond is the value of this first non-~ILprewcate.
    [Show full text]
  • Gazette 2018 7
    GazetteWadham College 2018 2018 Gazette 2018 7 Contents Fellows' List 4 Features The Editor 8 The Warden 9 Wadham in 1618 67 The Domestic Bursar 12 Betjeman and Bowra 70 Staff List 14 The Remarkable Mrs Wadham (Senior) 73 The Finance Bursar 18 The 2nd Year 76 The Development Director 20 Book Reviews 78 The Senior Tutor 24 The Tutor for Access 26 College Record The Chapel and Choir 28 In Memoriam 86 The Sarah Lawrence Programme 30 Obituaries 88 The Library 32 Fellows' news 106 Emeritus Fellows' news 110 Clubs, Societies New Fellows 110 and Activities Visiting Fellows 113 1610 Society 36 Alumni news 115 Wadham Alumni Society 38 Degrees 118 Law Society 42 Donations 120 Medical Society 43 The Academic Record Wadham Alumni Golf Society 44 The Student Union 45 Graduate completions 140 MCR 46 Final Honour School results 143 Lennard Bequest Reading Party 48 First Public Examination results 145 Sports Prizes 147 Cricket 50 Scholarships and Exhibitions 149 Football 52 New Undergraduates 152 Rowing 54 New Graduates 156 Rugby 57 2019 Events 160 Netball 58 Squash 60 Tennis 60 Hockey 61 Water polo 62 Power lifting 62 www.wadham.ox.ac.uk Fellows’ list 5 Darren J. Dixon Thomas W. Simpson Samuel J. Williams Fellows’ list Professor of Organic Senior Research Fellow in Wadham College Law Chemistry, Knowles–Williams Philosophy and Public Policy Society Fellow by Special Fellow and Tutor in Organic and Senior Treasurer of Election Philip Candelas, FRS Martin G. Bureau Chemistry Amalgamated Clubs WARDEN Judy Z. Stephenson Rouse Ball Professor of Professor of Astrophysics Nathalie Seddon Susan M.
    [Show full text]
  • Handbook of Industrial Water Soluble Polymers Handbook of Industrial Water Soluble Polymers
    Handbook of Industrial Water Soluble Polymers Handbook of Industrial Water Soluble Polymers Edited by Peter A. Williams Director Centre for Water Soluble Polymers North East Wales Institute, UK © 2007 by Blackwell Publishing Ltd Blackwell Publishing editorial offices: Blackwell Publishing Ltd, 9600 Garsington Road, Oxford OX4 2DQ, UK Tel: ϩ44 (0)1865 776868 Blackwell Publishing Professional, 2121 State Avenue, Ames, Iowa 50014-8300, USA Tel: ϩ1 515 292 0140 Blackwell Publishing Asia Pty Ltd, 550 Swanston Street, Carlton, Victoria 3053, Australia Tel: ϩ61 (0)3 8359 1011 The right of the Author to be identified as the Author of this Work has been asserted in accordance with the Copyright, Designs and Patents Act 1988. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by the UK Copyright, Designs and Patents Act 1988, without the prior permission of the publisher. First published 2007 by Blackwell Publishing Ltd ISBN: 978-1-4051-3242-8 Library of Congress Cataloging-in-Publication Data Handbook of industrial water soluble polymers / edited by Peter A. Williams p. cm. Includes bibliographical references and index. ISBN: 978-1-4051-3242-8 (hardback : alk. paper) 1. Water-soluble polymers. I. Williams, Peter A. QD382.W3H35 2007 668.9—dc22 2006035213 A catalogue record for this title is available from the British Library Cover image is adapted from Steward, P.A., Hearn, J. & Wilkinson, M.C. (1995) Studies in permeation through polymer latex films. II. Permeation modification by sucrose addition.
    [Show full text]
  • LISP Session
    LISP Session Chairman: Barbara Liskov Speaker: John McCarthy Discussant: Paul Abrahams PAPER: HISTORY OF LISP John McCarthy 1. Introduction This paper concentrates on the development of the basic ideas and distinguishes two periods--Summer 1956 through Summer 1958, when most of the key ideas were devel- oped (some of which were implemented in the FORTRAN-based FLPL), and Fall 1958 through 1962, when the programming language was implemented and applied to problems of artificial intelligence. After 1962, the development of LISP became multistranded, and different ideas were pursued in different places. Except where I give credit to someone else for an idea or decision, I should be regarded as tentatively claiming credit for it or else regarding it as a consequence of previous deci- sions. However, I have made mistakes about such matters in the past, and I have received very little response to requests for comments on drafts of this paper. It is particularly easy to take as obvious a feature that cost someone else considerable thought long ago. As the writing of this paper approaches its conclusion, I have become aware of additional sources of information and additional areas of uncertainty. As a programming language, LISP is characterized by the following ideas: computing with symbolic expressions rather than numbers, representation of symbolic expressions and other information by list structure in the memory of a computer, representation of in- formation in external media mostly by multilevel lists and sometimes by S-expressions, a small
    [Show full text]
  • Flexible Supply Chain Simulation
    J. Manuel Feliz-Teixeira Flexible Supply Chain Simulation Thesis 01 MARCH 2006 Text submitted in partial fulfilment for the degree of Doctor in Sciences of Engineering Supervisor António E. S. Carvalho Brito Advisor Richard Saw RESEARCH SPONSORED BY THE: THROUGH THE: PUBLISHER: Publindústria® Produção de Comunicação, Lda. EUROPEAN UNION European Social Fund (III framework) Copyright: Ó J. Manuel Feliz-Teixeira All rights reserved First Edition: Porto, 1 March 2006 ISBN: 972-8953-04-6 Legal deposit: 239362/06 Original cover art: Jorge Pereira Publisher: Publindústria, Produção de Comunicação Pr. Da Corujeira, 38 – Apt.3825 4300-144 Porto Portugal Tel: +351.22.589.96.20 Fax: +351.22.589.96.29 Email: [email protected] URL: http://www.publindustria.pt Flexible Supply Chain Simulation Thesis J. Manuel Feliz-Teixeira* 01 March 2006 Text submitted in partial fulfilment for the degree of Doctor in Sciences of Engineering Supervisor: António E. S. Carvalho Brito Advisor: Richard Saw Research sponsored by the: European Social Fund (III framework) Through the: * Complete name: José Manuel Feliz Dias Teixeira i To my mother and my father, and my old professors of Physics. J. Manuel Feliz-Teixeira IMPORTANT NOTE: NOTA IMPORTANTE: The contents of this text are registered with the Portuguese Society of Authors and protected by the law of intellectual rights, including the copyright. No reproductions or publications are allowed without the expressed permission of the author. O conteúdo desta tese encontra-se registado na Sociedade Portuguesa de Autores e está protegido pela lei geral e específica dos direitos de autor, morais e patrimoniais (copyright). Não é permitida qualquer reprodução ou publicação sem o expresso consentimento do autor.
    [Show full text]
  • Computer Programming 1
    Computer programming 1 Computer Programming Copyright © Milo Except where noted, all text is copyright Milo. Unless otherwise specified, all materials in this book are owned by the original copyright holder. PDF version of October 2007 This PDF is version 0 from 14 October 2007. The intent of this free downloadable college text book is to attempt to directly help poor and middle class students with the high cost of college text books by providing a high quality free alternative that can be used in the classroom for a subject that most college students are required to take. This free downloadable book is based on and includes materials from http://www.OSdata.com . Materials from OSdata.com have already been used in more than 300 colleges and universities around the world and have been quoted in studies and policy decisions by the U.S. Navy and the government of the Federal Republic of Germany. This is still a work in progress. Feedback and constructive criticism appreciated (especially feedback from professors who might want to use the finished book). While this book is still being written, professors are free to use specific chapters (or portions of chapters) as class handouts to supplement existing for-profit text books. This same policy will continue to apply after the book is completed, but this policy offers usefulness for many classes right now today even though the book is still incomplete. Poor students should not feel bad about using this book for free. You are exactly who this book is intended to help. You may optionally do volunteer work for the charitable organization of your choice (not political or religious activity — actual work for a charitable organization helping the poor, the elderly, the sick, the disabled, or the environment, etc.).
    [Show full text]