Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

lug-bg: functional programming - SECD


  • Subject: lug-bg: functional programming - SECD
  • From: g_georgiev.sz@xxxxxx (G. Georgiev (Skeleta))
  • Date: Thu, 25 Jul 2002 09:00:52 +0300



Çäðàâåéòå LUG-BG,

Òîâà ïèñìî å ðåêëàìà çà ìîÿ íîâ ïàêåò çà Linux,
íàðå÷åí 'SECD Mania'.

Áîÿí Êðîñíîâ ìè îñèãóðè õîñòèíã íà àäðåñ:

http://skelet.ludost.net

Åäèí ïî-áàâåí mirror e http://skelet.hit.bg/SECD

Ïàêåòúò å íåùî êàòî íàäñòðîéêà íà ôóíäàìåíòàëíàòà êíèãà:

"Functional Programming: Application and Implementation",
Peter Henderson, 1980, Prentice Hall

 Áúëãàðèÿ å ðàçïðîñòðàíåí ðóñêèÿ ïðåâîä îò 1983ã.

SECD å âèðòóàëåí ïðîöåñîð çà ðàáîòà ñúñ ñïèñúöè, èçîáðåòåí
ïðåç 1964ã. Êðúñòåí å íà èìåíàòà íà 4-òå ñè ðåãèñòúðà S E C è D.
Âñúùíîñò ðåãèñòúðà D å èçëèøåí (óäîáåí å ïðè çàïîçíàâàíå ñ
ìàøèíàòà, íî ôóíêöèèòå ìó ìîãàò äà ñå ïîåìàò îò S).

SECD ïðîöåñîðà ñå ïîëçâà çà èçïúëíåíèå íà ÷èñòî ôóíêöèîíàëíè
ïðîãðàìè (ðàçáèðà ñå òðÿáâà äà èìàòå êîìïèëàòîð çà LISP èëè
äðóã ôóíêöèîíàëåí åçèê). Ïðåç 1975 ñå îêàçàëî, ÷å ñåìàíòèêàòà ìó
ñúîòâåòñòâà íà äåôèíèðàíàòà ïðåç 1941 èç÷èñëèìîñò, íàðå÷åíà
lambda calculus.

Ïàêåòà ïðåäëàãà ñåðèÿ îò âàðèàíòè íà SECD àðõèòåêòóðà, çàåäíî
ñúñ ñúîòâåòíèÿ LISP êîìïèëàòîð (íàïèñàí íà LISP) è èçïúëíèìèÿ
êîä íà êîìïèëàòîðà (òåêñòîâ ôàéë ñ èíñòðóêöèè çà SECD). Ïî-
íàïðåäíàëèòå âàðèàíòè ñúäúðæàò è ïðèìåðíè ïðîãðàìè.

SECD å ìîæå áè íàé-êðàñèâàòà è åëåãàíòíà êîìïþòúðíà êîíñòðóêöèÿ
èçìèñëÿíà íÿêîãà.

Âêëþ÷âàíåòî íà ôóíäàìåíòàëíè ïîíÿòèÿ â SECD ìîäåëà å ó÷óäâàùî
êðàòêî è åôåêòèâíî. Íàïðèìåð ïîñëåäíàòà ìàøèíêà îò ñåãàøíàòà âåðñèÿ
íà ïàêåòà ìè âêëþ÷âà:

 - 33K ñîðñîâå íà Pascal, îïèñâàùè SECD-àðõèòåêòóðàòà.
 - 10Ê òåêñò íà êîìïèëàòîðà íà LISP.
 - 13K êîä íà êîìïèëàòîðà.

Òåçè íåùà îñèãóðÿâàò ñëåäíèòå ñâîéñòâà íà äåôèíèðàíèÿ LISP:

 - Tail Recursion (ñïåñòÿâàíå íà èçëèøíèòå call èíñòðóêöèè)
 - Lazy evaluations (ðàáîòà ñ áåçêðàéíè ñòðóêòóðè, äåôèíèðàíå
   íà ôóíêöèè îò òèïà íà OR/AND íà ïîòðåáèòåëñêî íèâî).
 - èçïîëçâàíå íà ñòàòè÷íè áèáëèîòåêè
 - ìíîãîçàäà÷íîñò è âðåìåäåëåíå
 - ìåõàíèçúì çà ïðåäàâàíå íà ñúîáùåíèÿ ìåæäó ïðîöåñèòå

Îñâåí òóé ñàìàòà SECD ìàøèíà èìà ñëåäíèòå ñâîéñòâà:

 - Reference Count è Mark/Release ñúáèðà÷è íà áîêëóêà
   (åäèíèÿ äîïúëâà äðóãèÿ)
 - Îïòèìèçàöèè çà ìèíèìèçèðàíå íà cons-îâåòå
   (íåùî êàòî ïðîöåñîðåí êåø)
 - Ìíåìîíè÷íî ïðåäñòàâÿíå íà êîäà, òàêà ÷å êîìïèëèðàíàòà
   ïðîãðàìà ìîæå äà ñå ÷åòå óäîáíî.

Ðàçáèðà ñå, ìíîãî íåùà ëèïñâàò â ìîèòå ìàøèíêè, íî òîçè
ïàêåò å ïî-ñêîðî äóõîâíà ÷åêèÿ, à íå ðåàëíî ïðèëîæèìà
ïðîãðàìà.

 ìîìåíòà ðàáîòÿ íàä ðåàëèçàöèÿòà íà àñèíõðîííè âõîäíî/
èçõîäíè îïåðàöèè.

Ïàêåòà å ïîäõîäÿù çà òåçè, êîèòî ñå èíòåðåñóâàò îò
ôóíêöèîíàëíî ïðîãðàìèðàíå è çà âñè÷êè, êîèòî èñêàò äà
äîñòèãíàò äúëáèíèòå íà êîìïþòúðíèòå íàóêè.

Àêî ðàçïîëàãàòå ñ êíèãàòà íà Õåíäåðñúí, íå ñå íóæäàåòå
îò äîïúëíèòåëíà äîêóìåíòàöèÿ. Àêî îáà÷å ÿ íÿìàòå, ìîæå
áè ùå ñå íàëîæè äà ñå íàïðàâè íÿêàêâî ïî-ñåðèîçíî âúâåäåíèå
â òåìàòà.

Ùå ñúì ìíîãî áëàãîäàðåí çà âñåêè îòçèâ, êðèòèêà èëè
ïîìîù !


-- 

	Skelet
	------ http://skelet.hit.bg/
	

============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================




 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.