Hacklab-Lisp-36.pdf

Слични документи
Hacklab-Lisp-22.pdf

Slide 1

Funkcije predavač: Nadežda Jakšić

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Funkcije predavač: Nadežda Jakšić

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

P1.2 Projektovanje asemblera

Algoritmi SŠ P1

Računarski praktikum I - Vježbe 01 - Uvod

Microsoft Word - 6. RAZRED INFORMATIKA.doc

Sadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor

Logičke izjave i logičke funkcije

Uvod u računarstvo 2+2

Algoritmi

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

P1.3 Projektovanje makroasemblera

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - C-4-1

Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Logicko projektovanje racunarskih sistema I

Microsoft Word - Predmet 13-Napredni finansijski menadzment novembar 2018 RJESENJE

Microsoft Word - predavanje8

Programiranje za UNIX Okruženje unix procesa

PASCAL UVOD 2 II razred gimnazije

Uvod u računarstvo 2+2

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

Uvod u računarstvo 2+2

PowerPoint Presentation

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Određivanje relativne permitivnosti sredstva Cilj vježbe Određivanje r

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova

Matrice. Algebarske operacije s matricama. - Predavanje I

Grananje u programu predavač: Nadežda Jakšić

Diferenciranje i integriranje pod znakom integrala math.e Vol math.e Hrvatski matematički elektronički časopis Diferenciranje i integriranje pod

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

(Microsoft Word - 1. doma\346a zada\346a)

(Microsoft Word vje\236ba - LIMES FUNKCIJE.doc)

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske o

NAUČNO-STRUČNA KONFERENCIJA LOGOPEDA SRBIJE INOVATIVNI PRISTUPI U LOGOPEDIJI Nacionalni skup sa međunarodnim učešćem Organizator: Udruženje logopeda S

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Development Case

Skalarne funkcije više varijabli Parcijalne derivacije Skalarne funkcije više varijabli i parcijalne derivacije Franka Miriam Brückler

Računarski praktikum I - Vježbe 11 - Funktori

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Računarski praktikum I - Vježbe 06 - Standard Template Library (2)

OD MONOKRISTALNIH ELEKTRODA DO MODELÂ POVRŠINSKIH REAKCIJA

Uvod u računarstvo 2+2

MAZALICA DUŠKA.pdf

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

8. razred kriteriji pravi

Pojačavači

LAB PRAKTIKUM OR1 _ETR_

070-ALIP2-udzbenik.indb

Dijagrami sekvenci

RAČUNALO

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Računarski softver Da bi računarski sistem mogao da radi, pored hardvera mora biti opremljen i odgovarajućim programima koji će njime upravljati.ova k

Vijeće Europske unije Bruxelles, 23. rujna (OR. en) 12402/19 OJ CRP2 32 PRIVREMENI DNEVNI RED ODBOR STALNIH PREDSTAVNIKA (dio 2.) Zgrada Europa,

PROMENLJIVE, TIPOVI PROMENLJIVIH

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

P9.1 Dodela resursa, Bojenje grafa

~ Методологија ~ ИНДЕКС ПРОМЕТА ИНДУСТРИЈЕ ПРАВНИ ОСНОВ Статистичка активност се спроводи у складу са Законом о статистици Републике Српске ( Службени

Microsoft PowerPoint - Datoteke [Compatibility Mode]

POVIJEST I GRAĐA RAČUNALA

Uvod u PHP

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft PowerPoint - Topic04-Serbian.ppt

Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razredu Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razr

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft Word - 6ms001

Slide 1

Microsoft Word - IP_Tables_programski_alat.doc

Mathcad - MCADMod MCD

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Proracun strukture letelica - Vežbe 6

Građanski odgoj i obrazovanje

1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan

8 2 upiti_izvjesca.indd

Microsoft Word - CCERT-PUBDOC doc

POSLOVNA INTELIGENCIJA I ANALITIKA ZA PRAVE POSLOVNE ODLUKE

Транскрипт:

Kazimir Majorinc Povijest Lispa 36. Razmjena vjestina Hacklab u mami 19. listopada 2013.

Peter L. Deutsch je tijekom 1960-64 implementirao Lisp 1.5 u,tx- 0" i,pdp-1" laboratorijima (cini se da su laboratoriji dobijali bar nesluzbena imena po racunalima) MIT, jer su ta racunala omogucavala interaktivni pristup. Po Deutschu, u retrospektivi, najzanimljiviji dio,filozofije dizajna" je da se, koristeci interpreter, neke operacije koje su definirane kao primitivne mogu definirati unutar samog jezika. Primjer: umjesto CAAR maze se koristiti (LAMBDA(X)(CAR(CAR X))). U vrijeme u koje je Deutsch to napisao (prije 2006, ali mazda ne puna prije), Deutsch se vise nije sjecao je li u to vrijeme to bilo opce prihvaceno znanje Ue, jos od McCarthyja!) Vidi se da je PDP- 1 Lisp dizajniran za interpretiranje ali razlike su vrlo male.

PDP Lisp je,interaktivan." Cjepidlacimo li, interaktivniji nego danasnji Lispovi: interpreter nije cekao na,return" nego je prepoznao kraj S-izraza, odmah ga izracunao i ispisao dobivenu vrijednost. atom car cdr cond (cons x y...),returns the concatenation of its argument list."(???) eq (eval x)- eval sa jednim argumentom (gensym) - g0001, g0002,... (greaterp a b) go - vidi primjer kod prog

list (lac x) - adresa na kojoj se nalazi podatak x. (logand x y) -,... returns the logically and of the argument list." (Iogar x y),... returns the logical or of the argument list." (minus x)- prima samo jedan argument. (null x)-,t if the argument is nil or empty, otherwise t." (numberp x) (plus x y... ) (prin 1 x) ispisuje a tome (print x) ispisuje S-izraze

(prog (u)... ) (prog (x y) (cond ((greaterp x y) (return x)) (t (return y)))) (prog () ten (go ten)) quote (read) return rplaca rplacd sassoc (sassoc (quote y) (quote ((x.l) (y.2))) (quote gensym)) setq - za razliku od Lispa 1.5 PDP-1 nema set.

(stop x)- ekvivalentno zaustavlja racunalo sa x u akumulatoru terpri (times x y... ) (xeq c a i) izvrsava masinsku instrukciju c sa a registrima. u najvaznijim 'V oblist - lista postojecih atomskih simbola nil t expr subr fexpr fsubr apval Cini se da Deutsch ignorira FUNARG problem. Nema macroa.

Dokument,The BBN LISP system" u izdanju SOL T BERANEK AND NEWMAN INC., Cambridge, Massachusetts iz veljace 1966. Autori: Dainel Bobrow, D. Lucille Darley, Daniel L. Murphy, Cynthia Solomon, Warren Teitelman. Liste se spremaju na disk i koristi se kesiranje u RAM-u. Dok je RAM imao oko 8k rijeci (18 bita), magnetski bubanj je imao 256 k. Usporenje,zacudujuce malo." (3 puta, dok je in ace pristup disku i bubnju oko 1000 puta sporiji). oblist[] - funkcija a ne konstanta not prog1 [x;y], prog2[x;y], progn[x;y;... ;z] set, setq, setn, setnq (vrlo egzoticno), setqq putd[x;y] - isto kao set - ali vrijednost y je definicija funkcija putdq - isto, samo se niti jedan od argumenata ne izracunava

getd[x] - vrijednost definicije funkcije fntyp[x] - vraca EXPR, FEXPR, SUBR, FSUBR, NIL, ovisno o tipu funkcije. eval[x], evala[x;a] nconc- append, ali unistava originalne liste nnconc- bas isto kao nconc (u suprotnom ne bi bio moguc trace) nth[x;n], last[x] tconc[x;p], lconc[x;p] - p je pointer na zadnji element liste. remob[x] - unistava sve tragove atoma x iz sistema disp[x;y] - pise tocku na grafickom terminalu na kordinatama x i y. displis[l] mapcar[x;fn] (mapcar (quote (1 2 3)) (lambda(x)(+ x x))) => (2 4 6). map - isto kao mapcar ali ne stvara listu reclaim[]

Medu dokumentima objavljenima na Computer History Museum, Software Preservation Center nalazi se i PDP-36 LISP, interni dokument Electrical Engineering Department (dakle, ne AI) MIT objavljen 20. maja 1966. Autor dokumenta nije naveden i nije poznat. Dokument ima 19 strana + popis Lisp funkcija + cca 40 strana programa u asembleru. Lisp je opisan kao,izvorni jezik za pisanje algoritama". Za razliku od ostalih jezika u kojima se programi sastoje od niza instrukcija u Lispu se obicno (ali ne uvijek) program sastoji od definicija funkcija. Osnovni objekt u Lispu je struktura stab/a koja se naziva S-izraz. Sve definicije funkcija, argumenti funkcija, vrijednosti funkcija, programi, instrukcija, varijable i podaci su S-izrazi. Na svakom cvoru S-izraza postoje dvije grane, koje eventualno zavrsavaju u atomu. S-izrazi se nazivaju konkatenacijom S-izraza.

valp - predikat koji provjerava ima li simbol vrijednost setq (nema funkcije set) nlambda - za izracunavanje funkcija koje ne izracunavaju argumente. Takve funkcije se nazivaju fexpr-ovi. Fexprovi imaju samo jedan argument u listi argumenata, ali tom argumentu se pridruzuje cijela lista. ((nlambda (x) (plus (car x) (car (cdr x)))) 1 2) => 3,Functions which do not evaluate their arguments are usually used only on the top level for,utillity" purposes. Other functions do not, as a rule, call them and they are not usually recursive."

dex (dex reverse (x) (prog (y) z (cond ((null x (return y))) (setq y (cons (car x) y)) (setq x ( cdr x)) (go z) )) kraj