Back to site

Камплект пашырэння мовы

Што такое Элк ?

Лось рэалізацыі мовы праграмавання Scheme. У адрозненне ад існуючых, аўтаномныя сістэмы Элк Схема была распрацавана спецыяльна як ўбудоўваецца, шматразовыя падсістэмы пашырэння мовы для прыкладанняў, напісаных на C або C + +.

Распрацоўшчыкі, якія выкарыстоўваюць Элк можа дастаўляць прыкладанні з рознымі кампанентамі, напісанымі на розных мовах, такіх як эфектыўнае ядро ? напісаны на C або C + + і пашыраецца карыстацкі інтэрфейс пласта ажыццяўляецца на схеме. Каб спрыяць стварэнню гібрыдных архітэктур прыкладанняў, Элк падтрымлівае шчыльна вязаць міжсеткавага ўзаемадзеяння ў C / C + + часткі прыкладанняў з кодам Scheme.

Элк таксама карысныя ў якасці аўтаномнага схема рэалізацыі, у прыватнасці, у якасці платформы для хуткага прототипирования, заснаваная на X11 праграмы Scheme.

Праект Элк было пачата ў 1987 годзе для падтрымкі ISOTEXT, рэдактар ? мультымедыйных дакумент, які быў распрацаваны ў Тэхнічным універсітэце Берліна. Першы свабодна даступнай версіі, Элк 1.0, была апублікавана ў USENET ў верасні 1989 года. З тых часоў, лось быў паспяхова выкарыстаны ў якасці асновы мова пашырэнняў для шматлікіх прыкладанняў (камерцыйныя прадукты, а таксама праектаў вольнага праграмнага забеспячэння).

Што новага ў Элк 3,0 ?

Значныя паляпшэння ў Элк 3.0, новы аб'ект схема прадстаўлення і новыя, цалкам перапісаны C / C + + Кіраўніцтва праграміста для лася.

Новае ўяўленне аб'екта быў прапанаваны Крэйг Макфитерс, якія таксама спрыялі першапачатковы набор патчаў. Яе перавагамі з'яўляюцца:

Новы C / C + + кіраўніцтва праграміста з'яўляецца поўная спецыфікацыя C / C + + інтэрфейс для Элк, ён прызначаны для аўтараў пашыраецца, Элк-прыкладанняў і для пашырэння пісьменнікаў. Тэмы вар'іруюцца ад агульнай архітэктуры пашыраемым прыкладанняў і выкарыстанне дынамічнай загрузкі на перадавыя тэхналогіі, такія як слабыя структуры дадзеных і супрацоўніцтва з зборшчык смецця.

Акрамя таго новага ў Элк 3,0 з'яўляецца POSIX-стылі рэгулярнае пашырэнне выразы. Элк была партавана на некалькі новых платформаў (у тым ліку Linux, BSD / OS, AIX 4.1, HP-UX 10,0). Поўны спіс змен у размеркаванне (гл. тэкставыя файлы ЗМЯНЕННЯ і MIGRATE ).

Элк размеркавання і крыніца

Вы можаце спампаваць Элк 3,0 размеркаванне непасрэдна праз HTTP ці атрымаць яго па ананімным FTP ад колькасці сервераў. Акрамя таго, размеркаванне праводзіцца ў распакаваны выглядзе для інтэрактыўнага прагляду. Скампіляваныя, бінарных размеркаванняў Элк рыхтуюцца.

Элк дакументацыі

Для онлайн-прагляду і ў якасці зручнага вядзення, поўная дакументацыя на лася прапануецца ў фармаце HTML. Тыя ж дакументы, якія ўключаны ў дыстрыбутыў у якасці крыніцы TROFF і Выраўнаваны PostScript.

Элк-навіны

Тут вы знойдзеце інфармацыю аб апошніх дапаўненняў у Элк, карыстальнікамі, пашырэння і партоў, і іншых Annoucements, якія могуць уяўляць цікавасць для карыстальніка-супольнасць Элк.

Элк Асаблівасці

Дадатковых, дынамічных нагрузак. Гэта сродак дазваляе Схема код для загрузкі складзеныя схемы пашырэння ў працуе перакладчыкам (або ў дадатку) па патрабаванню. Комплекс Элк-прыкладанняў можа быць раскладзена ў дынамічна загружаных кампанентаў, каб пазбегнуць вялікіх, маналітныя выкананыя файлы. Акрамя таго, карыстальнікам пашырэнне не павінна быць цалкам напісаны на схеме, яны могуць ўключаць у сябе эфектыўную, нізкага ўзроўню пласта напісаны на C або C + +.

Дынамічныя нагрузкі ў Элк падтрымліваецца на розных платформах і не абмяжоўваецца dlopen () інтэрфейсу. Элк забяспечвае аўтаматычную ініцыялізацыю дынамічна загружаных пашырэнняў і клапоціцца пра C + + статычныя канструктары / деструкторы убудаваных у аб'ектных файлаў.

Замарожванне поўнасцю наладзіць прыкладання ў выкананыя файлы. Элк прадастаўляе новая схема прымітыўная дампа, які замярзае дынамічнае выява час працы перакладчыка Схема ў выкананы файл (у тым ліку якія агароджваюць заяву, калі маецца). Гэты механізм нагадвае unexec () у Emacs, але новы выкананы выкананне аднаўляецца шляхам звароту з выкліку на звалку, з дапамогай якога быў створаны выкананы (не ў адрозненне ад відэльца ( у UNIX). Дынамічная загрузка і звалкі павелічэння зручнасці Элк ў якасці асновы складаных прыкладанняў.

Магутны C / C + + інтэрфейс для моўнага ўзаемадзеяння. Элк прадугледжвае цесную інтэграцыю C / C + + ядро ??прыкладанняў (або пашырэння) з пашырэннем мовы. Праграмы могуць вызначаць свае ўласныя прымітывы Схема (трох дысцыплінах выкліку падтрымліваюцца), вызначыць для асобнага дадатку першага класа Схема тыпаў з заказной друкаваць і чытаць функцый, пераўтварэнні аб'ектаў паміж тыпамі Схемы і C / C + + тыпы рознымі спосабамі, ажыццяўляць слабых структур дадзеных, Схема павышэння памылкі, вызначыць схему зменных і сімвалаў, ацэнкі S-выразаў закадзіраваны як радкі З, і выкарыстоўваць зборшчык смецця.

Поўны прывязкі Схема для X11 і Motif. Некалькі дынамічна загружаныя пашырэння забяспечваюць поўны доступ Схемы X11/OpenWindows Xlib, каб праграміст інтэрфейс прымянення ўбудаваных Xt, і Афіна і OSF / Motif наборы віджэтаў. Выкарыстаньне гэтых пашырэньняў, графічных карыстацкіх інтэрфейсаў з Элк-прыкладанняў можа быць пабудаваная цалкам на пашырэнне мовы.

UNIX інтэрфейсам. Элк забяспечвае схема доступу да найбольш UNIX сістэмныя выклікі і агульныя функцыі бібліятэкі C. Пашырэнне UNIX падтрымлівае шырокі спектр розных платформаў UNIX, не абмяжоўваючы яго функцыянальнасць да найменшай агульнага назоўніка або POSIX 1003.1 функцый.

Стоп-і-копіі і пакаленнямі, дадатковых збору смецця. Элк выкарыстоўвае два збору смецця стратэгіі выбару падчас кампіляцыі: традыцыйная `` стоп-энд-копия''сборщик смецця і пакаленнямі зборшчык смецця які з'яўляецца больш эфектыўным і, такім чынам, памяншае час прымянення парушаецца смецця. На платформах з пашыранымі функцыямі кіравання памяццю, дадатковых рэжым можа быць уключаны для пакаленняў зборшчык смецця для далейшага скарачэння часу чакання.

Нестандартныя Асаблівасці схемы. У дадатак да стандартнай схеме асноўны, Элк падтрымлівае першага класа асяроддзяў, апрацоўка памылак, забяспечыць / патрабуе і аўтазагрузку, вадкасці прывязкі і дынамічныя ветру, проста `` EVAL-twice''стылі макрасы, спісы нерухомасці, радок партоў і двунаправленный парты, абалонкі стылі пашырэнне `` тильда''в імёнах файлаў, інтэрактыўныя верхняга ўзроўню напісаны на схеме, адладчык Схема і даволі друкаркі, адвольныя bitstrings даўжыні, і схема запісу.

Вычарпальная дакументацыя. Дыстрыбутыў уключае ў сябе 230 + старонкі цалкам праіндэксаваныя дакументацыі. Усе кіраўніцтва існаваць як TROFF ўваходных файлаў, якія могуць быць пераведзены ў HTML (выкарыстоўваючы unroff ) для онлайн-прагляду ў дадатак да вытворчасці набрана якасці друкаваных версій.

Распаўсюджваецца ў юрыдычна Нявыкарыстаны форме. Аўтарскія правы / ліцэнзійнае пагадненне дазваляе свабоднае распаўсюджванне і выкарыстанне Элк ў камерцыйных прадуктах.

Чаму Элк з выкарыстаннем схемы ?

Як пашырэння могуць атрымаць як вялікі і складанай, як аўтаномных праграм, пашырэнне мовы праграмістаў (як правіла, карыстальнікі прыкладанні) заслугоўваюць тыя ж асаблівасці мовы, што іншыя праграмісты прывыклі. Выкарыстоўваючы мова праграмавання агульнага прызначэння, а не спецыялізаваны мова сцэнарыяў, нетрывіяльных пашырэнняў могуць атрымаць выгаду з структуравання функцыі уласцівыя рэальным моў праграмавання (такіх, як Lisp).

Члены сям'і мове Lisp асабліва падыходзіць у якасці пашырэння моў: Lisp мае просты сінтаксіс, але магутны семантыкі, гэта дазваляе пры малых рэалізацыі, і яе інтэрактыўны характар ??падтрымлівае хуткае прототипирование і рэкамендуе карыстальнікам даследаваць і тэставаць вырашэння праблем у паслядоўныя .

Такім чынам, Lisp становіцца ўсё больш папулярным для гэтай мэты, у пункце, дзе багацце розных дыялектах ператварылася ў праблему. З стандартызаваных дыялектаў Lisp, толькі схема з'яўляецца адпаведным сціплых, але досыць агульны, у якасці шматразовай пашырэнне мовы для шырокага спектру ўжыванняў. Схема з'яўляецца артаганальных і выразна, і гэта досыць маленькі, каб не дамінаваць дадатак, яно служыць і ў поўнай меры разумелі з прымальнай намаганняў.


Oliver Laumann net@informatik.uni-bremen.dePopular Links
Published (Last edited): May 9 , source: http://www-rn.informatik.uni-bremen.de/software/elk/