Тысячекратная компактность кода

отметили
64
человека
в архиве
Тысячекратная компактность кода
Алан Кей сотоварищи разрабатывают методологию проектирования STEPS, позволяющую уместить систему объемом десятки миллионов строк кода (если судить по имеющимся аналогам, созданным в императивном стиле) в 20 тысяч строк кода.

Основной объем работы пришелся на «допиливание» тестовой версии Frank до более дружелюбной. Frank — это когда «в 20 тысячах строк кода реализовано все, что надо типичному пользователю современного ПК, включая, конечно, и операционное окружение.

В крохотном объеме Frank уместятся и низкоуровневые-кроссплатформные интерфейсы с железом, и прикладные пакеты уровня MS Office. Хотя главной задачей коллектива Кея назван поиск подходов, с помощью которых можно реализовать такую анти-масштабную задачу, но и сам Frank, конечно, станет ценной вещью — свободной и открытой, не требующей инсталляции ОС, содержащей в себе все и работающей на множестве платформ. Создается он под девизом „математика рулит!“ (Math Wins!)».

Так, поддержка типовой для Frank-а 2.5D-графики уместилась в 457 строк кода.

Реализация TCP/IP в классических системах занимает 20 тыс строк кода на Си, а самые лучшие реализации все равно состоят из тысяч операторов. В Frank на TCP/IP ушло всего 160 строк кода!

Совершенствуется графическая UI-оболочка, изыскиваются более эффективные методы стыковки высокоуровневых проблемно-ориентированных языков с аппаратной реализацией — по понятным причинам, ведь низкоуровневый код в отличие от DSL-языков просто так не сократишь, и тысячи строк «улетают» только на него, да и сам по себе код, как выражается Кей, слишком «грязный», и его надо хорошенько почистить.

При этом авторы сами не ожидали, что работа итоговой системы получится весьма быстрой. Ведутся работы и по повышению прозрачности и общедоступности самой технологии.

Работы выполняются на деньги частных инвесторов через Национальный научный фонд США по теме «наука проектирования», участвуют в работах и математики, задача которых — формализовать понятие идеального дизайна сложной программной системы. В дополнение к термину DSL Кей также использует POL (problem oriented language), который представляет собой «исполняемую математику».

STEPS — это моделирование «персонального компьютинга» от пользователя вниз до железа, и создатели отмечают, что далеко не все сильные идеи проектирования удалось воплотить на практике, так что коэффициент 1:1000, вероятно, можно еще заметно улучшить.
Добавил suare suare 19 Апреля 2012
проблема (2)
Комментарии участников:
Корнеплод
+5
Корнеплод, 19 Апреля 2012 , url
На каком языке эта новость? Такое ощущение, что переводил ее на русский человек не совсем адекватный. Я-то понял, но с таким трудом.
suare
0
suare, 19 Апреля 2012 , url
davaeron
0
davaeron, 19 Апреля 2012 , url
1. Дата отчёта: октябрь 2011.
2. Безумные математики такие безумные, что я просто в ахуе.
3. Ну и толку-то от этой «прослойки»? Очередная JAVA не нужна.
VAshot
+2
VAshot, 19 Апреля 2012 , url
Озвучьте, пожалуйста, длину строки. :)
acefsm
+2
acefsm, 19 Апреля 2012 , url
В Frank на TCP/IP ушло всего 160 строк кода!
код в студию пожалуйста!
eill.livejournal.com
+1
eill.livejournal.com, 20 Апреля 2012 , url
это страшная тайна.

в целом новость — полный идиотизм, потому как даже для описания типов пакетов, всех флагов и заголовков не хватит и тысячи строк кода. Чисто с string'ами, а все эти вещи нельзя вывести одну из другой.

уместить все в 160 строк? Ну-ну.


Войдите или станьте участником, чтобы комментировать