|
Subiecte
|
|
Introducere
LISP face parte din clasa limbajelor funcţionale.
LISP = LIStProgramming.
Scurtă introducere în istoria LISP
LISP a fost inventat de John McCarthy la sfârşitul anilor
1950, ca model formal pentru calulul ecuaţillor recursive. Singurul
limbaj de programare mai vechi şi încă folosit este
Fortranul.
McCarthy caracterizeaza limbajul în 1980 :"LISP a supravietuit
21 ani, pentru că apoape este un loc optim în spaţiul
limbajelor de programare".
Reputaţia LISPului poate argumenta cu fundaţia teoretică mai puternică
ca alte limbaje – forma funcţională , lambda calculus şi utilizarea
funcţiilor generalizate.
Primii paşi:
- 1956 – a McCarthy dezvoltat un limbaj de procesare algebrică
a listelor, în scopul folosirii în domeniul inteligenţei
artificială
- între 1960-1965 dialectul principal a fost Lisp 1.5
- la începutul anilor 1970 existau două dilecte: MacLisp
şi Interlisp.
Maclisp s-a dezvoltat din Lisp 1.5 prin adaugarea variabilor speciale,
şi a tratării erorilor, precum conceptul funcţiilor
cu număr de argument variabilă, macrodefiniţi, matrici, etc.
Iterlisp a introdus mai multe concepte noi, ca contrucţia
iterativa, preluate de MacLisp şi mai târziu de CommonLisp.
- În 1981 bazat pe un proiect DARPA prin combinarea mai
multor proiecte s-a obţinut Common Lisp ca descriere unei familii
de limbaje
- În 1986 ANSI Comon lisp a rezultat o nouă specificaţie
de limbaj cu definiţia protabilităţi, programarea orientatăpe
obiecte, system de condiţii, etc.
Emacs
Emacs este un editor adaptabil şi expandabil. Este bazat pe un interpretor
de lisp, elisp, un dialect a limbajului Lisp.
Caracteristici:
- moduri (major modes) de lucuru pentru o gamă variată de
limbaje
- documentie online
- expandabil prin intermediul limbajului Emacs Lisp
- suport pentru diferite limbaje (naturale şi de programare)
În cadrul laboratorului de CFLP vom folosi ca editor de programe
Lisp şi interpretor de programe mediul Emacs şi pachetul XLisp-stat.
Pentu tastele de comandă Emacs citiţi sumarul tastelor.
Detalii găsiti în GNU
Emacs Manual.
Pornire emacs şi lisp
În sistemul de operare Linux
Acţiune |
Rezultat |
Porniţi un terminal (iconul de monitor) |
Apare fereastra de terminal |
Tastaţi emacs & |
Emacs porneşte |
Apasaţi C-x 2 |
Fereastra curentă este imparţită în doua ferestre identice |
Apasaţi C-x o |
Se activează cealaltă (a doua) fereastră |
Apasaţi M-x run-xlispstat |
Porneşte XLISP-STAT |
Apasaţi C-x o |
Se activează cealaltă (a prima) fereastră |
Apasaţi M-x lisp-mode |
Emacs intră în modul de inferior lisp |
Introduceţi o linie lisp pentru testare |
De exemplu (+ 1 2) |
Poziţionând cursorul pe un element dintre parantezele
intorudese apăsaţi M-C-X |
În ferestra de lisp apare rezultatul 3 |
În sistemul de operare Windows
Acţiune |
Rezultat |
Selectaţi iconul XLisp-Stat de pe Desktop |
XLisp-Stat porneşte |
Minimizaţi XLisp-Stat |
Aplicatia se minimizrază (aplicatia server va fi apelat de Emacs) |
Selectaţi iconul Emacs de pe Desktop |
Emacs porneşte |
Apasaţi C-x 2 |
Fereastra curentă este imparţită în doua ferestre identice |
Apasaţi C-x o |
Se activează cealaltă (a doua) fereastră |
Apasaţi M-x run-xlispstat |
Porneşte XLISP-STAT |
Apasaţi C-x o |
Se activează cealaltă (a prima) fereastră |
Apasaţi M-x lisp-mode |
Emacs intră în modul de inferior lisp |
Introduceţi o linie lisp pentru testare |
De exemplu (+ 1 2) |
Poziţionând cursorul pe un element dintre parantezele
intorudese apăsaţi M-C-X |
În ferestra de lisp apare rezultatul 3 |
Taste importante în emacs
Tabelul următor face un sumar a celor mai utilizate combinaţi
de taste asignate la diferite comezi emacs.
În tabel C semnifică tasta Control, iar
M semnifică tasta Alt sau Meta.
De exemplu C-x 2 indică apasarea concomitenta a tastelor
Control şi 2, urmată de apasarea tastei 2 (fară
Control!)
Combinaţie de tastă |
Efect |
C-_ |
Undo |
C-x 2 |
Clonare fereastră |
C-x C-n |
Zona de lucru (buffer) nouă |
C-x o |
Schimbare fereastră activă ("o" este litera
"o" şi nu zero!) |
C-x k |
Inchidere (kill) zone de lucru (buffer) |
C-x b |
Selectarea zonei curente de lucru |
C-x C-s |
Salvarea zonei de curente de lucru |
C-x C-w |
Salvarea zonei de lucru cu alt nume |
C-x C-f |
Deschidere unui fisier intr-o zonă de lucru |
C-x C-c |
Înhidere emacs (cu salvare) |
C-SPC sau C-@ |
Pozitionarea punctului de selecţie |
C-x C-x |
Interschimbare punct de selecţie |
M-w |
Copy |
C-w |
Cut |
C-y |
Paste (yank) |
C-s |
Cautare(search) în zona de lucru |
C-M-x |
Evaluare cu interpretorul Lisp intern, in caz ca xlisp-stat
nu este pornit |
C-M-x |
Evaluare cu xlisp-stat (Numai în dacă xlisp-stat e
pornit şi în modul lisp e activ) |
C-u-n |
Repetarea de n ori unei comenzi simple |
C-x z |
Repetarea ultimei comezi |
C-g |
Renunţare o comanda neterminată (care astaptă alţi
parametri) |
M-x |
Comenzi extinse care nu au asignate combinaţii de taste |
M-x lisp-mode |
Trece zona de lucru (buffer) curent în modul lisp, necesar pentru interpretarea combinaţiei C-M-x |
M-x inferior-lisp-mode |
Trece zona de lucru (buffer) curent în modul inferior-lisp, necesar în caz că din greşeală a fost schimbată modul lui |
Problema |
Exersaţi:
- Crearea unei zone de lucru
- Introducerea unui text
- Operaţiune de selectare şi de copy-paste
- Salvarea unui zone de lucru
- Reincărcarea unei zone de lucur
- Evaluarea unei expresi lisp (+ 1
2 3)prin intermediul interpretorului încorporat
- Pornirea mediului emacs şi xlisp-stat
- Evaluarea unei expresi lisp cu xlisp-stat
|
Notă: Activitatea la acestă ora de laborator
nu se va finaliza printr-o notă, ca activităţile urmatoare,
Îincepând cu laboratorul 3 necunoaşterea operaţiilor
de bază emacs şi xlispstat implică nota 4
la toate lucrările de laborator în termen şi încă
nepredate!
Instalare emacs şi xlispstat
Sub Linux
Redhat 6.2
- Instalaţi (la instalarea sistemului Linux) pachetele emacs
şi xlispstat
- Copiaţi fisierul .emacs
în directorul home a ultilizatorului folosit
- Configuraţi în .emacs directorul unde se află xlispstat
Redhat 7.3
- Instalaţi Linux
- Salvaţi versiunea precompilată xlispstat de aici.
- Dezarhivaţi ca root .tar-ul obtinut în directorul radacină.
- Trebuie să relocati /home/student/.emacs.
În directorul home a utilizatorului cu care vreţi să
lucraţi, în caz că vreţi sa folosiţi xlispstat
cu alt utilizator decât student.
Instalare sub alte versiuni
- Obtineţi codul surslă de la ftp://ftp.stat.umn.edu/pub/xlispstat/3-52/xlispstat-3-52-20.tar.gz,
- Desfaceţi arhiva.
- Urmăriţi instrucţiunile de instalare din fişierul
Install:
- executaţi: configure
- executaţi: make
- executaţi: make install
- Copiaţi fisierul .emacs
în directorul home a ultilizatorului folosit
- Copiaţi fisierul xlispstat.el
în directorul /usr/local/etc
Sub Windows
- Salvaţi ultima distribuţie de emacs. Arhivele se găsesc
la adresa http://ftp.gnu.org/gnu/windows/emacs/,
versiunile precompilate pentru sistemul de operare Windows conţin
în numele fişierului i386. La momentul curent
cea mai recentă versiune precompilată se gaseste aici
sau pe siteul local.
- Desfaceţi arhiva tar
în directorul c:\cflp (se va crea directorul
c:\cflp\emacs)
- Creaţi un link pe desktop spre c:\cflp\emacs\bin\emacs.exe
- Salvaţi xlisp-stat pentru Windows de la ftp://ftp.stat.umn.edu/pub/xlispstat/.
Versiunea cea mai recentă (3.53.17 ) de la ftp.stat.umn.edu
sau versiunea locală.
- Copiaţi executabilul Wxls32zp.exe în
directorul c:\cflp\xlispstat i porniţi depachetarea.
- Creaţi un link pe desktop spre c:\cflp\xlispstat\Wxls32.exe
- Setaţi variabila de environement HOME la valoarea
c:/cflp/
- Copiaţi fisierul .emacs în
directorul c:\cflp
- Copiaţi fisierul xlispstat.el
în directorul c:\cflp
- Gata! Puteti să testaţi lispul!
Linkuri utile
GNU Emacs
Manual - o bună descriere a comenzilor lisp
The XLISP-PLUS Home Page
Istorie Lisp
- lisp.org
Istorie Lisp şi famili
de limbaje lisp
GNU
Emacs Lisp Reference Manual - Unix
GNU
Emacs FAQ For Windows 95/98/ME/NT/XP and 2000
Implementă ri
Lisp
Implementă ri
comerciale
Probleme
Problema 1. Familializarea cu emacs şi xlisp-stat
Problema 2. Instalare emacs şi xlisp-stat
(opţional, ca temă de casă)
|