Кеңейтілетін ендірілетін тіл - Extensible Embeddable Language

ЖЫЛАНБАЛЫҚ
ПарадигмаМультипарадигма: сценарий, императивті, функционалды, объектіге бағытталған
ЖобалағанДэвид Олофсон
Бірінші пайда болды2005; 15 жыл бұрын (2005)
Тұрақты шығарылым
0.3.6 / 4 ақпан, 2014 жыл; 6 жыл бұрын (2014-02-04)
Пәнді теруДинамикалық
ОЖКросс-платформа
ЛицензияGNU кіші жалпыға ортақ лицензиясы
Файл атауының кеңейтімдеріжыланбалық
Веб-сайтжыланбалық.olofson.желі
Әсер еткен
Луа, C, Паскаль

The Кеңейтілетін ендірілетін тіл (ЖЫЛАНБАЛЫҚ) Дэвид Олофсон жасаған сценарийлер мен бағдарламалау тілі. EEL арналған сценарий жылы нақты уақыт жүйелері музыкалық синтезаторлар және өнеркәсіптік басқару жүйелері сияқты кГц диапазонындағы цикл жылдамдығымен, сонымен бірге платформадан тәуелсіз жалпы мақсат бағдарламалау тілі.

Философия

Тілдік дизайнға келетін болсақ, жалпы идея - қуат, қолданудың қарапайымдылығы мен қауіпсіздігі арасындағы практикалық тепе-теңдікті сақтау. Мұндағы мақсат тым қарапайым синтаксиске немесе шектеулі функционалдылыққа жүгінбей бағдарламалаудың көптеген типтік қателіктерін болдырмауға көмектеседі.

Тарих

EEL-дің алғашқы нұсқасы дыбыстық қозғалтқышта қолданылатын құрылымдық аудио анықтамалар үшін қарапайым талдаушы түрінде болды. Ақысыз және ашық ақпарат көзі ойын Kobo Deluxe, an SDL порты X11 ойын XKobo. Бұл өте шектеулі ағынмен басқарылатын қарапайым аудармашы және синтаксис қазіргі нұсқалардан мүлдем өзгеше болды. EEL-дің бұл алғашқы тармағы алғаш рет 2002 жылы шығарылған және 0.5.1 нұсқасына сәйкес әлі күнге дейін Kobo Deluxe-де қолданылады.

2003 жылдың желтоқсанында EEL дербес жобаға бөлініп, нақты уақыт режимінде сценарий жазу үшін пайдалану үшін үлкен қайта жазылуға тиіс болды. ендірілген реология қолдану. Бұл жерден ауысу аудармашы дейін құрастырушы /VM жасалды және нақты EEL бағдарламалау тілі іске асырылды. Алғашқы ресми шығарылым 2005 жылдың қаңтарында болды. Содан бері EEL баяу дамыды, көбіне оның авторының жеке және кәсіби қажеттіліктері негізделген.

Ерекшеліктер

Жалпы

Тіл белгілі бір мақсат үшін қатаң түрде жасалынбаған бағдарламалау парадигмасы, бірақ қолдайды объектіге бағытталған бағдарламалау, немесе нақтырақ, прототипке негізделген бағдарламалау, минималды жиынтығы арқылы синтаксистік қант Ерекшеліктер. Сияқты басқа парадигмалар функционалды, модульдік және метапрограммалау сонымен қатар қолдау көрсетіледі.

Болдырмау нәтижесінде көрсеткіштер және деректердің толық басқарылатын құрылымдық түрлерін қамтамасыз ете отырып, EEL «қауіпсіз», өйткені EEL бағдарламалары виртуалды машинаны немесе хост бағдарламасын бұза алмауы керек.

Маңызды оқиғалар

Мысал коды

Классикалық сәлем әлем бағдарламасы келесідей жазылуы мүмкін:

экспорт функциясы негізгі {    басып шығару («Сәлем, әлем!»); қайту 0;}

Төменде а рекурсивті функциясы:

экспорт функциясы негізгі {    басып шығару («1-рекурсиялық тест:»); рәсім қайталану (арг) {        басып шығару («arg =», arg, «»); егер arg recurse (арг - 1); }        қайталану (10); басып шығару («Рекурсиялық тест 2; Өзара рекурсия:»); рәсім mrecurse2 (arg); рәсім mrecurse1 (арг) {        басып шығару («arg =», arg, «»); егер arg mrecurse2 (arg); }        рәсім mrecurse2 (арг) {        mrecurse1 (arg - 1); }; mrecurse1 (10); басып шығару («Рекурсиялық тест 2; Функция сілтемесі бар өзара рекурсия:»); рәсім mrrecurse1 (arg, fn) {        басып шығару («arg =», arg, «»); егер аргум фн (арг, фн); }        жергілікті mrr2 = рәсім (арг, фн) {        mrrecurse1 (arg - 1, fn); }; mrrecurse1 (10, mrr2); басып шығару (рекурсиялық тесттер жасалды.); қайту 0;}

Ішкі

EEL бастапқы коды жинақталған байт коды әдет-ғұрып үшін VM, бұл нұсқаулықтың санын азайтуға және сол арқылы қосымша шығындарға арналған салыстырмалы түрде жоғары деңгейлі нұсқаулар жиынтығына ие. EEL VM болып табылады тіркеуге негізделген және «стексіз», сияқты сенбейтін сияқты C шақыру стегі VM контексттерін басқару үшін.

Жадыны басқарудың негізгі әдісі қоқысты қатар жинамай-ақ детерминделген уақытпен жадыны автоматты басқаруға мүмкіндік беретін анықтамалық санау болып табылады.

VM өрнектерде және сол сияқты нәрселерде жасалған аралық объектілерді бақылау үшін «лимбалық тізімдерді» қолданады, бұл ерекше жағдайларды өңдеуді едәуір жеңілдетеді және әрбір әрекетте сілтемелерді белсенді санау қажеттілігін жояды.

Қолданбалар

Kobo Deluxe

Kobo Deluxe - бұл EEL қосымшасы.[1]

Әдебиеттер тізімі

  1. ^ 2013 жылдың үздіктері: 31 жыл - Commodore 64-те тәуелсіз ойын Джеймс Монкманның indiegames.com сайтында (20 желтоқсан, 2013)

Сыртқы сілтемелер