ECEN 5623 RT Embedded Systems

Total Page:16

File Type:pdf, Size:1020Kb

ECEN 5623 RT Embedded Systems CS 332 Programming Language Concepts Lecture 11 – Alternative Programming Languages (Functional – LISP Declarative Logical - PROLOG) March 17, 2020 Sam Siewert Reminders Exercise #4 - Your PL study proposals!! - Pair Up if you Like – Williams, Laurie, et al. "Strengthening the case for pair programming." IEEE software 17.4 (2000): 19-25. [Canvas] – 4 Objective Measure, 4 Subjective vs. 3 Objective, 3 Subjective Exercise #5 - work on project, firm up your proposal Exercise #6 - is your Final Report Exam #2, Last Week of Class, Review Before Final Exam – Your Presentation – Team or Individual Analysis or Mini-Alternate Programming Language – Submit report and slides – Make video for slides or walk-through them with me on Skype Sam Siewert 2 Extra Credit – Updated Dijkstra Flag Problem Correct spelling of Dijkstra! (please) Dutch, French, and Czech flag require sorting of equal numbers of Red, Blue and White pixels in a PPM (flags) See Assignment #3 for Extra Credit - Turn in Anytime ¾ R, W 3/8 Red 3/8 White ¼ Blue By inspection Sam Siewert 3 Quick Note on Lab #4, Part 3 Hybrid Concept What I asked for is Not Natural! Sort, Add/Delete Like a Linked List, Dump Like Memory Encapsulate Linked-List and Array in a Single Object and/or Instantiate with Either? How Does One Do this? OO? Many Options, Here’s a Few, Take an Approach 1. One Class with Methods the Encapsulates Both An Array Hybrid Prototype - Outcome and Linked List (to provide both behaviors) 2. Make your Linked-List Object Work like an Array (Best Done with C++ where you can Overload “[]”) and Use Methods In Place of Array 3. Hybrid Data Structure – Array with Linked List of Pointers to It! – So Called Write-Anywhere Scheme with Data Map 4. …? http://www.popsci.com/article/cars/will-helicopter-truck-fly Sam Siewert 4 Quick Note: Research vs. Development Vision, Objectives, Goals NSF (OMB) – Acquisition of Knowledge "Research" is defined as a systematic study – Requirements Less Emphasized, To Be directed toward fuller scientific knowledge or Determined understanding of the subject studied. Research is classified as either basic or applied, according – Proof-of-Concept and Prototypes to the objectives of the investigator. Emphasized – Repeatability of Results, Both Expected "Development" is the systematic use of and Unexpected knowledge and understanding gained from research directed toward the production of useful materials, devices, systems, or Experimental Research methods, including design and development – Emphasis on Validation & Verification of prototypes and processes. – Design of Experiments (PL Compare) DoD – Data Analysis Theoretical Research – Models – Mathematical, Logical, Statistical, Probability, Simulation – Analysis of Problems and Domains Sam Siewert https://www.rand.org/content/dam/rand/pubs/monograph_reports/MR1194/MR1194.appb.pdf 5 Simple View of Research [R&D] Acquisition of Knowledge – Theory or Experiment Defined by Existing Knowledge and Expectations E.g., What Alternate Programming Language might fit my Project? Development Innovation / Adv. Tech Applied Basic • Well-known (standard) • Recombination of well-known • Expectations • Nobody knows • Specified application • Specified application • Misconceptions • No application • Assumptions • Specific Problem or Class Spectrum Sam Siewert 6 Functional PL Concepts Based on Lambda Calculus Output is Math Function of Inputs with No Internal State, No Side Effects – Lambda Calculus Also Used to Specify PL Semantics (Denotational Semantics) – Nested Functions and Recursion – Everything is a Function, Including Data (Much like Everything is and Object in OOP) Common Lisp – Symbolic AI, Functional Core – Online C-Lisp Book/Manual – Syntax Overview Haskell – Purely Functional Sam Siewert 7 LISP has a Long History Introduced in 1955 (longest lived PL along with FORTRAN) Many dialects and embedded use in tools Examples: LISP in Emacs LISP in AutoCAD https://en.wikipedia.org/wiki/Lisp_(programming_language) Sam Siewert 8 Using Scheme on PRClab or PC LISP Interpreter (E.g. GNU Common LISP, Steel Bank) C-Lisp Most Widely Used Numerous Lisp Variants – E.g. Scheme – sudo apt-get install scm – Good so you can follow along in Chapter 10, PLP On PRClab, Use Gambit Scheme Interpreter Sam Siewert 9 Lisp Basics – Winston & Horn (setf friends '(dick jane sally)) t Tested in friends nil C-Lisp (setf enemies '(troll grinch ghost)) pi (setf enemies (remove 'ghost enemies)) (append alist blist) enemies (length alist) (setf friends (cons 'ghost friends)) (reverse alist) friends (setf sam '((height 6.1) (defun newfriend (name) (weight 210))) (setf enemies (remove name enemies)) (assoc 'height sam) (setf friends (cons name friends))) (setf nlist '(1 2 3 4 5 6 7 120)) (first '(a b c)) (max 1 2 3 4 5 6 122) (rest '(a b c)) ; parallel let (rest '(c)) (setf x 'outside) (first (rest '(a b c))) (let ((x 'inside) (first '(rest (a b c))) (y x)) (car '(a b c)) (list x y)) (cdr '(a b c)) ; sequential let (cadr '(a b c)) (setf x 'outside) (second '(a b c)) (let* ((x 'inside) (setf alist '(1 2 3 4 5 6)) (y x)) (setf alist '(a b c d e) (list x y)) blist '(x y z)) () (expt 2 3) Sam Siewert (cos 3) 10 Modern C-Lisp IDE LispWorks - Download Graphical Debugger Interactive Windows Mac Linux Sam Siewert 11 Everything is Really a List in Lisp http://www.gigamonkeys.com/book/they-called-it-lisp-for- a-reason-list-processing.html Lists always Have Parens around them To get to an Atom, Use Car on List of ONE Sam Siewert 12 CSL Lisp REDUCE Algebraic Simplification, Derivation, Etc. Simplifying Equations Compared to Numerical Solutions Sam Siewert 13 Lisp Applications and Activity DS-1, Deep-Space 1 – RAX – Remote Agent – Flew Common Lisp Interpreter (Lisp Works) ROS Lisp - http://wiki.ros.org/roslisp Planet Lisp - http://planet.lisp.org/ MIT course – Lisp Intro to Programming https://common-lisp.net/ http://norvig.com/paip.html Sam Siewert 14 Brief Lisp History Lisp was invented by John McCarthy in 1958 while he was at the Massachusetts Institute of Technology (MIT). McCarthy published its design in a paper in Communications of the ACM in 1960, entitled "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I".[9] He showed that with a few simple operators and a notation for functions, one can build a Turing- John McCarthy complete language for algorithms. Sam Siewert 15 Other Uses of LISP – “Latin Roots for Modern Multi-paradigm and Functional” Automated Theorem Proving Game Theory and AI Games Natural Language Processing Automated Planning and Scheduling Optimization Searches Semantic Web and Search Largely Being Replaced by Functional Features in Python, C++, C# and Newer Lisp Dialects such as Scheme and Racket as well as multi-paradigm Caml and Haskell, Swift https://chessprogramming.wikispaces.com/Herbert+Simon Sam Siewert 16 What is Status of Lisp Lisp Python new/current AI teaching programming Pascal language Scheme ML Python is often used for Intro to Programming with Java Ada Smalltalk C++, Java, Swift, Python, C#, Common Lisp etc. are used for production Miranda C++ AI products CLOS Caml Eiffel Haskell Lisp is a great way to learn functional programming Python OCaml based on simplicity, long Ruby history, and pure functional C# subset F# Sam Siewert 17 Shallow to Deep – Structural or Mathematical Equivalence Testing Equality and Equivalence Gets Interesting (Equality Predicates) – Structurally the Same – String Comparison – Real Valued Comparison – Same Function, Same Evaluation of a Function … Most PLs Have Simple Evaluation and Compare Sam Siewert 18 Some Examples … Using A Simple List of Numbers … Most Imperative Procedural PLs have Shallow Copy (I Can’t Assign a Struct to a Struct, Array to an Array, List to a List, etc., Just Single Values) Likewise Comparison is Typically Numerical Only Lambda expressions Two lists … Sam Siewert 19 Note on ANSI Common LISP Steel Bank Common LISP is ANSI Strict Requires Definition Prior to Elaboration (ANSI Addition) Many LISP Interpreters Simply Create the Definition Automatically (E.g. CLISP) Result is the SAME, just WARNING CLISP Has No Warning Sam Siewert 20 Digging Deeper … Typically Lisp is Taught in Introduction to AI (Symbolic) Python often used instead of Lisp Today http://people.csail.mit.edu/phw/Books/#Lisp CLISP - https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/clm.html Often a First Year Graduate or Senior Year Undergraduate Computer Science Class Patrick H. Winston - Books Sam Siewert 21 Lisp Predicates and Functions ; Conditional expression (defun prob-term (p) (cond ((> p 0.75) 'very-likely) ((> p 0.5) 'likely) ((> p 0.25) 'unlikely) (t 'very-unlikely))) ; Predicates and conditionals (equal '(1 2 3 5 4 7 9 11) '(1 2 3 5 4 7 9 11)) (equal alist blist) (member 'e alist) (equal (lambda (x) (* x x)) (lambda (x) (* x x))) (eql (lambda (x) (* x x)) (lambda (x) (* x x))) (equal (lambda (x) (* x x)) (lambda (y) (* y y))) (= 4 4.0) (defun square (n) (* n n)) (mapcar #'square '(1 2 3)) (mapcar #'= '(1 2 3) '(3 2 1)) (funcall #'(lambda (param) (first param)) '(a b c d e f)) (setf trees '((maple shade) (apple fruit))) (member '(maple shade) trees) (member '(maple shade) trees :test #'equal) Sam Siewert 22 Lisp Recursion Designed for Recursion, Nesting and Mapping Functions to Data of Most any Type ; Recursion (defun fibonacci (N) "Compute the N'th Fibonacci number." (if (or (zerop N) (= N 1)) 1 (+ (fibonacci (- N 1)) (fibonacci (- N 2))))) (defun count-elements (list) (if (endp list) 0 (+ 1 (count-elements (rest list))))) (trace count-elements)
Recommended publications
  • MELT a Translated Domain Specific Language Embedded in the GCC
    MELT a Translated Domain Specific Language Embedded in the GCC Compiler Basile STARYNKEVITCH CEA, LIST Software Safety Laboratory, boˆıte courrier 94, 91191 GIF/YVETTE CEDEX, France [email protected] [email protected] The GCC free compiler is a very large software, compiling source in several languages for many targets on various systems. It can be extended by plugins, which may take advantage of its power to provide extra specific functionality (warnings, optimizations, source refactoring or navigation) by processing various GCC internal representations (Gimple, Tree, ...). Writing plugins in C is a complex and time-consuming task, but customizing GCC by using an existing scripting language inside is impractical. We describe MELT, a specific Lisp-like DSL which fits well into existing GCC technology and offers high-level features (functional, object or reflexive programming, pattern matching). MELT is translated to C fitted for GCC internals and provides various features to facilitate this. This work shows that even huge, legacy, software can be a posteriori extended by specifically tailored and translated high-level DSLs. 1 Introduction GCC1 is an industrial-strength free compiler for many source languages (C, C++, Ada, Objective C, Fortran, Go, ...), targetting about 30 different machine architectures, and supported on many operating systems. Its source code size is huge (4.296MLOC2 for GCC 4.6.0), heterogenous, and still increasing by 6% annually 3. It has no single main architect and hundreds of (mostly full-time) contributors, who follow strict social rules 4. 1.1 The powerful GCC legacy The several GCC [8] front-ends (parsing C, C++, Go .
    [Show full text]
  • QUALM; *Quoion Answeringsystems
    DOCUMENT RESUME'. ED 150 955 IR 005 492 AUTHOR Lehnert, Wendy TITLE The Process'of Question Answering. Research Report No. 88. ..t. SPONS AGENCY Advanced Research Projects Agency (DOD), Washington, D.C. _ PUB DATE May 77 CONTRACT ,N00014-75-C-1111 . ° NOTE, 293p.;- Ph.D. Dissertation, Yale University 'ERRS' PRICE NF -$0.83 1C- $15.39 Plus Post'age. DESCRIPTORS .*Computer Programs; Computers; *'conceptual Schemes; *Information Processing; *Language Classification; *Models; Prpgrai Descriptions IDENTIFIERS *QUALM; *QuOion AnsweringSystems . \ ABSTRACT / The cOmputationAl model of question answering proposed by a.lamputer program,,QUALM, is a theory of conceptual information processing based 'bon models of, human memory organization. It has been developed from the perspective of' natural language processing in conjunction with story understanding systems. The p,ocesses in QUALM are divided into four phases:(1) conceptual categorization; (2) inferential analysis;(3) content specification; and (4) 'retrieval heuristict. QUALM providea concrete criterion for judging the strengths and weaknesses'of store representations.As a theoretical model, QUALM is intended to describ general question answerinlg, where question antiering is viewed as aerbal communicb.tion. device betieen people.(Author/KP) A. 1 *********************************************************************** Reproductions supplied'by EDRS are the best that can be made' * from. the original document. ********f******************************************,******************* 1, This work-was
    [Show full text]
  • Guile Programmer's Manual
    Guile Programmers Manual For use with Cygnus Guile Last up dated July Mark Galassi Los Alamos National Lab oratory and Cygnus Supp ort rosalianislanlgov c Copyright Cygnus Supp ort Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this p ermission notice are preserved on all copies Permission is granted to copy and distribute mo died versions of this manual under the conditions for verbatim copying provided that the entire resulting derived work is distributed under the terms of a p ermission notice identical to this one Permission is granted to copy and distribute translations of this manual into another language under the ab ove conditions for mo died versions except that this p ermission notice may b e stated in a translation approved by Free Software Foundation Chapter What go es in this manual What go es in this manual You might b e wondering why there are two separate manuals for Guile It is customary to split the do cumentation for ma jor packages into a user manual a gentle and intro ductory do cument and a reference manual Sometimes p eople go a step farther and make a separate tutorial other times the tutorial is part of the user manual In this framekwork what you are supp osed to do is use the user manual until you have under sto o d all that it has to oer you and then use the reference manual for the rest of your life except when you are teaching This Guile Programmers Manual is indeed a reference manual so I assume that you know everything thats in the Guile
    [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]
  • Latexsample-Thesis
    INTEGRAL ESTIMATION IN QUANTUM PHYSICS by Jane Doe A dissertation submitted to the faculty of The University of Utah in partial fulfillment of the requirements for the degree of Doctor of Philosophy Department of Mathematics The University of Utah May 2016 Copyright c Jane Doe 2016 All Rights Reserved The University of Utah Graduate School STATEMENT OF DISSERTATION APPROVAL The dissertation of Jane Doe has been approved by the following supervisory committee members: Cornelius L´anczos , Chair(s) 17 Feb 2016 Date Approved Hans Bethe , Member 17 Feb 2016 Date Approved Niels Bohr , Member 17 Feb 2016 Date Approved Max Born , Member 17 Feb 2016 Date Approved Paul A. M. Dirac , Member 17 Feb 2016 Date Approved by Petrus Marcus Aurelius Featherstone-Hough , Chair/Dean of the Department/College/School of Mathematics and by Alice B. Toklas , Dean of The Graduate School. ABSTRACT Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.
    [Show full text]
  • GNU/Linux AI & Alife HOWTO
    GNU/Linux AI & Alife HOWTO GNU/Linux AI & Alife HOWTO Table of Contents GNU/Linux AI & Alife HOWTO......................................................................................................................1 by John Eikenberry..................................................................................................................................1 1. Introduction..........................................................................................................................................1 2. Traditional Artificial Intelligence........................................................................................................1 3. Connectionism.....................................................................................................................................1 4. Evolutionary Computing......................................................................................................................1 5. Alife & Complex Systems...................................................................................................................1 6. Agents & Robotics...............................................................................................................................1 7. Programming languages.......................................................................................................................2 8. Missing & Dead...................................................................................................................................2 1. Introduction.........................................................................................................................................2
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • Ill Hffif UU U Id 12 FEET, TOWED VOTE; KUPIOEA Ndte REPORT U
    WAILS . From San Frincite Konoiua, April 19. For San Francesco: China, April ro. From Vancouver: Niagara, April 11. JFr Vancouver: mi Makura. April 30. m 1'venlng Hullntln. KhL. 1882. No 5142 14 -- 11)15.-1- 4 JJawaiian Star. Vol. XXII. No. 71x3 IWliKS HONOLULU, TERRITORY OF HAWAII, MONDAY, APRIL 1!. IWGKS TRICE FIVE CENTO F--4 IS RAISED iHOUSE SPLIT ON TBHORB. B fJM P Ill HffiF UU u id 12 FEET, TOWED VOTE; KUPIOEA NdTE REPORT U. S SENDSillON TURKEY CALLS ON HIM EXPERTS DECLARE TO COMMAND BIG ARMY SiTUATIOIJ TO17AnD SHORE HOLDS HIS SEAT CHINA, POINTING OUT TREATY t Associated Press Service by Federal Wirelesso 1 1 Ai'f-'mmm- SHOWS GERMANY AND AUSTRIA Lifting Gear Shows Strength Member Under Fire as "Mor- LONCON. Eng., April 19.-- A Renter's despatch from Peking says that and Submarine Is "Broken In Move to the United States has sent a note on the China negotiations to both China Ld ally Unfit" Loses and Japan, indicating that the United States has certain treaty rights in J Out" of Ocean Bed "Investigate" Judge Ashford China from which she will not recede. The Chinese believe this note will CONCENTRATING ON THE EAST have a "valuable moral effect" on the situation. ONE WIRE CABLE PARTS The house this afternoon vigorously AND WORK IS DELAYED, debated whether to expel Representa- BRITISH BEGIN IMPORTANT DRIVE ON GERMAN LINE IN tive Kupihea. NOTED ENLISTED BUT ONLY TEMPORARILY HON, BELGIUM BERLIN DENIES ATTACKS ARE SUCCESSFUL Representative Aiu, who exonerated Kupihea in his minority report, spoke - - REPORT VON HINDENBERG PRESIDES AT COUNCIL OF Diver Loughman Slowty Re- - i at lenath anaintt the Ravwlina reao- - POLAR EXPLORER, SHOULD GET WAR WHICH DECIDES TO PRESS EASTERN CAMPAIGN cowing From Effects of lution of expulsion.
    [Show full text]
  • Lisping Copyleft: a Close Reading of the Lisp LGPL 15
    Lisping Copyleft: A Close Reading of the Lisp LGPL 15 Lisping Copyleft: A Close Reading of the Lisp LGPL Eli Greenbaum a (a) Attorney, Yigal Arnon & Co. Jerusalem DOI: 10.5033/ifosslr.v5i1.75 Abstract: The idioms of both the General Public License (the “GPL”) and the Lesser General Public License (the “LGPL”) seem to be grounded in the C programming language. This article analyses the Lisp Lesser General Public License (colloquially and here referred to as the “LLGPL”), a specific attempt to apply the LGPL to a language with a programming paradigm and method of building and distributing programs that traditionally differs substantially from the approach of C. In addition, this article attempts to understand whether the LLGPL actually succeeds in its stated goal of translating the LGPL to the Lisp context or whether the LLGPL changes the requirements and philosophical moorings of the LGPL. Keywords: Law; information technology; Free and Open Source Software; copyleft, copyright; derivation; compilation; Lisp; LGPL; Introduction The idioms of both the General Public License (the “GPL”) and the Lesser General Public License 1 (the “LGPL”) seem to be grounded in the C programming language. The licenses refer to “compiling”, “linking” and “header files”, features of the C programming languages which may not be present in other languages that are not traditionally compiled. Similarly, the licenses do not expressly include provisions relating to features of object-oriented programming languages.2 Do the GNU licenses work as intended when applied in these other contexts? 3 This article analyses the Lisp 1 The LLGPL license is drafted as a preamble to version 2.1 of the LGPL.
    [Show full text]
  • Platform Freedom for a Graphical Lisp Application Through Armed Bear Common Lisp
    CARMA: Platform Freedom for a Graphical Lisp Application through Armed Bear Common Lisp John D. Hastings Alexandre V. Latchininsky Dept. of Computer Science Dept. of Renewable Resources University of Nebraska-Kearney University of Wyoming Kearney, NE, USA Laramie, WY, USA [email protected] [email protected] Abstract 1. Introduction CARMA is an advisory system that uses artificially- CARMA is an advisory system for grasshopper infesta- intelligent techniques including case-based reasoning tions that has been successfully used since 1996 (Hast- to provide advice about the most environmentally and ings, Branting, & Lockwood 2002). CARMA, short economically effective responses to grasshopper infes- for CAse-based Rangeland Management Advisor, em- tations. CARMA’s core AI reasoner was initially writ- ploys a variety of artificially-intelligent (AI) techniques ten in Common Lisp and integrated with an Allegro to provide advice about the most environmentally and Common Lisp for Windows graphical user interface economically effective responses to grasshopper infes- (GUI). CARMA went public in 1996 and has been tations. In the process, CARMA demonstrates an ap- used successfully since. Recently, CARMA’s architec- proach to providing advice concerning the behavior of ture was reworked in order to avoid periodic develop- a complex biological system by exploiting multiple, in- ment and deployment fees, and to produce a platform- dividually incomplete, knowledge sources (Hastings, independent system by following a philosophy called Branting, & Lockwood 1996) including utilization of a platform freedom which emphasizes freedom from technique known as approximate-model-based adapta- both platform dependence and software costs. The im- tion which integrates case-based reasoning with model- plementation also demonstrates an approach to creating based reasoning for the purposes of prediction within a Lisp application with an appealing GUI which is web complex physical systems.
    [Show full text]
  • Integral Estimation in Quantum Physics
    INTEGRAL ESTIMATION IN QUANTUM PHYSICS by Jane Doe A dissertation submitted to the faculty of The University of Utah in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Mathematical Physics Department of Mathematics The University of Utah May 2016 Copyright c Jane Doe 2016 All Rights Reserved The University of Utah Graduate School STATEMENT OF DISSERTATION APPROVAL The dissertation of Jane Doe has been approved by the following supervisory committee members: Cornelius L´anczos , Chair(s) 17 Feb 2016 Date Approved Hans Bethe , Member 17 Feb 2016 Date Approved Niels Bohr , Member 17 Feb 2016 Date Approved Max Born , Member 17 Feb 2016 Date Approved Paul A. M. Dirac , Member 17 Feb 2016 Date Approved by Petrus Marcus Aurelius Featherstone-Hough , Chair/Dean of the Department/College/School of Mathematics and by Alice B. Toklas , Dean of The Graduate School. ABSTRACT Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.
    [Show full text]
  • Weak References Data Structures and Implementation
    Weak References Data Structures and Implementation Bruno Haible ILOG GmbH 24 April 2005 What is a Weak Pointer? ● Garbage collection preserves all objects that are reachable from the root set. ● A weak pointer holds its object without causing it to be reachable. What is a Weak Hashtable? ● A weak hash-table holds its key-value pairs without causing them to be reachable. ● Four kinds: – :key – :value – :key-and-value – :key-or-value A Strong Feature ● Adding extra info to sealed objects. ● Memoizing prior results. ● Uniquification. ● Hash consing. ● Avoiding attach/detach protocols. ● Global garbage collection. Caveats ● Extra time spent in GC (for W weak pointers: – O(W²) in some implementations, – O(W) in other implementations) Weak Datastructures ● Weak pointer ● Weak “and” relation ● Weak “or” relation ● Weak association (= weak mapping) ● Weak “and” mapping ● Weak “or” mapping ● Weak association list ● Weak hash-table Primitive Weak Datastructures ● Weak pointers ● Weak :key mappings ● Weak hash-tables The others can be emulated. Levels of Support 1.Support for weak pointers. 2.Support for weak :key mappings or weak hash-tables, with “key not in value” restriction. 3.Support for weak :key mappings or weak hash-tables, without restriction. 4.Scalable support for weak :key mappings or weak hash-tables. Implementations of Level 1 ● Common Lisp: GNU clisp 2.33.80, OpenMCL 0.14.1, Allegro CL 6.2, LispWorks 4.3, Corman Lisp 1.1, CMUCL 19a, SBCL 0.8.20 ● Scheme: GNU guile 1.7.1, MIT Scheme 7.7.1, BBN Scheme, MzScheme 205, Scheme48 ● Other
    [Show full text]