Anatoly Levenchuk ([info]ailev) wrote,

Вышел отчет проекта STEPS Towards Expressive Programming Systems за 2011 год

Не пропустите, вышел пятый отчёт проекта STEPS (http://www.vpri.org/pdf/tr2011004_steps11.pdf) -- в нём сообщается, что заявленная в прошлом году система уже работает, хотя в ней еще можно найти следы использования Си. Система воспроизводит основную функциональность персонального компьютинга (браузинг веба, производство текстовых документов, спредшитов, слайдовых презентаций, работу с языками программирования, воспроизведение аудио и видео), но умещается в 20тыс. строк кода на голом железе -- вместе со всеми необходимыми для реальной работы оптимизациями.

Увы, кто не был знаком с прошлыми отчётами, тот не поймёт о чём речь. Данный отчёт ничего не говорит о том, как был получен такой результат (полный персональный компьютинг на "голом железе", укладывающийся в 20тыс. строк исходных кодов). Он просто говорит о том, что результат таки получен -- и примером является сам отчёт, сверстанный на демонстрационной системе. И что будет еще один год для "полировки" этого результата.

Вот такой информатике и нужно обучать в школе. Вот такую информатику и нужно делать на работе.

Все основные материалы проекта тут: http://vpri.org/html/writings.php (а кое-какие коды выложены в http://www.vpri.org/vp_wiki/index.php/Main_Page -- но результирующий код проекта пока отсутствует. Наверняка откладывают выкладку в надежде хоть как-то отдокументировать работающий код, на что уйдёт последняя неделя шестого года проекта -- это уж как всегда в таких исследованиях, ничего необычного).

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    Your reply will be screened

  • 22 comments

[info]talgaton

November 8 2011, 22:18:34 UTC 6 months ago

все что было нужно - не использовать кобл!

[info]justy_tylor

November 9 2011, 02:51:27 UTC 6 months ago

"браузинга веба" у них нет. Делать свой браузер - слишком дорогая задача, даже с применением мощных языковых технологий. Насколько реализован остальной функционал - по документам сказать сложно.

У них сложилась странная ситуация с графической подсистемой. Автор языка Nile является его же единственным пользователем и пишет на нём Gezira. Хотя мог бы использовать тот же C++ вместо самописной экзотики, с тем же уровнем абстракции и компактности кода, но большей читаемостью. Это не предположение, а моя оценка исходников из https://github.com/damelang/gezira и https://github.com/damelang/nile на базе личного опыта разработки графических подсистем в мобильных телефонах.

Недокументированный язык Nile, которым пользуется только автор, формально преподносится как некое достижение. Однако, в тексте отчёта присутствует и критика "программистских" DSL, которые упрощают код в малом, но усложняют восприятие цельной картины. Мне это кажется хорошим сигналом. Скорее всего год потратят аккурат на зачистку зоопарка.

[info]ailev

November 9 2011, 06:35:31 UTC 6 months ago

Браузинг веба есть -- только это не тот вымороченный веб, который браузится мозиллой и оперой, а "настоящий веб" :-)

С графикой у них активные эксперименты: у того же Nile два погружения в другие языки. Заметки их по "зачистке зоопарка" относятся как раз к вычищению Си для формальной квалификации "от пользователя до железа" с одной стороны, и назначению какого-то оптимума для их языков портирования языков (ибо у них любой язык пишется в любом -- просто by definition для их способа разработки).

Язык Nile более-менее документирован, но в этой документации нужно разбираться. Ибо его документация -- "математическая статья", исполняемые примитивы. Тут не столько документация нужна, сколько объяснение дизайн-выборов, а это уже другой жанр.

[info]justy_tylor

November 9 2011, 06:55:57 UTC 6 months ago

Браузить такой "настоящий веб", в котором ни один сегодняшний сайт не будет корректно отображаться это уровень студенческого курсовика. :)

Что касается графики, то есть разница между подъёмом уровня абстракции (как, например, делает Conal Elliot, которого сейчас в той же рассылке fonc упоминают) и оккультным синтаксисом для вполне обычных вещей (Nile). Проще надо быть.

[info]avlasov

November 9 2011, 20:45:54 UTC 6 months ago

Хотя мог бы использовать тот же C++ вместо самописной экзотики, с тем же уровнем абстракции и компактности кода, но большей читаемостью.

У парней стоит задача показать что всю систему можно уместить в 20 тыщ строчек кода. Т.е. чтобы можно было во всей системе разобраться за разумное время.
А язык с++ настолько сложен и запутан, что уже в нем самом замучаешься разбираться. Грубо говоря, если бы они пошли путем С++, то это было бы наслоение сложного и запутанного над сложным и запутанным с помощью сложного и запутанного. Ну т.е. как современный софт и строится. А задача - продемонстрировать что можно по другому - а именно в тысячу раз короче.

[info]justy_tylor

November 9 2011, 22:20:47 UTC 6 months ago

Настолько же компактный код, какой представлен на Nile, может быть написан с нормальным синтаксисом на _почти_любом_ языке из мейнстрима. За исключением, пожалуй, Java, но только из-за отсутствия там перегрузки операторов. Но для JVM можно взять Scala. А C++, в свою очередь, позволил бы сделать это без потерь производительности, вероятно даже с улучшением скоростных характеристик.

Кроме того, компактизация кода на порядки сначала требует архитектурных усовершенствований, а затем уже их языковой поддержки. К сожалению, в публикациях FONC эта тема затрагивается только в общем виде: вот там цепочка трансляторов, а вот здесь worlds. Общий дизайн системы пока не проглядывается.

[info]avlasov

November 9 2011, 23:05:55 UTC 6 months ago

Ихняя OMeta на которой они языки пишут вобщем-то тоже на PEG-парсерах основана, которые на куче языков есть.
Но у них просто базовым языком является смесь смолтока со схемой, уж не знаю как она там называется в данный момент. И сей базовый язык из котором все основано - тоже компактно реализован.
При том что идеология Смолтока такая, что можно заглянуть в низлежащие уровни и их поменять при желании. Т.е. у них такая идеология что весь проект включая реализацию базового языка доступен программеру. Вплоть до уровня железа. Типа сверхпозднее связывание и все такое.
Типа все можно поместить в 20 тыщ строчек (за исключением может быть бутсраппинга).

А так да - все что они сделали можно делать и на других языках. Т.е. по сути они делают DSL'и а их можно на почти любом мейнстримном языке фигарить.

[info]vadim-tsushko.blogspot.com

November 10 2011, 09:13:16 UTC 6 months ago

Настолько же компактный код, какой представлен на Nile, может быть написан с нормальным синтаксисом на _почти_любом_ языке из мейнстрима

Ух ты. Сильное заявление. Авторы пишут и демонстрируют

So when we say we can produce virtually all of 2.5D anti‑aliased alphaed personal computer graphics in 457 lines of program, we can let that stand on its own as being “very small”—at least 100 times smaller than other extant systems.


Вы можете представить реализацию 2.5D графической подсистемы с поддержкой антиалиасинга и альфа-каналов в 500 строк на каком нибудь языке? Хотелось бы посмотреть

[info]justy_tylor

November 10 2011, 11:48:55 UTC 6 months ago

Посмотрите исходники, кода на порядок больше. 457 lines учитывают только *.nl.

[info]wizzard0

November 10 2011, 01:01:54 UTC 6 months ago

> тот же C++

а как тогда вписаться в бюджет 20к строк? компилятор плюсовый-то поболее будет

[info]justy_tylor

November 10 2011, 01:40:25 UTC 6 months ago

А сейчас там сишный компилятор, что не особо менее. Который, разумеется, хотят заменить на Maru/Nothing, но цена (время и LOC) неизвестна. Я бы вообще не стал засчитывать код компилятора бэкенда. Ведь прошивку контроллера сетевухи тоже не они пишут.

[info]ailev

November 10 2011, 03:02:22 UTC 6 months ago

А у них ведь "прошивка контроллера сетевухи" в планах, насколько я помню -- и даже какие-то эксперименты с железом. Они ведь хотели от уровня гейта прыгать, а не просто "от железа".

[info]justy_tylor

November 10 2011, 11:55:08 UTC 6 months ago

Могут прыгать, генерируя вместо C/C++ код на VHDL/Verilog. Который, опять же, скармливать стороннему софту. В чём разница?

[info]ailev

November 10 2011, 16:24:05 UTC 6 months ago

Это как поглядеть: Мур на своём колорфорт писал кремниевый компилятор, и он у него был удивитльно компактен, так что они такую задачу могли бы в принципе ставить. Но это уже далеко выходит за задачу "офиса" -- ибо если пойти по рассуждениям этой линии, то нужно включить в их бюджет и тот софт, на котором проектировалась спинка стула в их лаборатории, и тот софт, который начисляет не только зарплату, но и налоги их уборщицы и так раз за разом прихватывая объемлющую систему их "персонального компьютинга".

[info]vadim-tsushko.blogspot.com

November 10 2011, 09:15:36 UTC 6 months ago

Который, разумеется, хотят заменить на Maru/Nothing, но цена (время и LOC) неизвестна

Цена которых известна - и включена в общий бюджет проекта в 20 тыс. строк

[info]justy_tylor

November 10 2011, 11:58:47 UTC 6 months ago

Нет. Хотят поместиться в +год и фрагмент тех 20KLoC, сколько реально затратят - узнаем только из следующего отчёта.

[info]9000

November 10 2011, 03:13:00 UTC 6 months ago

Если C++ приводится как пример лучшей понятности, то каков же оригинал??

[info]ailev

November 10 2011, 03:25:02 UTC 6 months ago

Вот-вот. В этой "понятности" и "интуитивности" есть много культурно-обусловленного. Тамошней командой утверждается, что требуется "повернуть мозги" на "другое -- контринтуитивное -- программирование", чтобы тамошние тексты и языки стали понятными. А вновь приходящим "олдовым программистам" C++ кажется интуитивно понятным, а вот тексты STEPS в их конкретном синтаксисе (несводимом к текстовому описанию алгоритмов и общих идей) -- непонятными. В этом-то и пойнт: компьютерная революция предлагается в мозгах прежде всего! И уже оттуда берутся 20тыс. строчек "от уровня логического гейта на кремнии".

[info]avlasov

November 9 2011, 12:00:32 UTC 6 months ago

крутые чуваки, чо
идея о том что все могло быть проще и компактнее - это хорошо, но если они ее еще и реализовали, то вообще гениально :)

[info]kom2006

November 10 2011, 05:42:39 UTC 6 months ago

Язык становится проще и компактнее при понятийном сдвиге, когда, например, вырабатывается такое понятие языка, кторое снимает в себе сотню других, простых для этого нового языка понятий. Тогда одну и туже мысль, или действие можно записать короче (копактнее). Но как тогда надо сдвинуть мозги (мышление), чтобы научиться говорить, писать и пр. на таком новом языке (языке программирования).

[info]ailev

November 10 2011, 06:03:11 UTC 6 months ago

Вот-вот, именно так: http://ailev.livejournal.com/960827.html?thread=9637435#t9637435

[info]kom2006

November 10 2011, 07:08:48 UTC 6 months ago

Я же это понимаю, и поэтому говорю то же самое, что и Вы, но немного в другом языке.
Правда, есть отличие, я акцентирую внимание на выполнении работы по построению новых понятий, а уже потом на построении языка, в котором эти понятия могут "правильно" применяться как средства для... А, далее интересный вопрос, а для чего применяются понятия языка? И чем они отличаются от знаний, которые тоже имеются в языке (и язык программирования работы компьютера, здесь не исключение).
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…