Inferred System Descriptions ELS <
|
|
- Camron Elliott
- 6 years ago
- Views:
Transcription
1 Inferred System Descriptions <
2 Perspective github : nine repositories; (SLOC) = 188,758 dydra : :depends-on x 22; (SLOC) = 317,746 github : < dydra : <
3 Perspective github : nine repositories; (SLOC) = 188,758 dydra : :depends-on x 22; (SLOC) = 317,746 build systems build (1984) defsystem (1981) define-system (1984) asdf (2002) asdf (2010) asdf (2014) mkdefsystem (1990) xcvb (2009) asdf : < github : < dydra : <
4 Perspective github : nine repositories; (SLOC) = 188,758 dydra : :depends-on x 22; (SLOC) = 317,746 build systems build (1984) defsystem (1981) define-system (1984) asdf (2002) asdf (2010) asdf (2014) mkdefsystem (1990) xcvb (2009) :depends-on : why? asdf : < github : < dydra : <
5 Perspective: must it be manual? :depends-on : why? build (robbins 1984) "patching" "more precise change analysis" description of large systems (pitman 1984) "transitivity of dependency information" "tight bonding to syntax" build : < dls : <
6 Results systems
7 Perspective: should be possible? "patching" "more precise change analysis" "transitivity of dependency information" "loose bonding to syntax" LISP a programming system called LISP (for LISt Processor) LISP : <
8 Perspective: should be possible? "patching" "more precise change analysis" "transitivity of dependency information" "loose bonding to syntax" LISP a programming system called LISP (for LISt Processor) "Recursive Functions of Symbolic Expressions..." LISP : <
9 Abstraction Alternatives ignore any system definition macro-expansion just to normalize syntax emulate just package symbol identity extract relations from source code do not compile do not build do not execute
10 Abstraction Vocabulary doap : : packaged product level scro : : just conceptual structure compre : : components and depends, but no hierarchy, versions, or generation swonto : : data processing in jena iao : : the entities are too generic swo : swoinowl/inferredswo/swo_inferred.owl : overdrawn : 4338 entities sioc : : process oriented oflossc : (404) : sioc specialized for open source process code : : provides starting point
11 Abstraction Vocabulary string pathname Subclass of FaslFile (external) Namespace (external) File (external) haspart generated Package (external) Subclass of wasderiv... Compilation (external) Subclass of Subclass of Subclass of compiled datetime Subclass of endedattime SourceFile (external) Collection (external) Constituent (external) Activity Subclass of Class (external) authoredon (external) Thing filecontai... Subclass of Subclass of Subclass of Subclass of Entity (external) Operator (external) Test (external) called Subclass of Subclass of Function (external) Subclass of Subclass of Subclass of Macro (external) GenericFunction (external) hasmethod Method (external)
12 Goals identify all packages to load to use a given operator construct system based on requirements at any of three levels derive changes to load between two versions per system per file per function (test)
13 Results: Metadata
14 Results: Metadata
15 Start with Text file2 test (defun iex:function (arg) (+ (iex:method1 arg) 2)) file1 (defclass iex:class () ((slot1 :initform 1 :accessor iex:class-slot1) (slot2 :initform 2 :accessor iex:class-slot2))) (defgeneric iex:method1 (object) (:method ((object iex:class)) (+ 1 (iex:method1 (iex:class-slot1 object)))) (:method ((object t)) object)) (defmethod iex:method2 ((object iex:class)) (+ (iex:method1 object) (iex:class-slot2 object))) file2 (defun test.function1 () (eql (iex:method1 (make-instance 'iex:class)) 2)) (defun test.function2 () (eql (iex:method2 (make-instance 'iex:class)) 4)) (system :example :components ((:file "file1") (:file "file2" :depends-on "file1") (:file "file3" :depends-on "file2") (:file "test" :depends-on "file2 "file1")
16 Just the Text file2 test (defun iex:function (arg) (+ (iex:method1 arg) 2)) file1 (defclass iex:class () ((slot1 :initform 1 :accessor iex:class-slot1) (slot2 :initform 2 :accessor iex:class-slot2))) (defgeneric iex:method1 (object) (:method ((object iex:class)) (+ 1 (iex:method1 (iex:class-slot1 object)))) (:method ((object t)) object)) (defmethod iex:method2 ((object iex:class)) (+ (iex:method1 object) (iex:class-slot2 object))) file2 (defun test.function1 () (eql (iex:method1 (make-instance 'iex:class)) 2)) (defun test.function2 () (eql (iex:method2 (make-instance 'iex:class)) 4)) (system :example :components ((:file "file1") (:file "file2" :depends-on "file1") (:file "file3" :depends-on "file2") (:file "test" :depends-on "file2 "file1")
17 Abstract Symbols and Relations example Package file1.lisp haspart file2.lisp haspart file3.lisp haspart package.lisp haspart test.lisp haspart ISDF-EXAMPLE-IMPLEMENTATION contains ISDF-EXAMPLE contains ISDF-EXAMPLE-TEST contains File " T10:23:29Z"^^< authoredon CLASS CLASS-SLOT1 CLASS-SLOT2 METHOD1 METHOD1 METHOD1 " T10:22:26Z"^^< authoredon METHOD2 " T10:22:26Z"^^< authoredon FUNCTION " T10:22:26Z"^^< authoredon COMMON-LISP-USER " T10:22:26Z"^^< authoredon TEST.FUNCTION1 TEST.FUNCTION2 Namespace Class Function Method GenericFunction ISDF-EXAMPLE:CLASS-SLOT1+CLASS ISDF-EXAMPLE:CLASS-SLOT2+CLASS ISDF-EXAMPLE:METHOD2+CLASS
18 Identify Types and Relations file1.lisp file2.lisp file3.lisp test.lisp FUNCTION TEST.FUNCTION2 TEST.FUNCTION1 METHOD2 METHOD1 CLASS-SLOT2 CLASS-SLOT1
19 Establish Source References file2.lisp file1.lisp test.lisp file3.lisp METHOD2 CLASS-SLOT2 METHOD1 TEST.FUNCTION2 TEST.FUNCTION1 FUNCTION CLASS-SLOT1
20 Capabilities: Infer Source Requirements file2.lisp file1.lisp file3.lisp test.lisp
21 Process : Quicklisp as Corpus $ ls /tmp/quicklisp/ wc -l 1669 $ ls quicklisp/versions/ / wc -l 1317 $ find quicklisp/versions/ / -name '*.asd' wc -l 3134 $ find quicklisp/versions/ / -name '*' - d wc -l 5839 $ find quicklisp/versions/ / -name '*.asd' \ while read dir; do dirname $dir; done \ sort uniq wc -l 1670 $ find quicklisp/versions/ / -name '*.lisp' wc -l $/development/source/library/org/quicklisp/versions/ # sloccount.... Total Physical Source Lines of Code (SLOC) = 4,307,928
22 Process : Crawl Source Code * (time (scm:abstract-system (ensure-system "quicklisp" :location #p"quicklisp/versions/ /"))) Evaluation took: seconds of real time seconds of total run time ( user, system) [ Run times consist of seconds GC time, and seconds non-gc time. ] 14.83% CPU 3,444,829 forms interpreted 17 lambdas converted 7,624,481,182,395 processor cycles 5,746,702,672 bytes consed * (/ ) *
23 Process : Result Repository
24 Process : Infer Dependency prefix ssd: < prefix code: < clear silent graph <urn:dydra:file-requirements> ; insert { graph <urn:dydra:file-requirements> {?definitionsource ssd:?referencesource } } where{ select?definitionsource?referencesource where { graph?package {?definitionsource code:?definition. # eliminate function/function definitions?definitionsource a < code:?reference.?referencesource a < code:?definition. filter(?definitionsource!=?referencesource ) } } }
25 Process : Infer Dependency prefix ssd: < prefix code: < clear silent graph <urn:dydra:system-requirements> ; insert { graph <urn:dydra:system-requirements> {?definitionpackage ssd:?referencepackage.?referencepackage ssd:requires?definitionpackage } } where{ select?definitionpackage?referencepackage where { { graph?definitionpackage {?definitionsource code:?definition.?definitionsource a < # eliminate function/function definitions } } { graph?referencepackage {?referencesource code:?reference.?referencesource a < code:?definition. } } filter (?definitionpackage!=?referencepackage) } }
26 Results: Quicklisp Graphs * (quicklisp-sparql " select?p (count(?o) as?count) FROM <urn:dydra:all> where {?s?p?o } group by?p order by desc(?count)" :message "predicate count") predicate count p count < label < < comment < < < < < endedattime 10 generated 10 used 10 wasderivedfrom 10
27 Results: Quicklisp Graphs * (quicklisp-sparql " select count(*) where { graph <urn:dydra:file-requirements> {?s?p?o} }" :message "intra-system file cross-references") intra-system file cross-references COUNT
28 Results: Quicklisp Graphs * (quicklisp-sparql " prefix ssd: < select count(*) where { graph <urn:dydra:system-requirements> {?s ssd:requires?o} }" :message "inter-system cross-references") inter-system cross-references COUNT * (quicklisp-sparql " prefix ssd: < select count(*) where { graph <urn:dydra:system-requirements> {?s ssd:?o} }" :message "inter-system cross-references") inter-system cross-references COUNT
29 BKNR: Infer Source Requirements blob.lisp tests.lisp xml-tutorial.lisp object-tests.lisp category-index.lisp xml-object.lisp xml-update.lisp xml-export.lisp tutorial.lisp object.lisp actor.lisp tutorial.lisp indices-tests.lisp xml-import.lisp convert.lisp txn.lisp encoding-test.lisp acl-mp-compat.lisp indices.lisp xml-class.lisp reader.lisp encoding.lisp runtime-statistics.lisp class.lisp capability.lisp skip-list.lisp indexed-class.lisp money.lisp utils.lisp protocol.lisp dump-core.lisp fswrap.lisp mop-bug.lisp shop.lisp slot-a LISP : <
30 BKNR: Load Order * (bknr-sparql " prefix ssd: < prefix prov: < prefix pav: < prefix code: < select distinct?loadfilename?dependentsource #?sequencenr from <urn:dydra:all> where { { select * where { bind ( ' T00:00:00Z'^^xsd:dateTime as?system_load_time ) { select?source where {?source a < optional {?othersource ssd:?source } filter (!bound(?othersource) ) } }?source ssd:+?dependentsource. bind (rdf:seq(xsd:integer) as?sequencenr ) } }?source pav:authoredon?timemodified. filter (?timemodified >?SYSTEM_LOAD_TIME )?dependentsource code:location?sourcepathname.?dependentsource pav:authoredon?sourcetime.?dependentsource rdfs:label?sourcefile. optional { [] prov:used?dependentsource ; prov:generated?dependentbinary ; prov:endedattime?binarytime.?dependentbinary code:location?binarypathname.?dependentbinary rdfs:label?binaryfile. } bind (if( bound(?binarytime), if ((?binarytime >?sourcetime),?binaryfile,?sourcefile ),?sourcefile ) as?loadfilename ) } order by desc(?sequencenr) " :message "source/binary load list (but absent binaries)")
31 BKNR: Load Order source/binary load list (but absent binaries) loadfilename dependentsource convert.lisp encoding-test.lisp object.lisp txn.lisp blob.lisp object-tests.lisp tests.lisp tutorial.lisp encoding.lisp xml-object.lisp xml-tutorial.lisp xml-export.lisp xml-import.lisp xml-update.lisp indices.lisp xml-class.lisp category-index.lisp indexed-class.lisp indices-tests.lisp tutorial.lisp capability.lisp class.lisp actor.lisp NIL *
32 Deficiencies macros ambiguous packages : non-universal symbols non-lisp syntax ".lisp" file content colleen git/sample.uc.lisp bknr-datastore git/src/xml-impex/tutorial.lisp read-eval read-time, compile-time, load-time, run-time no tracking for defparameter/-constant/-var circularity implicit package definitions ambiguous methods call sites
33 Deficiencies macros ambiguous packages : non-universal symbols non-lisp syntax ".lisp" file content colleen git/sample.uc.lisp bknr-datastore git/src/xml-impex/tutorial.lisp read-eval read-time, compile-time, load-time, run-time no tracking for defparameter/-constant/-var circularity implicit package definitions ambiguous methods call sites
34 Deficiencies : ambiguous methods bknr-datastore git/src/indices-tests.lisp (defmethod run-test :around ((test index-test-class) &optional (output *debug-io*))... ) unit-test git/unit-test.lisp (defun run-all-tests (&key (verbose nil) (output *standard-output*) (unit :all)) (let (*unit-test-results*) (run-test test output)... ) would require either propagation or run-time instrumentation to distinguish specific methods for call sites.
35 Thank you <
Object Oriented Programming (OOP)
Object Oriented Programming (OOP) o New programming paradigm o Actions Objects o Objects Actions o Object-oriented = Objects + Classes + Inheritance Imperative programming o OOP (Object-Oriented Programming)
More informationCommon Lisp Object System Specification. 1. Programmer Interface Concepts
Common Lisp Object System Specification 1. Programmer Interface Concepts Authors: Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon. Draft Dated:
More informationCustom Specializers in Object-Oriented Lisp
Custom Cadence Design Systems Goldsmiths, University of London 23rd May 2008 Common : Skill: Unification of various dialects; Not dead yet. Common Skill Internal dialect from Cadence Design Systems; Extension
More informationLoading Multiple Versions of an ASDF System in the Same Lisp Image
Loading Multiple Versions of an ASDF System in the Same Lisp Image Vsevolod Domkin 10 th European Lisp Symposium 2017-04-03 It all started with... I'm yet to see a name conflict in Lisp that can't be solved
More informationNST: A Unit Test Framework for Common Lisp
Smart Information Flow Technologies (SIFT, LLC) TC-lispers, June 9, 2009 Outline 1 Unit testing 2 3 The basic idea Early implementations, and other lessons How it maybe should work 4 What is unit testing?
More informationObject oriented programming
Object oriented programming The main ideas behind object-oriented programming: the same type of action may be carried out differently on different types of objects cutting a cake is different from cutting
More informationDebugging in LISP. trace causes a trace to be printed for a function when it is called
trace causes a trace to be printed for a function when it is called ;;; a function that works like reverse (defun rev (list) (cons (first (last list)) (rev (butlast list)))) USER: (trace rev) ; note trace
More informationA Genetic Algorithm Implementation
A Genetic Algorithm Implementation Roy M. Turner (rturner@maine.edu) Spring 2017 Contents 1 Introduction 3 2 Header information 3 3 Class definitions 3 3.1 Individual..........................................
More informationA Brief Introduction to Common Lisp
A Brief Introduction to Common Lisp David Gu Schloer Consulting Group david_guru@gty.org.in A Brief History Originally specified in 1958, Lisp is the second-oldest highlevel programming language in widespread
More information1 CLWEB INTRODUCTION 1
1 CLWEB INTRODUCTION 1 1. Introduction. This is CLWEB, a literate programming system for Common Lisp by Alex Plotnick plotnick@cs.brandeis.edu. It is modeled after the CWEB system by Silvio Levy and Donald
More informationA Small Interpreted Language
A Small Interpreted Language What would you need to build a small computing language based on mathematical principles? The language should be simple, Turing equivalent (i.e.: it can compute anything that
More informationInfinite transducers on terms denoting graphs
Infinite transducers on terms denoting graphs Irène Durand and Bruno Courcelle LaBRI, Université de Bordeaux June, 2013 European Lisp Symposium, ELS2013 2/30 Objectives What : Compute information about
More informationCustom Specializers in Object-Oriented Lisp
Journal of Universal Computer Science, vol. 14, no. 20 (2008), 3370-3388 submitted: 23/6/08, accepted: 24/8/08, appeared: 28/11/08 J.UCS Custom Specializers in Object-Oriented Lisp Jim Newton (Cadence
More informationArtificial Intelligence Programming
Artificial Intelligence Programming Rob St. Amant Department of Computer Science North Carolina State University Lisp basics NC State University 2 / 99 Why Lisp? Some recent Lisp success stories include
More informationA little bit of Lisp
B.Y. Choueiry 1 Instructor s notes #3 A little bit of Lisp Introduction to Artificial Intelligence CSCE 476-876, Fall 2017 www.cse.unl.edu/~choueiry/f17-476-876 Read LWH: Chapters 1, 2, 3, and 4. Every
More information2. Reasons for implementing clos-unit
A CLOS Implementation of the JUnit Testing Framework Architecture: A Case Study Sandro Pedrazzini Canoo Engineering AG sandro.pedrazzini@canoo.com Abstract There are different reasons why you would like
More informationCL-STORE: CL Serialization Package
CL-STORE: CL Serialization Package Copyright c (c) (C) 2004 Sean Ross All rights reserved. Redistribution and use in source and binary forms, with or without modication, are permitted provided that the
More informationCommon LISP Tutorial 1 (Basic)
Common LISP Tutorial 1 (Basic) CLISP Download https://sourceforge.net/projects/clisp/ IPPL Course Materials (UST sir only) Download https://silp.iiita.ac.in/wordpress/?page_id=494 Introduction Lisp (1958)
More informationStructure Programming in Lisp. Shared Structure. Tailp. Shared Structure. Top-Level List Structure
Structure 66-2210-01 Programming in Lisp Lecture 6 - Structure; ase Study: locks World Lisp's use of pointers Let you put any value anywhere Details are taken care of by the Lisp interpreter What goes
More informationINF4820: Algorithms for Artificial Intelligence and Natural Language Processing. More Common Lisp
INF4820: Algorithms for Artificial Intelligence and Natural Language Processing More Common Lisp Stephan Oepen & Murhaf Fares Language Technology Group (LTG) September 6, 2017 Agenda 2 Previously Common
More informationASDF: Another System Definition Facility. Manual for Version
ASDF: Another System Definition Facility Manual for Version 3.3.1.2 This manual describes ASDF, a system definition facility for Common Lisp programs and libraries. You can find the latest version of this
More informationImplementing Symmetric Multiprocessing in LispWorks
Implementing Symmetric Multiprocessing in LispWorks Making a multithreaded application more multithreaded Martin Simmons, LispWorks Ltd Copyright 2009 LispWorks Ltd Outline Introduction Changes in LispWorks
More informationPattern Matching WIlensky Chapter 21
Pattern Matching WIlensky Chapter 21 PM-1 Pattern Matching A ubiquitous function in intelligence is pattern matching» IQ tests, for example, contain pattern matching problems because they are recognized
More informationMethod Combinators. e ELS 2018 E. Didier Verna. EPITA / LRDE. Introduction Issues SBCL Combinators CGFs Alt. MCs Perfs Conclusion
Method Combinators e ELS 2018 E Didier Verna EPITA / LRDE didier@lrde.epita.fr lrde/~didier @didierverna didier.verna google+ in/didierverna Introduction CLOS improvements over mainstream object systems
More informationINF4820. Common Lisp: Closures and Macros
INF4820 Common Lisp: Closures and Macros Erik Velldal University of Oslo Oct. 19, 2010 Erik Velldal INF4820 1 / 22 Topics for Today More Common Lisp A quick reminder: Scope, binding and shadowing Closures
More informationCOSI: Adding Constraints to the object-oriented paradigm
COSI: Adding Constraints to the object-oriented paradigm Gary Curtis, Mark Giuliano Space Telescope Science Institute, 3700 San Martin Drive, Baltimore, MD 21218 I. Overview Trans [1] is a Lisp system
More informationLP/LispLite: Trivial Lisp Org Mode Conversion
LP/LispLite: Trivial Lisp Org Mode Conversion Roy M. Turner Spring 2016 Contents 1 Introduction 3 2 Using the tool 3 3 Header/miscellaneous 3 4 Variables/parameters 4 4.1 Variable: =*short-comment-start-regexp*........................
More informationThe Users Guide. and. API Reference
McCLIM User s Manual The Users Guide and API Reference Copyright c 2004,2005,2006,2007,2008,2017 the McCLIM hackers. i Table of Contents Introduction......................................... 1 Standards...........................................................
More informationCSCE476/876 Fall Homework 3: Programming Assignment Using Emacs and Common Lisp. 1 Exercises (15 Points) 2. 2 Find (6 points) 4
CSCE476/876 Fall 2018 Homework 3: Programming Assignment Using Emacs and Common Lisp Assigned on: Monday, September 10 th, 2018. Due: Monday, September 24 th, 2018. Contents 1 Eercises (15 Points) 2 2
More informationCustom Specializers in Object-Oriented Lisp
Custom Specializers in Object-Oriented Lisp Jim Newton Cadence Design Systems Mozartstrasse 2 D-85622 Feldkirchen Germany jimka@cadence.com Christophe Rhodes Department of Computing Goldsmiths, University
More informationSimple Dynamic Compilation with GOO. Jonathan Bachrach. MIT AI Lab 01MAR02 GOO 1
Simple Dynamic Compilation with GOO Jonathan Bachrach MIT AI Lab 01MAR02 GOO 1 GOO Talk Preliminary work Introduce challenge Present GOO Introduce language Sketch implementation Report status Request Quick
More informationLISP. Everything in a computer is a string of binary digits, ones and zeros, which everyone calls bits.
LISP Everything in a computer is a string of binary digits, ones and zeros, which everyone calls bits. From one perspective, sequences of bits can be interpreted as a code for ordinary decimal digits,
More information15 Unification and Embedded Languages in Lisp
15 Unification and Embedded Languages in Lisp Chapter Objectives Chapter Contents Pattern matching in Lisp: Database examples Full unification as required for Predicate Calculus problem solving Needed
More informationEffective Audit Trail of Data With PROV-O Scott Henninger, Senior Consultant, MarkLogic
Effective Audit Trail of Data With PROV-O Scott Henninger, Senior Consultant, MarkLogic COPYRIGHT 13 June 2017MARKLOGIC CORPORATION. ALL RIGHTS RESERVED. EFFECTIVE AUDIT TRAIL WITH PROV-O Operationalizing
More informationINF4820: Algorithms for Artificial Intelligence and Natural Language Processing. Common Lisp Fundamentals
INF4820: Algorithms for Artificial Intelligence and Natural Language Processing Common Lisp Fundamentals Stephan Oepen & Murhaf Fares Language Technology Group (LTG) August 30, 2017 Last Week: What is
More informationDocumentation for LISP in BASIC
Documentation for LISP in BASIC The software and the documentation are both Copyright 2008 Arthur Nunes-Harwitt LISP in BASIC is a LISP interpreter for a Scheme-like dialect of LISP, which happens to have
More informationAllegro CL Certification Program
Allegro CL Certification Program Lisp Programming Series Level I Presented by 1 About David Margolies Manager, Documentation, Franz Inc Been working with Lisp since 1984 dm@franz.com 2 About Franz Inc.
More informationSymbolic Programming. Dr. Zoran Duric () Symbolic Programming 1/ 89 August 28, / 89
Symbolic Programming Symbols: +, -, 1, 2 etc. Symbolic expressions: (+ 1 2), (+ (* 3 4) 2) Symbolic programs are programs that manipulate symbolic expressions. Symbolic manipulation: you do it all the
More informationMulti-Methods in Racket
Multi-Methods in Racket António Menezes Leitão April, 18, 2013 1 Introduction Multi-methods are an advanced concept that extends the single dispatch approach that is used in the majority of object-oriented
More informationMeet the Macro. a quick introduction to Lisp macros. Patrick Stein / TC Lisp Users Group /
Meet the Macro a quick introduction to Lisp macros Patrick Stein / TC Lisp Users Group / 2009-07-14 Attack Plan Some other things called macros First look at Lisp macros More advanced macros Uh-oh, my
More informationBinary Methods Programming: the Clos Perspective
Journal of Universal Computer Science, vol. 14, no. 20 (2008), 3389-3411 submitted: 23/6/08, accepted: 24/8/08, appeared: 28/11/08 J.UCS Binary Methods Programming: the Clos Perspective Didier Verna (Epita
More informationASDF: Another System Definition Facility
ASDF: Another System Definition Facility This manual describes ASDF, a system definition facility for Common Lisp programs and libraries. You can find the latest version of this manual at http://common-lisp.net/project/
More informationUsing a waiting protocol to separate concerns in the mutual exclusion problem
Using a waiting protocol to separate concerns in the mutual exclusion problem Frode V. Fjeld frodef@cs.uit.no Department of Computer Science, University of Tromsø Technical Report 2003-46 November 21,
More informationSemantic Web Fundamentals
Semantic Web Fundamentals Web Technologies (706.704) 3SSt VU WS 2017/18 Vedran Sabol with acknowledgements to P. Höfler, V. Pammer, W. Kienreich ISDS, TU Graz December 11 th 2017 Overview What is Semantic
More informationCommon Lisp in the Wild
Common Lisp in the Wild Deploying Common Lisp Applications Wimpie Nortje Copyright c 2016,2017 Wimpie Nortje PUBLISHED BY WIMPIE NORTJE WWW.DARKCHESTNUT.COM Revision 2: March 27, 2017 1. Introduction Common
More informationStream Reasoning Workshop Technical University Berlin SR2016
Stream Reasoning Workshop Technical University Berlin SR2016 James Anderson Tara Athan @dydradata @lomoramic
More informationUIOP is a part of ASDF ( which is released under an MIT style License: Copyright c Daniel Barlow and
UIOP Manual UIOP is a part of ASDF (https://common-lisp.net/project/asdf/), which is released under an MIT style License: Copyright c 2001-2018 Daniel Barlow and contributors. Permission is hereby granted,
More informationFunctional Programming. Pure Functional Languages
Functional Programming Pure functional PLs S-expressions cons, car, cdr Defining functions read-eval-print loop of Lisp interpreter Examples of recursive functions Shallow, deep Equality testing 1 Pure
More informationCarnegie Mellon University. Pittsburgh, PA April This research has been supported in part by the Advanced Research
PORK Object System Programmers' Guide Ora Lassila CMU-RI-TR-95-12 The Robotics Institute Carnegie Mellon University Pittsburgh, PA 15213 April 1995 c 1995 Ora Lassila This research has been supported in
More informationCOMPUTER SCIENCE TRIPOS
CST.2011.3.1 COMPUTER SCIENCE TRIPOS Part IB Monday 6 June 2011 1.30 to 4.30 COMPUTER SCIENCE Paper 3 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.
More informationCS 480. Lisp J. Kosecka George Mason University. Lisp Slides
CS 480 Lisp J. Kosecka George Mason University Lisp Slides Symbolic Programming Symbols: +, -, 1, 2 etc. Symbolic expressions: (+ 1 2), (+ (* 3 4) 2) Symbolic programs are programs that manipulate symbolic
More informationIntroduction to ACL2. CS 680 Formal Methods for Computer Verification. Jeremy Johnson Drexel University
Introduction to ACL2 CS 680 Formal Methods for Computer Verification Jeremy Johnson Drexel University ACL2 www.cs.utexas.edu/~moore/acl2 ACL2 is a programming language, logic, and theorem prover/checker
More informationExtending Pattern Directed Inference Systems. EECS 344 Winter 2008
Extending Pattern Directed Inference Systems EECS 344 Winter 2008 Extending the basic PDIS model How to increase the convenience of the system How to increase the logical power of the system How to increase
More informationCommon Lisp. Blake McBride
Contents Common Lisp Blake McBride (blake@mcbride.name) 1 Data Types 2 2 Numeric Hierarchy 3 3 Comments 3 4 List Operations 4 5 Evaluation and Quotes 5 6 String Operations 5 7 Predicates 6 8 Math Predicates
More informationCSE413: Programming Languages and Implementation Racket structs Implementing languages with interpreters Implementing closures
CSE413: Programming Languages and Implementation Racket structs Implementing languages with interpreters Implementing closures Dan Grossman Fall 2014 Hi! I m not Hal J I love this stuff and have taught
More informationFiltered Dispatch ABSTRACT. Categories and Subject Descriptors. Keywords
Filtered Dispatch Pascal Costanza Jorge Vallejos Charlotte Herzeel Theo D Hondt Programming Technology Lab Vrije Universiteit Brussel B-1050 Brussels, Belgium pascal.costanza charlotte.herzeel jorge.vallejos
More informationGeneric Function Parameter and Method Parameter Metaobjects: A Proposed Enhancement to the CLOS Metaobject Protocol. Eric L.
Generic Function Parameter and Method Parameter Metaobjects: A Proposed Enhancement to the CLOS Metaobject Protocol Eric L. Peterson Articial Intelligence Technologies Center MITRE Corporation 1820 Dolley
More informationThe OWL API: An Introduction
The OWL API: An Introduction Sean Bechhofer and Nicolas Matentzoglu University of Manchester sean.bechhofer@manchester.ac.uk OWL OWL allows us to describe a domain in terms of: Individuals Particular objects
More informationa little more on macros sort of like functions, but..
a little more on macros 1 sort of like functions, but.. one of the most interesting but tricky aspects of Lisp. unlike functions, macros don't evaluate their arguments; they compute on unevaluated expressions
More informationRecursive Functions of Symbolic Expressions and Their Computation by Machine Part I
Recursive Functions of Symbolic Expressions and Their Computation by Machine Part I by John McCarthy Ik-Soon Kim Winter School 2005 Feb 18, 2005 Overview Interesting paper with By John Mitchell Interesting
More informationASDF 3, or Why Lisp is Now an Acceptable Scripting Language
ASDF 3, or Why Lisp is Now an Acceptable Scripting Language (Extended version) François-René Rideau Google tunes@google.com Abstract ASDF, the de facto standard build system for Common Lisp, has been vastly
More information4. Functional Programming Language-Oriented Programming
4. Functional Programming Language-Oriented Programming Prof. Dr. Bernhard Humm Faculty of Computer Science Hochschule Darmstadt University of Applied Sciences 1 Retrospect: LOP the big picture What is
More informationJatha. Common Lisp in Java. Ola Bini JRuby Core Developer ThoughtWorks Studios.
Jatha Common Lisp in Java Ola Bini JRuby Core Developer ThoughtWorks Studios ola.bini@gmail.com http://olabini.com/blog Common Lisp? Common Lisp? ANSI standard Common Lisp? ANSI standard Powerful Common
More informationFunctional Programming. Big Picture. Design of Programming Languages
Functional Programming Big Picture What we ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What s next: Functional Programming Languages Semantics
More informationIs Linked Data the future of data integration in the enterprise?
Is Linked Data the future of data integration in the enterprise? John Walker Email: john.walker@nxp.com Twitter: @NXPdata Pilot Linked Open Data NXP is a semiconductor (microchip) manufacturer Established:
More informationFunctional Programming. Pure Functional Languages
Functional Programming Pure functional PLs S-expressions cons, car, cdr Defining functions read-eval-print loop of Lisp interpreter Examples of recursive functions Shallow, deep Equality testing 1 Pure
More informationDynamic ADTs: a don t ask, don t tell policy for data abstraction
Dynamic ADTs: a don t ask, don t tell policy for data abstraction Geoff Wozniak Dept. of Computer Science University of Western Ontario London, Ontario, Canada wozniak@csd.uwo.ca Mark Daley Depts. of Computer
More informationCSCC24 Functional Programming Scheme Part 2
CSCC24 Functional Programming Scheme Part 2 Carolyn MacLeod 1 winter 2012 1 Based on slides from Anya Tafliovich, and with many thanks to Gerald Penn and Prabhakar Ragde. 1 The Spirit of Lisp-like Languages
More informationCSE 341 Section 7. Ethan Shea Autumn Adapted from slides by Nicholas Shahan, Dan Grossman, Tam Dang, and Eric Mullen
CSE 341 Section 7 Ethan Shea Autumn 2018 Adapted from slides by Nicholas Shahan, Dan Grossman, Tam Dang, and Eric Mullen Outline Interpreting MUPL Assume Correct Syntax Check for Correct Semantics Evaluating
More informationDepartment of Computer and information Science Norwegian University of Science and Technology
Department of Computer and information Science Norwegian University of Science and Technology http://www.idi.ntnu.no/ A Crash Course in LISP MNFIT272 2002 Anders Kofod-Petersen anderpe@idi.ntnu.no Introduction
More information6.184 Lecture 4. Interpretation. Tweaked by Ben Vandiver Compiled by Mike Phillips Original material by Eric Grimson
6.184 Lecture 4 Interpretation Tweaked by Ben Vandiver Compiled by Mike Phillips Original material by Eric Grimson 1 Interpretation Parts of an interpreter Arithmetic calculator
More informationNOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or
NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying
More informationCIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)
By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable
More informationFunctional Programming. Pure Functional Programming
Functional Programming Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends only on the values of its sub-expressions (if any).
More informationAre functional languages a good way to represent productive meta models?
Are functional languages a good way to represent productive meta models? Rainbow Team, I3S Lab, CNRS University of Nice, France http://rainbow.i3s.unice.fr 4 th European Lisp Workshop ECOOP 07, 07/30/2007,
More informationAdding formal semantics to the Web
Adding formal semantics to the Web building on top of RDF Schema Jeen Broekstra On-To-Knowledge project Context On-To-Knowledge IST project about content-driven knowledge management through evolving ontologies
More informationCSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009
CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable
More informationA Survey of Current CLOS MOP Implementations
A Survey of Current CLOS MOP Implementations Raymond de Lacaze Artificial Intelligence Center SRI International 333 Ravenswood Ave. Menlo Park, CA 9402 delacaze@ai.sri.com Tim Bradshaw Cley Limited 6 East
More informationVisual Lisp/CLOS Programming in OpenMusic
Visual Lisp/CLOS Programming in OpenMusic Jean Bresson. Carlos Agon. Gérard Assayag IRCAM - CNRS UMR STMS Music Representation Research Group Paris, France. This is a preliminary version of the article
More informationOrchestrating Music Queries via the Semantic Web
Orchestrating Music Queries via the Semantic Web Milos Vukicevic, John Galletly American University in Bulgaria Blagoevgrad 2700 Bulgaria +359 73 888 466 milossmi@gmail.com, jgalletly@aubg.bg Abstract
More informationLisp as a second language, composing programs and music. Chapter III Object-Oriented Style I
1 of 69 05/07/2018, 11:36 [an error occurred while processing this directive] Lisp as a second language, composing programs and music. Peter Desain and Henkjan Honing Chapter III Object-Oriented Style
More information19 Machine Learning in Lisp
19 Machine Learning in Lisp Chapter Objectives Chapter Contents ID3 algorithm and inducing decision trees from lists of examples. A basic Lisp implementation of ID3 Demonstration on a simple credit assessment
More informationCSE 341 Section 7. Eric Mullen Spring Adapted from slides by Nicholas Shahan, Dan Grossman, and Tam Dang
CSE 341 Section 7 Eric Mullen Spring 2017 Adapted from slides by Nicholas Shahan, Dan Grossman, and Tam Dang Outline Interpreting LBI (Language Being Implemented) Assume Correct Syntax Check for Correct
More informationFunctional programming with Common Lisp
Functional programming with Common Lisp Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 81 Expressions and functions
More informationHistory. Functional Programming. Based on Prof. Gotshalks notes on functionals. FP form. Meaningful Units of Work
History Functional Programming Based on Prof. Gotshalks notes on functionals 1977 Turing 1 Lecture John Backus described functional programming The problem with current languages is that they are word-at-a-time
More informationImplementing and extending SPARQL queries over DLVHEX
Implementing and extending SPARQL queries over DLVHEX Gennaro Frazzingaro Bachelor Thesis Presentation - October 5, 2007 From a work performed in Madrid, Spain Galway, Ireland Rende, Italy How to solve
More informationFunctions, Conditionals & Predicates
Functions, Conditionals & Predicates York University Department of Computer Science and Engineering 1 Overview Functions as lambda terms Defining functions Variables (bound vs. free, local vs. global)
More informationhttps://asd-pa.perfplusk12.com/admin/admin_curric_maps_display.aspx?m=5507&c=618&mo=18917&t=191&sy=2012&bl...
Page 1 of 13 Units: - All - Teacher: ProgIIIJavaI, CORE Course: ProgIIIJavaI Year: 2012-13 Intro to Java How is data stored by a computer system? What does a compiler do? What are the advantages of using
More informationSection 10: LISP to Scheme. Evolution of Software Languages
Section Evolution of Software Languages Theo D'Hondt Bachelor of Computer Science Faculty of Sciences and Bio-Engineering Sciences Vrije Universiteit Brussel Academic Year 2015-2016 Evolution of Software
More informationSemantic Web Fundamentals
Semantic Web Fundamentals Web Technologies (706.704) 3SSt VU WS 2018/19 with acknowledgements to P. Höfler, V. Pammer, W. Kienreich ISDS, TU Graz January 7 th 2019 Overview What is Semantic Web? Technology
More informationSet Partitions Iterator
Set Partitions Iterator Patrick Stein March 26, 2008 Contents 1 The set-partition-iterator class 1 1.1 Packaging............................... 2 1.2 Slots.................................. 2 1.3 Constructor..............................
More informationLambda Calculus. Gunnar Gotshalks LC-1
Lambda Calculus LC-1 l- Calculus History Developed by Alonzo Church during 1930 s-40 s One fundamental goal was to describe what can be computed. Full definition of l-calculus is equivalent in power to
More informationTH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo
TH IRD EDITION Python Cookbook David Beazley and Brian K. Jones O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface xi 1. Data Structures and Algorithms 1 1.1. Unpacking
More informationFUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 4. LISP: PROMĚNNÉ, DALŠÍ VLASTNOSTI FUNKCÍ, BLOKY, MAPOVACÍ FUNKCIONÁLY, ITERAČNÍ CYKLY,
FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 4. LISP: PROMĚNNÉ, DALŠÍ VLASTNOSTI FUNKCÍ, BLOKY, MAPOVACÍ FUNKCIONÁLY, ITERAČNÍ CYKLY, 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší
More informationVanilla Lisp Shell (VLS)
Vanilla Lisp Shell (VLS) Copyright c 2001 William Paul Vrotney i Table of Contents 1 Introduction............................... 2 2 Notation Conventions...................... 3 3 Getting Started............................
More informationWeb of Data: P2P Business domain translation of problem spaces. Semantic Business Integration (WIP draft)
Web of Data: P2P Business domain translation of problem spaces. Semantic Business Integration (WIP draft) 2017. Sebastian Samaruga ( ssamarug@gmail.com ) Copyright (c) 2017 Sebastian Samaruga Permission
More information(defvar *state* nil "The current state: a list of conditions.")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; GPS engine for blocks world ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar *dbg-ids* nil "Identifiers used by dbg") (defvar *state* nil "The current state: a list of conditions.")
More informationVisual Lisp/CLOS Programming in OpenMusic
Visual Lisp/CLOS Programming in OpenMusic Jean Bresson. Carlos Agon. Gérard Assayag IRCAM - CNRS UMR STMS Music Representation Research Group Paris, France. This is a preliminary version of the article
More informationSemantic Queries and Mediation in a RESTful Architecture
Semantic Queries and Mediation in a RESTful Architecture John Gilman - Dir. Architecture and Engineering Blue Shield of California Matt Fisher Sr. Systems Engineer Progeny Systems Mike Dean Principle Engineer
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 16: Functional Programming Zheng (Eddy Zhang Rutgers University April 2, 2018 Review: Computation Paradigms Functional: Composition of operations on data.
More information