LINUX.ORG.RU

Метапрог-прототип, версия 6 + будильник на Метапроге

 , ,


1

3

Наконец-то настало время для первой прикладной программы на Метапроге - будильника. Чтобы правильно его собрать, нужна последняя версия прототипа Метапрога. Архив включает в себя исходные диагарммы на LabVIEW и скомпилированные exe, которые можно запустить под Wine на линуксе, читайте инструкции из архива с названием вашего языка. Скачать:

https://www24.zippyshare.com/v/xEn1RKAG/file.html

Основная причина выпуска 6 версии - исправление бага с жесткими последовательностями, ведущими к началу цикла. Это исправление вряд ли окончательное, но для трансляции диагарммы будильника сойдет. Если после транслятора из 5 версии прототипа Метапрога сообщение о времени будильника выводилось в цикле каждый раз, то тут - только один раз, в самом начале:

https://i.postimg.cc/QM43XMjf/image.png

Также проект может похвастаться тем, что функцию проигрывания звукового файла в своей основе сделал insw, успешно разобравшись с функционалом прототипа Метапрога. Я лишь добавил дебаги с условными разветвлениями (аналог if...else) и жесткими последовательностями. В получаемом из транслятора сишном коде это выглядит как множество вложенных друг в друга if...else. Проигрывание звука:

https://i.postimg.cc/d0d2FhRY/image.png

Сишная трансляция диаграммы будильника (не забудьте sound.wav!):

https://pastebin.com/YAd4J1SN

Почему будильник на константах? С графическим вводом значений пока проблемы: всплыли новые баги с «умными массивами». Исправление будет в будущих версиях. Но в этой версии исправлено несколько других багов: теперь не должно быть проблем с заданием типа массива и индикаторы прогресса закрываются сами после завершения операции.

Переворот массива

Наконец-то удалось первернуть массив из байтов. Для этого пришлось повозиться с диаграммами транслятора-кодогенератора. В 6 версии прототипа Метапрога эта диагармма уже корректно не оттранслируется, планирую выпуск 7 версии, но надо еще поработать над массивами.

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

https://postimg.cc/RJMKXyTB

Если все же что-то неясно - не стесняйтесь спрашивать. Полученный код:

https://pastebin.com/UsY0TZvc

Предыдущая версия:

Метапрог-прототип, версия 5



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

Ответ на: комментарий от insw

А вообще даже если бы ОП избегал английского, разве это плохо?

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

Представил? Теперь подставь вместо бенгальского менее популярный в мире русский или ещё раз в 5 менее популярный украинский. Это же саботаж в чистом виде. Вы ещё языком жестов ограничьтесь безо всякой причины, чтоб точно не взлетело.

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

Примерно в стандартной библиотеке Лабвью, но с поправкой на сишный бекенд. Сеть, массивы, строки, файлы, управление памятью и прочие сишные примочки…

Вы хотите добиться независимости от иных libraries /ни чего плохого в этом не вижу/?

Владимир

anonymous
()
Ответ на: комментарий от metaprog

Как вы в ней разберетесь, ничего не скачав и не запустив?

Если вы не планируете разработку manuals, то отсечете от себя много потенциальных пользователей.

Владимир

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

Не мерещатся, читай мой пост (ссылка в профиле), я сначала узнал кто они, а потом уже накидал объяснение по хейтерам.

insw
()
Ответ на: комментарий от t184256

Ну так сделай альтернативу, или переведи. Если ты так хочешь сделать свой язык доступным для большинства, то чего не выбираешь китайский в виде основного? А?

insw
()
Ответ на: комментарий от anonymous

Ну ЛОР не твитч, какое n-слово еще, он думал что «нигеры» ему мешали, ну и анб еще вроде. Давно его стримы не смотрел, забывается уже все. Жаль что новых не будет.

insw
()
Ответ на: комментарий от metaprog

Как вы в ней разберетесь, ничего не скачав и не запустив?

Пока мне ближе использование объектно-ориентированного текстового программирования.
Так как разрабатываю метадата базу, то «неспешно» многие алгоритмы уже пишутся «не вручную».

Владимир

anonymous
()
Ответ на: комментарий от t184256

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

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

Ну так сделай альтернативу, или переведи.

Дробить усилия вместо того, чтобы сразу делать на дефолтом - идиотизм.

Если ты так хочешь сделать свой язык доступным для большинства, то чего не выбираешь китайский в виде основного? А?

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

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

Метапрог многоязычный. На данный момент присутствует украинская и русская локализации.

Бог тебе судья. (с) КВН Томск

При желании можно и английскую сделать, но пока нет такой нужды.

Нет нужды что, развивать проект?

Стоп-стоп-стоп. Что такое в твоём понимании «локализация», если не отображение строк и шаблонов с дефолтного на местечковый? Это каждый язык потом придётся отображать на русский или украинский? Ты где собрался искать спеца в лабвью, суахили и украинском одновременно? Я смотрю, ты сделал все что мог, чтобы исключить возможность успеха.

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

Да хотя бы потому, что английский знает больше людей, нежели любой из китайских.

Так нет же.

А уж если смотреть на размеры пересечения этих множеств со множеством людей, знающих, что такое «язык программирования», то и думать не приходится.

А эта инфа откуда?

Что такое в твоём понимании «локализация», если не отображение строк и шаблонов с дефолтного на местечковый?

Дефолтного языка нету.

Это каждый язык потом придётся отображать на русский или украинский?

Что?

Ты где собрался искать спеца в лабвью, суахили и украинском одновременно?

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

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

Так нет же.

Дефолтного языка нету.

Пациент ушёл в отрицание, зайду позже.

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

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

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

Мне кажется тут ещё есть эффект что «славянско-ориентированные» товарищи намертво ассоциируют язык с национальностью. Что-то типа «скажем нет американским захватчикам, будем писать на китайском».

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

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

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

Пациент ушёл в отрицание, зайду позже.

Я тебе сначала говорил про то что китайцев больше чем говорящих на ангельском, потом про метапрог. Ты отрицаешь и отсутствие дефолтного языка в метапроге?

А в самом коде пусть красуется непонятная без контекста кириллица, за смыслом которой каждый лезть в .po-файл?

Каком коде? Мы про метапрог говорим, какие языки в настройках выставлены, такие и отображаются. У ОПа все на украинском, а у меня на русском.

Пациент

Ну давай уже, начинай, говори что фошыст, тролль, еще кто нибудь.

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

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

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

Проблема не в происхождении самого кода, проблема 1) в попытке приписать open-source-коду гражданство, 2) в попытке использовать «русскость» как PR-преимущество.

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

Я вот ещё помню те времена, когда мандрейк (он тогда ещё не был мандривой) считался «истинно французским дистрибутивом», и никого это не коробило.

А во-вторых, вы сами-то понимаете, за кого вписываетесь? Вот вам несколько характерных примеров из комментариев к новостям про AltLinux:

На кого расчитано это коммерческое ненужно? Это распил денег или что?

Альт-то зачем? Исключительно для того, чтобы продвигать ее российским чиновникам, которым нужно отчитаться о «российской ОС»?

Сочувствую московским медработникам, надеюсь в Питере Альта не будет.

Зачем? Полезным бы чем-нибудь занялись.

Импортозамещение в РФ, это взять debian и поставить обои с орлом) Думаю с другим так же… (напоминаю, это в новости про альтлинукс)

Гораздо проще поставить debian/ubuntu и держаться от отечественного «производителя» подальше.

И типа вежливый вариант (я чуть не заплакал):

По моему этой новости не место на данном ресурсе, имхо.

Заметьте, это я принципиально в удалённые комментарии не лазил, там ещё веселее.

При чём здесь какие-то «попытки приписать» или «попытки использовать»? Просто национал-жопоголизм во всей красе. Явная предвзятость.

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

Мне кажется тут ещё есть эффект что «славянско-ориентированные» товарищи намертво ассоциируют язык с национальностью.

А кто такие «славянско-ориентированные» товарищи? Вы по-моему, придумываете себе оппонентов и начинаете им отвечать.

Речь шла о реальной проблеме предвзятого отношения к российским программам. И не только российским: термин «троллинг славянского ПО» на ЛОРе впервые употребил украинский программист, автор известного в узких кругах текстового редактора. Вы зачем-то начинаете в ответ упоминать каких-то «славяно-поклонников».

Вопрос «национальное/глобальное» однозначно не решается. Есть даже области, где уместны языки программирования с национальными ключевыми словами. Да, ядро ОС так разрабатывать, скорее всего, нецелесообразно. А вот какую-нибудь заказную автоматизацию — вполне.

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

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

ну и конечно стандартные разговоры айтишников об эффективном использовании людей…

keinas
()
Ответ на: комментарий от hobbit

И не только российским: термин «троллинг славянского ПО» на ЛОРе впервые употребил украинский программист, автор известного в узких кругах текстового редактора.

..использовавший название «файловый приказчик» в интерфейсе своей программы.

Ты действительно хочешь продолжать этот разговор об очевидном?

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

..использовавший название «файловый приказчик» в интерфейсе своей программы.

Это перебор, но не преступление и даже не повод хаять всё написанное конкретно им. А тем более не оправдание тем, кто хает весь софт российского производства (равно как и украинского).

Кстати, а как правильно? «Диалог открытия файлов» — формально правильно, но очень уж длинно.

// P.S. Browser, на мой взгляд, лучше всего переводится как «обозреватель».

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

Это перебор, но не преступление и даже не повод хаять всё написанное конкретно им.

Это повод считать человека неадекватным сектантом.

кто хает весь софт российского производства

Ну и кто теперь спорит с воображаемым собеседником?

Толковые российские разработчики очень высоко ценятся и у нас, и «там». И код пишут отличный. Но только когда они не бегают в шапках ушанках, валенках и с балалайками думая что так продвигают культуру в массы, а на самом деле занимаясь самоизоляцией и распугиванием всех возможных единомышленников.

А уж делать выводы по российским разработчикам и российскому софту по странным личностям с ещё более странными проектами на ЛОРе - совсем дурное дело.

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

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

А авторы новостей про Альтлинукс, предвзятые комментарии к которым я цитировал, «бегали в шапках ушанках, валенках и с балалайками»?

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

А авторы новостей про Альтлинукс, предвзятые комментарии к которым я цитировал, «бегали в шапках ушанках, валенках и с балалайками»?

Вообще, да.

Новости о релизах - это конечно замечательно, но у каждой темы есть ещё контекст. Который не за один день нарабатывается.

Если бы они пиарились на том как они помогают создавать эко-систему для Open Source в России, как они занимаются поддержкой и развитием Linux - это было бы круто.

К сожалению они занимаются пиаром на почве санкций и госреестров. То есть вместо того чтобы служить проводником для Linux и Open Source в России, нарабатывать связи и т.п., они пиарятся на том что они его собой заменяют, окукливаясь в своём мирке.

Есть разумеется толковые альтовцы, и допустим когда слышишь что консольные кириллические шрифты в Fedora пришли из AltLinux - это круто. Но в общем и целом атмосфера не та.

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

А что с книгами на русском? Не видел ответа еще...

insw
()
Ответ на: комментарий от anonymous

И во-вторых, реализации чего-то визуального, если начнётся хайп, напишут многие люди, многие вообще все из которых гораздо более опытны чем автор треда. И таким образом те реализации будут куда лучше.

как будто что-то плохое

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

Я тебе сначала говорил про то что китайцев больше чем говорящих на ангельском,

Говорящих на английском больше, чем на самом популярном из «китайских». Плохо говорящих - много больше

потом про метапрог. Ты отрицаешь и отсутствие дефолтного языка в метапроге?

Я ниче не утверждал, но мне кто-то из вас, виртуалов автора, в этом треде сказал, что его нет.

Каком коде? Мы про метапрог говорим

В коде метапрога, ясен-красен.

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

Говорящих на английском больше, чем на самом популярном из «китайских».

Так там есть стандартный петухай какой то.

Я ниче не утверждал, но мне кто-то из вас, виртуалов автора, в этом треде сказал, что его нет.

Ниче не понял, забьем.

В коде метапрога, ясен-красен.

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

insw
()
Ответ на: комментарий от hobbit

А тем более не оправдание тем, кто хает весь софт российского производства

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

Непонятно.

t184256 ★★★★★
()

Основная причина выпуска 6 версии - исправление бага …

Нет. Основная причина — создание новой темы. Ведь в старую тему @insw больше не может извергать потоки бреда.

i-rinat ★★★★★
()
Ответ на: комментарий от alpha

..использовавший название «файловый приказчик» в интерфейсе своей программы.

Не, если только для пользователей ru_UA.UPRLS, то это даже весело.

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

Ни имен переменных? Ни констант из интерфейса пользователя?

В Метапроге нет «переменных». Есть блоки (имеющие многоязычные названия) и безымянные проводки между ними. Константы есть, и они имеют многоязычные названия (как блоки).

А что за «константы из интерфейса пользователя»?

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

Новаторское было бы придумать такие абстракции, с помощью которых можно было бы эффективно и «писать» и «читать» такие программы. Но ТС абстракций не признаёт и прёт прямо по низкоуровневым операторным схемам. Правда не знает, что оно так называется, но это мелочи.

Я еще полгода назад об этом ему говорил.

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

Вообще надо бы это всё добро описать и продать в Zachtronics на опыты, вместе с автором. Глядишь через годик-полтора они новую безумную гиковскую игру выпустят…

alpha ★★★★★
()
Ответ на: комментарий от i-rinat

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

insw
()
Ответ на: комментарий от metaprog

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

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

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

У меня еще до начала работы над прототипом Метапрога был опыт работы с Лабвью, и мне для программирования на нем более чем хватало кластеров (аналог структуры), массивов и строк. Правда не хватает юнионов, структур условного выбора типа и версионированных форматов - они уже будут в Метапроге.

Кстати, на моих диаграммах жгутики можно увидеть только через дно бутылки из-под крепкого спиртного напитка.

придумывать абстракции - твоя работа

Надо же, а я уже был готов внимать мудрости великого питониста...

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

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

keinas
()
Ответ на: комментарий от metaprog

У меня еще до начала работы над прототипом Метапрога был опыт работы с Лабвью

И только-то.

мне для программирования на нем более чем хватало кластеров (аналог структуры), массивов и строк

Это слишком низкоуровневые абстракции.

Кстати, на моих диаграммах жгутики можно увидеть только через дно бутылки из-под крепкого спиртного напитка

У тебя все кубики стягиваются жгутиками, чушь не неси.

Надо же, а я уже был готов внимать мудрости

Я не буду делать твою работу за тебя.

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

У меня еще до начала работы над прототипом Метапрога был опыт работы с Лабвью

И только-то.

Мне Лабвью хватает, чтобы работать с сетью, файлами, строками, массивами итд. На нем вполне себе можно делать прикладной софт, не заморачиваясь с гуглением и мануалами, и даже не прочитав ни одной книги по программированию. Беда лишь с рантаймами, портируемостью только на ПК и невозможностью ваять ядра ОС пож х86, драйвера, прошивки микроконтроллеров итд.

мне для программирования на нем более чем хватало кластеров (аналог структуры), массивов и строк

Это слишком низкоуровневые абстракции.

Мне их хватает.

Кстати, на моих диаграммах жгутики можно увидеть только через дно бутылки из-под крепкого спиртного напитка

У тебя все кубики стягиваются жгутиками, чушь не неси.

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

придумывать абстракции - твоя работа

Надо же, а я уже был готов внимать мудрости

Я не буду делать твою работу за тебя.

Пожалуй, ты прав. Мне виднее, какие абстракции нужны в Метапроге.

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

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

Не кловунадь.

Мне Лабвью хватает… Беда лишь с рантаймами, портируемостью только на ПК и невозможностью ваять ядра ОС пож х86, драйвера, прошивки микроконтроллеров итд.

Провал.

Мне виднее

Пусть. Но с твоим видением никто не согласен, и пользоваться поделкой будешь только ты сам, и твои ручные клоуны.

liksys ★★★★
()

Очередной релиз Анти-метапрога. Превращает меташлак в чуть менее меташлак. Если ещё и автоформаттером по результату пройтись, появляется небольшой шанс понять, что в коде происходит.

import re
import sys

with open(sys.argv[1]) as f:
    s = f.read()

class Ctx:
    pass

def renamer_func(ctx, m):
    old_name = m.group(0)
    if old_name in ctx.renames:
        return ctx.renames[old_name]
    new_name = ctx.prefix + ('%02d' % ctx.counter)
    ctx.counter += 1
    ctx.renames[old_name] = new_name
    return new_name

ctx1 = Ctx()
ctx1.prefix = 'var_'
ctx1.counter = 1
ctx1.renames = {}
s = re.sub('metaprog_instance_[a-zA-Z0-9_]+(variable|junction|structure_constant|loop|pointer)_[a-zA-Z0-9_]+',
            (lambda ctx: lambda m: renamer_func(ctx, m))(ctx1), s)

ctx2 = Ctx()
ctx2.prefix = 'struct_'
ctx2.counter = 1
ctx2.renames = {}
s = re.sub('metaprog_instance_[a-zA-Z0-9_]+_structure_definition_[a-zA-Z0-9_]+',
            (lambda ctx: lambda m: renamer_func(ctx, m))(ctx2), s)

print(s)
i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Я смотрю по gcc -Ofast -S. Все лишнее так убирается. А у тебя ренейм обычный, будто бы никто его делать не умеет.

insw
()
Последнее исправление: insw (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.