1 SRI International Bioinformatics Introduction to Lisp Peter D. Karp, Ph.D. Bioinformatics Research Group SRI International

Slides:



Advertisements
Similar presentations
compilers and interpreters
Advertisements

In Review JAVA C++ GUIs - Windows Webopedia.com.
Peter Seibel Practical Common Lisp Peter Seibel
CS 31003: Compilers ANIRUDDHA GUPTA 11CS10004 G2 CLASS DATE : 24/07/2013.
1 Starting a Program The 4 stages that take a C++ program (or any high-level programming language) and execute it in internal memory are: Compiler - C++
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program.
Executable XML Present by 吳昆澤. Outline  Introduction  Simkin  Jelly  o:XML  Conclusion.
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Introduction to Java.
Computer Systems Nat 4/5 Computing Science Translator Programs.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
CSE 1301 J Lecture 2 Intro to Java Programming Richard Gesick.
C++ Crash Course Class 1 What is programming?. What’s this course about? Goal: Be able to design, write and run simple programs in C++ on a UNIX machine.
Introduction to Programming G50PRO University of Nottingham Unit 1 : Introduction Paul Tennent
P51UST: Unix and Software Tools Unix and Software Tools (P51UST) Compilers, Interpreters and Debuggers Ruibin Bai (Room AB326) Division of Computer Science.
Introduction to Programming Language CS105 Programming Language First-generation: Machine language Second-generation: Assembly language Third-generation:
Chapter 1 An Overview of Computers and Programming Languages.
Language Systems Chapter FourModern Programming Languages 1.
 2003 Prentice Hall, Inc. All rights reserved. 1 Java Training Course Dr. H.E. Dunsmore Purdue University Java – How to Program, Deitel (5 th Edition)
Introduction to Interactive Media Interactive Media Tools: Software.
Cosc 2150: Computer Organization
September 19, 2012Introduction to Artificial Intelligence Lecture 5: Functional Programming with Haskell 1 Functional Programming Symbolic AI is based.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Chapter 1 Introduction Chapter 1 Introduction 1 st Semester 2015 CSC 1101 Computer Programming-1.
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
LANGUAGE SYSTEMS Chapter Four Modern Programming Languages 1.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second Edition D.S. Malik D.S. Malik.
Prolog Program Style (ch. 8) Many style issues are applicable to any program in any language. Many style issues are applicable to any program in any language.
JavaScript Defined JavaScript Basics Definitions JavaScript is an object-oriented programming language designed for the world wide web. JavaScript code.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
Typical C++ Environment and Library Introduction Speaker : Wei-Lu Lin Advisor : Ku-Yaw Chang 2012/10/14.
Compilers and Interpreters. HARDWARE Machine LanguageAssembly Language High Level Language C++ Visual Basic JAVA Humans.
 Programming - the process of creating computer programs.
CSC 1010 Programming for All Lecture 2 Introduction to Python Some material based on material from Marty Stepp, Instructor, University of Washington.
 Computer Languages Computer Languages  Machine Language Machine Language  Assembly Language Assembly Language  High Level Language High Level Language.
1 Chapter 1 Programming Languages Evolution of Programming Languages To run a Java program: Java instructions need to be translated into an intermediate.
Lecture1 Instructor: Amal Hussain ALshardy. Introduce students to the basics of writing software programs including variables, types, arrays, control.
1 Introduction Read D&D Sec 1.8; Sec 1.13 THE Java tutorial -
Compilers and Interpreters
Chapter 1 An Overview of Computers and Programming Languages.
Java State Explorer by: Richard Sherman Stephanie Taylor.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Software Engineering Algorithms, Compilers, & Lifecycle.
Introduction To Software Development Environment.
Introduction to computer software. Programming the computer Program, is a sequence of instructions, written to perform a specified task on a computer.
Lecture 1b- Introduction
14 Compilers, Interpreters and Debuggers
Tools of the Trade
Introduction to programming
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
CSCI-235 Micro-Computer Applications
Module 0: Introduction Chapter 2: Getting Started
Introduction CSC 111.
CMP 131 Introduction to Computer Programming
Nat 4/5 Computing Science Translator Programs
Criteria for rapid prototyping
1.3.7 High- and low-level languages and their translators
Introduction to Computer Science
Presentation transcript:

1 SRI International Bioinformatics Introduction to Lisp Peter D. Karp, Ph.D. Bioinformatics Research Group SRI International

2 SRI International Bioinformatics Approx presentation time along with hello.lisp: 1.5 hrs

3 SRI International Bioinformatics Common Lisp Programming Environment Interpreted and/or compiled execution Interactive data exploration Fabulous debugging environment High-level language Extensive built-in libraries: XML, regexps Dynamic redefinition Find out more! l See ALU.org or l

4 SRI International Bioinformatics Why Do We Code in Common Lisp? Gatt studied Lisp and Java implementation of 16 programs by 14 programmers (Intelligence 11: ) l The average Lisp program ran 33 times faster than the average Java program l The average Lisp program was written 5 times faster than the average Java program Roberts compared Java and Lisp implementations of a Domain Name Server (DNS) resolver l l The Lisp version had ½ as many lines of code

5 SRI International Bioinformatics The Common Lisp Programming Environment Gatt studied Lisp and Java implementation of 16 programs by 14 programmers (Intelligence 11: )

6 SRI International Bioinformatics Peter Norvig’s Solution “I wrote my version in Lisp. It took me about 2 hours (compared to a range of hours for the other Lisp programmers in the study, 3-25 for C/C++ and 4-63 for Java) and I ended up with 45 non-comment non-blank lines (compared with a range of for Lisp, and for the other languages). (That means that some Java programmer was spending 13 lines and 84 minutes to provide the functionality of each line of my Lisp program.)”

7 SRI International Bioinformatics Interacting with Lisp Read-eval-print loop Load file of code into Lisp image Use Emacs to incrementally redefine functions hello.lisp

8 SRI International Bioinformatics Lisp Images -- dumplisp Load code and data into Lisp virtual memory Save as executable binary file