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)

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

Что я писал я тебе доказывать не буду) никакой подобной херни я действительно в жизни не писал, тут ты прав)

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

Деревьев пока нет. Реализуй сам, если знаешь как их делать (и если позволит текущая версия прототипа).

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

Ты серьезно настолько тупой? Ты говоришь: «моя НЁХ круче вашего проверенного решения». У тебя просят пруфов, а ты говоришь: «а как проверять? Я что ещё тесты дизайнить должен?»

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

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

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

Как же я вообще программирую в Лабвью и прототипе Метапрога, не обладая этими Сакральными Знаниями?

Хреново программируете, в этом тут абсолютно все единодушны.

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

Как же я вообще программирую в Лабвью и прототипе Метапрога, не обладая этими Сакральными Знаниями?

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

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

Я подобную задачу парсинга текста легко решу на Лабвью

Вперёд, решайте. Только ведь не решите а полдня промучаетесь и обгадитесь публично как с квадратным уравнением. Вы балабол 80лвл, этого не отнять - но это единственное в чем Вы сильны.

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

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

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

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

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

Ну там робота ещё собрать надо было, там типа грузовик, и программы типа: «поедь туда, возьми хрень, привези хрень». Но по тем временам все равно очень круто, особенно для 11летнего пацана.

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

ну например тупо от балды такой тест:

  • создаете 100 000 рандомных строк длинной 100 символов

  • строки Юникод, ибо он сейчас везде. Но пусть будет только латиница даже без цифр

  • в цикле из 1000 итераций

    • создаете рандомную строку длинной 20 символов
    • ищете в ранее созданном массиве первое вхождение данной подстроки
  • Для чистоты эксперимента запускаете тест 10 раз. Оцениваете время и потребление памяти

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

Я первый комп купил себе на третьем курсе, до до компа дома не было - только папин программируемый калькулятор. Эх, молодежжж…

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

ну я не настоящий сварщик, только учусь))) Попросили вариант бенчмарка я предложил

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

Я тут другу на ДР мк-51 подарил, вот мы с ним поразвлекались) и его отец ещё потом (учёный советский)

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

тогда и поговорим

Чуваааак! Ты когда clang запускаешь, запускаешь в том числе и его код. Ты правда считаешь, что своими поделками можешь сравниваться? Тебе до серьёзных разговоров — как до Луны пешком.

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

недовойнушка, на которых олигархи и чинуши по обе стороны СОВМЕСТНО делают миллиарды баксов

Иногда ты бываешь удивительно адекватен :)

Что-то не слышно, чтоб их осуждали

Ну как не слышно? С северо-восточной стороны осуждают юго-западных, с юго-западной — северо-восточных. (Это грустная шутка такая.)

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

то что тут никто это не обсуждает

Я так понял, он имеет в виду не «тут», в смысле на ЛОРе, а в обществе в целом.

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

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

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

Да, на чистом Си трахаться с нуль-терминированными строками, прописывать типы, структуры, определения функций и многое другое пальцы отвалятся.

Из названного тобой реальная проблема — только строки. Да, со строками в Си тяжело. И именно потому, что строка там — чисто массив символов, а не нелюбимый тобой объект.

Кстати, а на паскале (Delphi, FPC) ты что-нибудь делал? Уж там с типизацией всё строго, и для прикладнухи он полегче, чем сишечка.

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

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

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

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

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

ну штош… главное благополучно это не забыть, чтобы вновь не недоумевать.

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

Да да да, сто раз уже слышали. Не знаете, ну и бог с вами, всё-равно рано или поздно пойдете гуглить и узнаете (нет, на самом деле вы еще немножко потыкаетесь и разочаруетесь в программировании потому что оно сложнее того что вы делаете сейчас).

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

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

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

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

А ведь если подумать - то и на Лабвью кое-что из этого делать при желании можно. По крайней мере списки точно можно, ведь там есть свое подобие указателя, а арифметика указателей (которой в Лабвью нет) в списках не нужна.

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

Метапроговский массив тоже будет иметь защиту от дурака - это ж ведь не просто указатель, а еще и длина и метка «динамический».

Поживем - увидим.

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

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

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

Я уже реализовал массивы в Метапроге.

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

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

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

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

Ну во-первых вы постоянно уходите от ответов по теме, во-вторых как то, что вам, видимо, нужен попугай, коррелирует с тем, что вы написали? О каких тезисах вы говорите, о чем вы вообще?

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

Свежо придание… Да будет вас известно, раз вы уж так «топите» за лоулевел, ничто не поддерживает рекурсию, рекурсия типичная абстракция которые вы якобы так не любите, в конечном итоге это все разворачивается в банальный цикл. Я так же уверен что кодогенератор лабвью выполнен в мириады раз лучше того, чо есть у вас. «Многие другие плюшки» говорите нормальным техническим языком, мы же с вами тут не на ресурсе выпекания плюшек. И в конце очередная реклама того чего по факту нет. Вы просто оттранслируйте в С свое метапрог, а мы уж сами решим что нам с этим делать, а то какие-то отговорки одни.

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

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

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

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

На Лабвью собрал, в среднем каждая из 10 итераций занимает 30 секунд без ощутимого потребления памяти (в пределах 10 мегабайт):

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

Какие результаты на рукописном Си и скриптухе типа питона?

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

Да-да, я ж не Носитель Сакральных Знаний и не член Ордена Змеи, куда мне с моими прямыми линиями на Метапроге до великих питонистов с графическими брейнфаками с клубком кривых Безье?

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

Прислоняешь линейку и считаешь черточки сколько миллиметров до конца.

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

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

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

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

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

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

Окей. Но все же хотелось бы оценить порядки величин, можешь сделать этот тест для питона (или на чем ты пишешь) и рукописного Си?

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