LINUX.ORG.RU
ФорумTalks

ACPU - новая платформа. Разработка для iOS под Linux.

 , , , ,


2

1

Animation CPU (ACPU) — это новая VM, язык программирования, новая IDE и все остальное тоже новое.

Многих интересует:
Какой язык учить?
Какой язык простой?
Какой язык лучше для быстрого прототипирования и создания утилит?
Какую платформу выбрать, чтобы работало везде с максимальной производительностью?

ACPU дает ответ на все вопросы.

Состоит из IDE, Compiler, Executor

Executor
Виртуальный процессор (модель аналогичная CPU - порты, память, инструкции). VM. В качестве Code Backend выбран exprtk - слава Индии:). Был выбран по критерию - решает задачу, прост и стабилен. Для системного уровня (Display, Sound, Input) используются игровые движки: cocos2d-iphone (iOS), cocos2d-x, HGE (Windows, Linux, Android), three.js (HTML5), Away3d (Flash). Выбрано по критерию времени разработки и поддержкой GPU Shader. Для генерации звука используется модуль DSP и нативные форматы.

Compiler
Компилятор нового языка ACPUL. Another CPU Language (ACPUL) - язык программирования для быстрого прототипирования с низким порогом вхождения. Состоит из 2х уровней. Уровень инструкций и уровень архитектуры. Инструкции это стандартные математические выражения, доступные любому. Архитектура это дерево объектов - аналог файловой системы (классов/модулей/свойств). Основой является декларативный синтаксис на основе классических C-подобных языков (C/C++/Java/ActionScript). В языке отсутсвуют типы, на уровне инструкций все происходит с float, а на уровне архитектуры с object/file. Язык основан на unicode, синтаксический сахар минимален (нет ни void, ни int), потому позволяет писать программы на любом национальном языке - русский вперед:). Следсвие языка: можно легко прототипировать архитектуру, рефакторить, складывать модули и доводить до исполнения в конечном устройстве за кратчайшее время.

IDE
Разработано на ACPUL и выполнеется самом ACPU, потому выполняется на всех платформах (включая JS/HTML5, Flash, Unity3d). IDE имеет стандартные функции, как Profiler, Debugger, но с уклоном на UI.

Среда запуска ACPUL
ACPU имеет возможность выполняться в любой среде (в том числе Adruino и микробах). Компилятор транслирует ACPUL в код для необходимой платформы (C, ActionScript, etc). В последствии код собирается стандартными средствами и выполняется с минимальным оверхедом на целевой платформе. Получется минимальный код и оверхед, возможна аппаратная реализация ядра. На само ядро ограничение не накладыватся (спасибо математике), а накладывается на модули - например, в AVR нет GPU, потому вместо графики будет модуль мигания лампочками:), а вместо DSP с Reverb будет beep, на уровне программы это отразится с минимальными потерями при правильной архитектуре, поскольку архитектуро-ориентированный язык это позволяет сделать.

Цели проекта
Упростить жизнь разработчикам и сделать программирование более доступным при сохранении аксиомы 80/20.

Что необходимо проекту?
Поддержка и критика.

Основной сайт:
http://acpul.org/
Сейчас не работает хостинг, сайт на github.

Github:
https://github.com/d08ble/acpu
samples/* - лежат результаты работы 2х приложений на платформе ACPU. Графический AI на основе генетических алгоритмов и демо.
acpul-EBNF-cocor/* - граматика
web/ - веб-сайт acpul.org v0.1 и разбор syntax tree в code.html

Ссылки:
exprtk - https://code.google.com/p/exprtk/
Codea - http://twolivesleft.com/Codea/Talk/

ps: надеюсь на помощь сообщества для всех багфиксов и получения материалов доступных для всех, в том числе

Перемещено mono из general



Последнее исправление: d08ble (всего исправлений: 1)

Это какая-то глупая шутка? На гитхабе кроме набора скриншотов ничего нет. Или проект родился час назад и ничего еще нет?

mono ★★★★★
()
Последнее исправление: mono (всего исправлений: 1)
Ответ на: комментарий от mono

для тех кто в танке

хотел написать, faq для тех, кто в танке. там еще и js есть и вроде как написал, что инфа не для всех, а нужны те, кто поможет это все правильно оформить в первую очередь, чтобы было всем понятно проекту 5 лет уже, из секретных лабораторий, так сказать.

по тому, что на гитхабе - дайте другим посмотреть, что C сразу признали или там Objective-C? глупой шутки нет, есть все ссылки, см. Codea, которую фючерит сам Apple. это такая же штука, но лучше, еще и по-русски

d08ble
() автор топика

я джва года ждал такую платформу

onon ★★★
()
Ответ на: для тех кто в танке от d08ble

http://twolivesleft.com/Codea/Talk/search?Search=ACPUL

No results for ACPUL.

Я что-то не так делаю?

по тому, что на гитхабе - дайте другим посмотреть

Смотреть на что? На пару HTML-страниц и скиншоты?

чтобы было всем понятно проекту 5 лет уже, из секретных лабораторий, так сказать

У нас есть мега-крутая-штука, но мы ее никому не покажем?

mono ★★★★★
()
Ответ на: комментарий от mono

No results for ACPUL.

Я что-то не так делаю?

это по какому запросу? оно существует)

Смотреть на что? На пару HTML-страниц и скиншоты?

да

У нас есть мега-крутая-штука, но мы ее никому не покажем?

покажем, все по порядку. зачем было бы на лор писать, если есть полно других ресурсов и за время разработки проекта было много времени подумать, чтобы ответить на вопрос - куда писать? ну на ixbt или прямо в gnu/apple тоже можно. лор уже дал много добра, пусть его будет больше, так на мой взгляд.

d08ble
() автор топика
Ответ на: комментарий от wota

qt, emacs - другая весовая категория. acpu ориентирован в первую очередь для разработки на планшетах, Codea тому пример. сейчас не многие используют планшеты, а разрабатывают вообще единицы, потому объяснить проблематично, но тема очень хорошо форсируется тем же m$, например: https://www.touchdevelop.com/

d08ble
() автор топика
Ответ на: комментарий от Novell-ch

чем оно лучше emacs?

само ide не лучше, не хуже. оно другое с применением иных подходов к разработке. в acpu само ide является частью платформы. например, при профайлинге можно запрограмировать рендер ide так, что оно будет использовать gpu со всеми шейдерами и т.п. наиболее критичные места кода могут отображаться красным цветом, а неиспользованные объекты синим. к самим объектам могу подключаться модули навигации и рефакторинга, которые сами определят наиболее удобные методы отображения для использованного устройства, как вариант, чтобы было удобно юзать на планшете. возможно разрушает стереотипы для разработки, но оно само построено на основе большого опыта работы с различными ide на различных платформах, в том числе и emacs и тоже ориентированно на руки.

d08ble
() автор топика
Ответ на: комментарий от quickquest

А Processing?

ближе к processing, но более похоже на vvvv.org, тоже модульная архитктура. acpul более гибкий язык и меньше синтаксического сахара (зачем void в математике?). Processing: void setup() { size(480, 120); } ACPUL: setup { size(480, 120); };

d08ble
() автор топика
Ответ на: комментарий от uuwaan

в каком смысле? gd это на закуску, платформа общего назначения

d08ble
() автор топика
Ответ на: комментарий от d08ble

это по какому запросу? оно существует)

я ссылку выше дал за запрос.

да

покажем, все по порядку. зачем было бы на лор писать, если есть полно других ресурсов и за время разработки проекта было много времени подумать, чтобы ответить на вопрос - куда писать? ну на ixbt или прямо в gnu/apple тоже можно. лор уже дал много добра, пусть его будет больше, так на мой взгляд.

Пока это больше троллинг напоминает.

mono ★★★★★
()
Ответ на: комментарий от mono

сорри, пропустил, вижу перешло в «нетехнические разговоры о Linux/Unix».

d08ble
() автор топика
Ответ на: комментарий от mono

я ссылку выше дал за запрос.

не верный запрос. codea это единственный аналог, которое работает на планшете и позволяет создавать приложения. привел их форум для примера, acpu и acpul к ним никак не относится по данным - пока только в бд лора есть:).

Пока это больше троллинг напоминает.

покажите мне идиота, который будет троллить новой платформой? типа сидят такие разработчики в intel, которые должны отдать файлы новой 1нм-разметки кристалла на печать i777, думают во время перерыва «а давай-ка лор затроллим несуществующей платформой» или как? знания, знаете ли, в подворотнях не валяются. так конечно, смысл платформы глубокий и понятен с трудом, а контекст на троллинг похож конечно, тем более умных ботов развелось уже, любого с ума сведут.

d08ble
() автор топика
Ответ на: комментарий от d08ble

покажите мне идиота, который будет троллить новой платформой?

Я выше ссылку на MD OS Ice кидал, там не платформа, а даже операционная система представлена.

Просто раздувание информационного шума без предмета обсуждения выглядит очень глупо.

Вот как зарелизитесь, хотя бы в пре-альфа-версии, тогда будет смысл обсудить.

mono ★★★★★
()
Ответ на: комментарий от Dirty_Diana

нет, сам сайт на гитхабе пока хостинг рожается

d08ble
() автор топика
Ответ на: комментарий от mono

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

d08ble
() автор топика

Где-то я это уже слышал... а «принципиально новая ос»!

urandom
()
Ответ на: комментарий от mono

презентация пока в виде гитхаба. любому, кто имеет познания в разработке языков программирования будет понятна представленная информация. На лоре: язык мечты Какие языки учить? Язык программирования будущего это 3 линки, которые у меня еще в очереди, а все остальные 1.6k здесь www.linux.org.ru/search.jsp?q=язык&oldQ=язык&range=TOPICS&offset=100 да, информации мало, потому и ищу поддержку в этом направлении. возможно тему надо переместить в Development вроде тема актуальна

d08ble
() автор топика
Ответ на: комментарий от urandom

да
вас интересует много это или мало? или что было сделано за этот период?

d08ble
() автор топика
Ответ на: комментарий от d08ble

да, информации мало, потому и ищу поддержку в этом направлении

Чтобы искать какую-то информационную поддержку, нужно иметь предмет информационной поддержки.

Добавь в топик ссылки на примеры приложений (а не скриншоты) и ссылку на дистрибутив, про который ты говоришь, тогда есть смысл перенести в Development.

mono ★★★★★
()

Компилятор нового языка ACPUL.

Ты покажи хотя бы example code на этом языке для начала, а то действительно выглядит как троллинг.

А, всё вопрос снят, нашел на гитхабе какие-то типа-исходники.

Ждём компилер.

p.s. объясни что здесь происходит? - https://github.com/d08ble/acpu/blob/master/acpul-EBNF-cocor/tests/test-follow...

Документации на язык нет что-ли?

pi11 ★★★★★
()
Последнее исправление: pi11 (всего исправлений: 2)
Ответ на: комментарий от pi11

a{b 1;r0;};
создается объект a и a.b
a = r0
a.b = 1
r0 - регистр, переменная тип float. аналог регистра проца. на каждый блок выполнения выделено определенное к-во регистров. почему ограниченное к-во регистров, а не бесконечное к-во переменных? из практики, так получилось удобнее и функциональность сохраняется. есть 3 вида, глобальные для среды u0-u32, локальные функции r0-16 и локальные блока b0-b32.
a _+1;
это значит, что новый объект с именем 'a' следует (follow) за предыдущем. overload, override. если вызвать, методом a(); то в результате получится r0+1;
***
особенность следования заключается в том, что все вызовы предыдущего объекта заменятся на вызов нового объекта. перезагрузка методов.
например:
# file acpu.system.acpul
print('hello world');
# file myapp.acpul
print {log.to.file(_0); _;};
такая конструкция добавит запись в лог. сначала вызовется log.to.file, потом оригинальный print
***
a.c.d r0; #создает объект a.c.d;
a.b _+2; #следует предыдущему объявлению объекта a.b 1; результат a.b' = a.b+2 == 1+2

в результате такой объект:
a r0;
a.b _+2 -> a.b'+2 -> 1+2
a.c.d r0;

e a; # создает объект, ссылающийся на объект a. ссылки (link) это как symlink в линуксе, однако это фактически полная копия объекта, которую можно дополнять новымим свойствами.

link и follow используются при поиске объектов. follow дополнительно вызывает предыдущий объект.

e1
{
_ e; #вставить объект e в e1, перемещает все свойства, следуя follow&link. проход по дереву объектов происходит динамически, хранятся только ссылки, память не дублируется
};

после конструкци _ e; объект e1 будет содержать ссылки на все свойства объекта e, то есть e1.b -> a.b, e1.c -> a.c;

e1.b; # это вызовы методов
e1.c;
e1.c.d;

в других файлах тесты с вменяемыми именами, смотрите stack.acpul

если вы запустите web/code.html (учтите browser local policy), то увидите разбор граматики 2х файлов с подсветкой синтаксиса. это сейчас прорабатывается вместе с остальной инфой, позже заработают линки и будет ясно какой объект откуда получился и во что скомпилировался.

d08ble
() автор топика
Ответ на: комментарий от pi11

Документации на язык нет что-ли?

документация в процессе, как и сайт. так вышло, что основной приоритет был в разработке и только дело дошло до всего остального. на самом деле оно достаточно примитивно, документация на api занимает 5 страниц, а описание языка и того меньше. модули, да, как у vvvv.org это целые истории.

d08ble
() автор топика
Ответ на: комментарий от mono

Добавь в топик ссылки на примеры приложений...

ок, понял. над этим идет работа тоже, но будет ближе к концу месяца

d08ble
() автор топика
Ответ на: комментарий от d08ble

А вот тогда тоже можешь описать? -

https://github.com/d08ble/acpu/blob/master/acpul-EBNF-cocor/tests/stack.acpul

Что например означает _0?

И это? -

register:=register+1; register+=1;

Или лучше описание языка, раз оно короткое.

pi11 ★★★★★
()
Последнее исправление: pi11 (всего исправлений: 1)
Ответ на: комментарий от pi11

_0 - параметр функции. _0 - первый, _1 - второй
код C:
float fn(float a, float b) {return a+b;}
эквивалентен APCUL:
fn {_0+_1;};
если нужны именованные параметры пока это реализуется через
fn {a _0;b _1;a+b;};
возможно покажется не слишком удобно в ряде случаев, но в идеологию платформы вписывается очень хорошо, поскольку там есть ряд особенностей.

register:=register+1; register+=1; - это баг, если по логике stack смотреть, должно быть просто register+=1; экспорт для веба делается в компиляторе, экспорт в разработке, разные тестовые файлы гоняются, это один из них с таким не логическим багом.
stack.register u0; # глобальный регистр для всего acpu (общий стек для всех блоков, как в обычном cpu).
register+=1; # добавляет 1 к register, который u0

d08ble
() автор топика
Ответ на: комментарий от pi11

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

d08ble
() автор топика
Ответ на: комментарий от Legioner

Чем оно лучше

Как можно говорить о «лучшести» если «оно» нет еще в природе? Пока есть только бла-бла.

urandom
()
Ответ на: комментарий от Gorthauer

На видео в среднем 20 FPS. GPU iPad рендерит 1000 квадратов 50х50 шедерами. Если отключить шейдеры, тогда будет 60 FPS. Учтите еще тормоза записи видео с экрана iPad и перекодировку youtube. Если смотреть вживую, то тормоза не ощущаются.

d08ble
() автор топика

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

5 лет осиливал Coco/R, что бы написать грамматику?

ну а вброс годный. Почему-то мне кажется, что одни и те же личности последнее время делают эти треды, да.

TakeOver
()
Ответ на: комментарий от Legioner

Да то самое. Нет никаких доступных инструментов разработки под MacOS X, кроме как работающих на Макинтоше же. С другой стороны, код для Линукса ты можешь и в винде и в Маке писать.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Legioner

Тем же, чем Codea лучше/хуже XCode, LUA/Objective-C. Основные преимущества: разработку можно делать на планшете, кроссплатформенное как PhoneGap. Мгновенная компиляция и отображение результата.

Этот проект родился после очередных 100k строчек Objective-C кода.

d08ble
() автор топика
Ответ на: комментарий от TakeOver

грамматика минимальна и свои задачи решает. если проведете полный анализ и сравните с остальными 100500 языками http://en.wikipedia.org/wiki/List_of_programming_languages , какие для каких задач, то оно окажется вполне годным. если не ошибаюсь, еще в 97 году coco/r был, как и остальные базовые понятия FIDO и BBS, а понятия вброс небыло - спасибо seo-оптимизации и соцсетям

d08ble
() автор топика
Ответ на: комментарий от andreyu

я о том же, видите сколько проблем, потому и ищу поддержку. кому действительно интересна тема, сам во всем разберется и может помочь информацию донести. должен был получиться анонс платформы, а видимо получился такой-себе crackme

d08ble
() автор топика
Ответ на: комментарий от d08ble

Внесу немного ясности, почему все так не структурированно.

Изначальный план был выложить в open-source после того, как приложение выйдет в AppStore и отобьет все затраты. Был расчет на киллер-фичу проги - обмен компонентами/проектами через GitHub. Это позволило бы сделать что-то вроде наподобии кросс-платформенной системы, со своим оконным менежером и панелью задач.

Однако Apple окончательно внесло свою ясность по поводу первого и единственного аналога Codea.

http://twolivesleft.com/Codea/Talk/discussion/275/faq-please-read (пару месяцев назад этого небыло, вчера только обнаружил)

«Can I share projects or get them off my iPad?
Sharing functionality was removed as of version 1.2.7 at the request of Apple. We hope to have it back in as soon as possible. Previously you were able to touch and hold one of your projects to send it by email. And could open projects by tapping „project.codea“ files in your browser or in Mail.»

Единственный выход делать IAP для шаринга проектов (скачал-заплати, раздал-заплати, чтобы Apple зарабатывала), но это костыль и развитие платформы всеравно будет заторможено. Все редакторы, системы мониторинга, ssh, vnc и игры и прочее планировалось сделают сами разработчики, а обмен кода определит лучшие реализации, и все бесплатно и открыто (acpul ориентирован на открытость).

Поскольку кросс-платформенность одно из свойств системы, а выкладывать в open-source всеравно планировалось, то и открыл часть не структурированной информации раньше времени. Извиняюсь, если забрал ваше время зря. Оно однозначно дойдет до внимания open-source сообщества после запуска всех демонстрационных приложений.

Еще одна киллер-фича - это анимации на основе Flash/HTML5 (как GIF). Очень легкое ядро и нативный экспорт позволяет это сделать минимальным кодом на JS (меньше jquery по-идее и без лишних ресурсов, а средний код анимации как в видео acpul компилируется в 1kb без всяких asm.js). На страницу встраивается java-скрипт, который сам вычисляет конфигурацию клиента и подгружает один из вариантов Flash/HTML5/GIF/JPG (gif - если нет Flash/WebGL, jpeg - статика, если слабое подключение. gif и jpeg генерируется из acpu один раз при компиляции, например). Это ближе к open-source, чем Apple. acpul в данном случае как css, но для анимаций.

ps: оно уже все работает, видео есть и прога тоже. у кого есть ipad смогут проверить. понимаю, что возможно публику лора не сильно интересуют такие простые проекты, но где еще искать ответы по open-source (пока не понимаю, зачем вообще открыл). сорри за орфографию и прочие баги, позже все оформится как надо и будет красиво, а я буду не в такой запаре и будет время на грамоту. всем спасибо за внимание, все замечания учтены.

d08ble
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Да то самое. Нет никаких доступных инструментов разработки под MacOS X, кроме как работающих на Макинтоше же.

Их полно. Практически любой популярный ЯП имеет порт для OS X. То же про графические фреймворки.

С другой стороны, код для Линукса ты можешь и в винде и в Маке писать.

Ты и для мака можешь код в линуксе писать. C++, Qt (или любой другой язык) и вперед.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.