Цифровой журнал «Компьютерра» № 17 (170)
Шрифт:
Один из самых интересных компонентов STEPS — это объектно-ориентированный язык OMeta (pdf). Он предназначен для описания синтаксиса других языков. К примеру, на OMeta можно в несколько строк описать синтаксис калькулятора, а потом при помощи наследования расширить его и сделать научный калькулятор. Синтаксис OMeta при этом описан на самом OMeta.
Второй важный язык — это Nile (названный в честь реки Нил). Авторы STEPS называют его «языком исполняемой математики». Nile позволяет компактно описывать математические выражения и сделан таким образом, чтобы максимально облегчить параллельные вычисления. На нём написана графическая подсистема Frank, называемая Gezira. Gezira умещается
Самый низкий уровень во всей этой сложной системе — язык Nothing (переводится с английского как «Ничто»), «высокоуровневый язык с низкоуровневой семантикой». Nothing — это промежуточное звено между всеми языками в STEPS и машинными кодами. На Nothing не предполагается писать вручную, и нужен он лишь для возможности смотреть, что получается на выходе. Nothing, по словам исследователей, вдохновлён BCPL, использовавшимся в шестидесятые годы и вдохновившим авторов Си. На данный момент код на Nothing можно транслировать в Си для дальнейшего перевода в машинные коды или в JavaScript — чтобы система исполнялась в браузере. Предполагается, что в будущем из Nothing можно будет получать машинные коды напрямую.
В качестве промежуточного слоя, на котором написан пользовательский интерфейс, одно время использовался NotSqueak — упрощённый диалект Squeak. Но в последнем отчёте упоминаний о NotSqueak уже нет, зато появился новый объектно-ориентированный язык — Maru. Как и OMeta, он написан сам на себе и может использоваться как для описания высокоуровневого представления, так и для связи с низкоуровневыми функциями. На Maru может быть реализован парсер грамматики, и в 2011 году команда Кея была занята переносом Nile на Maru.
К сожалению, отчёты Кея и его команды (pdf) — это не пособие для программистов-суперменов и не справочник. Оно и понятно — STEPS пока что не готов, и каждый год во Viewpoints ставят разнообразные эксперименты, цель которых — не столько в создании законченной системы, сколько в том, чтобы отточить методы. «Франкенштейн» как цельная система здесь нужен лишь в качестве подопытного тела.
Если посмотреть отчёты Viewpoints за разные годы, то заметно, что здесь снова и снова изобретают языки программирования, делают их всё более самодостаточными (пока что кое-где ещё остаётся код на Си, но от него постепенно избавляются) и ставят смелые эксперименты.
Время от времени команда Кея пробует пробрасывать мостики в реальный мир, создавая, к примеру, виртуальную машину Squeak для Google Native Client или делая метаязык Tamacola на основе Tamarin VM, входящей во Flash. Эти методы могут позволить всей системе не просто работать в браузере, но исполняться быстрее, чем при трансляции в JavaScript.
Скорость, впрочем, не является целью Кея: по его оценке, в нынешнем виде Frank работает примерно на 30 процентов
Понятно, что Frank не станет конкурентом современных ОС и вряд ли вообще будет доделан до необходимого для этого уровня. Тем не менее те методы, которые разрабатывает Алан Кей, могут повлиять на подход к программированию не меньше, чем в своё время повлиял Smalltalk.
Еnergy harvesting: энергия из ничего
Олег Нечай
Опубликовано 24 апреля 2013
Мы все с интересом обсуждаем одежду со встроенными датчиками и пультами управления, кроссовки с шагомером, GPS и прочую носимую электронику. Однако стоит задаться вопросом: а от чего, собственно, должны питаться все эти полезные гаджеты? От сменных батареек? Тогда вся эта вшитая электроника становится ничем не лучше обычных «умных» коробочек, которые можно просто сунуть в карман. Это как если бы мы вместе с мобильным телефоном носили большой тяжёлый чемодан с аккумуляторами или заправляли автомобиль вязанкой дров.
Нужно более изящное решение, отвечающее реалиям XXI, а не XX века. В идеале такой источник питания должен быть лёгким и миниатюрным, способным принимать любую форму и вид, умеющим заряжаться от любых типов энергии в окружающем пространстве и не требующим регулярной замены.
Идеал пока недостижим, но первые шаги в этом направлении уже сделаны. Поскольку для датчиков и простых микрокомпьютеров не требуются источники большой мощности, с ними можно использовать устройства, способные генерировать энергию буквально из ничего, собирая её по крупицам практически из воздуха — как, например, ветряные генераторы или солнечные батареи.
Эта идея положена в основу концепции Еnergy harvesting — её название пока не имеет общепринятого русского перевода, а по смыслу оно примерно означает «сбор энергетического урожая». Концепция заключается в сборе разнообразной энергии из окружающей среды и преобразовании её в электрическую для питания автономных миниатюрных устройств. Источником энергии могут быть любые естественные природные и физические процессы и явления — от солнечного света до любых механических колебаний.
Создаваемые в рамках концепции Еnergy harvesting устройства должны быть способны как генерировать, так и сохранять электрическую энергию — они смогут заменить тяжёлые и громоздкие аккумуляторные батареи там, где не требуются большая мощность и высокое напряжение. В результате мы получим вшитые микрогаджеты, датчики в одежде и обуви с практически вечным питанием, способные работать автономно до своего физического износа. На международной конференции Printed Electronics Europe 2013, проходившей с 17 по 18 апреля в столице Германии Берлине, в рамках шоу Energy Harvesting & Storage Europe был представлен целый ряд чрезвычайно интересных разработок в области Еnergy harvesting.
Самый простой для преобразования в электричество вид внешних воздействий — это механические колебания и вибрации. Чаще всего для конвертации таких колебаний в электроэнергию применяются пьезоэлектрические материалы. Такие материалы используются, в частности, в называемых микроэлектромеханических системах (MЭМС или MEMS), представляющих собой гибридные устройства на кремниевой подложке, в которых объединены микромеханические и микроэлектронные компоненты. МЭМС-чипы легко распаиваются на печатной плате и без проблем интегрируются в любую электронную схему.