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

Вы решили перейти на нечленораздельные фразы и вопросы без контекста? Но догадаться все еще можно и ответ - никакого.

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

Никаких посыланий к гуглу, книгам и прочего подобного бреда.

@balsoft, это надо в цитатник.

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

Не путай возможность с обязанностью.

Ты не делаешь ничего полезного. Какой смысл вообще тебе донатить? Чтобы ты быстрее не делал ничего полезного?

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

говнокод на уровне хеллоуворлда

Прототип Метапрога с онлайн-функционалом не считается? Ах да, он же не написан на питоне, как же так, фу-фу-фу, знания великих питонистов умножаются на ноль:)))))

Это я Вам отвественно говорю как человек уже дцать лет ведущий в МФТИ спецкурс по программированию.

И на чем программировать учишь? На питоне? Или другом недоязыке?

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

Ты щас вроде как рисуешь «стандартную библиотеку». Это, опять же, означает, что тебе придётся самому ваять нужные программисту примитивы (встроенные сложные типы).

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

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

Все ложь, смысла нет, можешь быть свободен.

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

Какие навыки? Недоязыков с динамической типизацией и стектрейс-ориентированным программированием? Спасибо, Лабвью мне дает не меньше возможностей. Вот Си - другое дело, ради него стоит сделать Метапрог.

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

А что ТЫ сделал для продвижения прогресса разработки Метапрога?

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

Прототип Метапрога с онлайн-функционалом не считается?

Это и есть говнокод на уровне хеллоуворлда.

И на чем программировать учишь? На питоне? Или другом недоязыке

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

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

При том что рантайм является частью продукта, лабвью является продуктом, как вы предлагаете людям которые вдруг все-таки захотят посмотреть его (ваш метапрог и реализацию) делать это, не имея ни того ни другого? Я уж молчу что для всего этого надо еще что-то там запускать через wine. Вы говорите что знаете С, господи ну состряпайте вы уже необходимый минимум на нем, что вы людям то голову морочите этими темами раз в квартал, а то и в пол года, которые одна от другой ничем не отличается ни по содержанию ни по проделанной работе, скорее по ее стабильному отсутствию и методичному продолжению этого действа. Все вам чего-то должны пояснять, прямых ответов вы не понимаете. Кажется вы ошиблись ресурсом, это не ресурс где мы все дружно вместе с вами делаем какую-то чепуху у которой нет будущего, нет я не призываю вас бросить ваше занятие, занимайтесь что уж, что-то вы все же узнаете…

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

Так звали литературного героя которой вылитый Вы.

Макулатуру не читаю.

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

Зачем мне питон, когда у меня есть Лабвью?

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

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

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

Говнокода делающего говнокод. Но с чего Вы взяли что это хорошо или хоть кому то может быть полезно?!

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

Мне кажется вы не понимаете сути этого ресурса :)

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

Зачем мне питон, когда у меня есть Лабвью?

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

Это все равно что пытаться объяснить что земля круглая.

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

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

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

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

Так как реализована сборка мусора в массивах метапрога?

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

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

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

Прототип Метапрога с онлайн-функционалом не считается?

Это и есть говнокод на уровне хеллоуворлда.

По каким критериям? Отсутствию текстового кода?

Связка плюсы и питона

Ладно еще плюсы, на них делается относительно нормальный софт, но говнопитон... Нахрена?

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

Вообще-то я не продаюсь и Метапрог тоже - он выложен в опенсорс. Если же ты реально зарабатываешь как Билл Гейтс, то тебе ничего не стоит по приколу скинуть мне тысячу баксов на биткоин-кошелек. Или ты очередной ЧСВшный нищеброд?

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

Так звали литературного героя которой вылитый Вы.

Макулатуру не читаю.

@hobbit, это оно кстати о Булгакове, тоже можно в цитатник.

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

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

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

При том что рантайм является частью продукта, лабвью является продуктом, как вы предлагаете людям которые вдруг все-таки захотят посмотреть его (ваш метапрог и реализацию) делать это, не имея ни того ни другого?

Рантайм бесплатный, качается с официального сайта без регистрации и СМС. Ссылка в описании.

Вы говорите что знаете С, господи ну состряпайте вы уже необходимый минимум на нем

Будь это так просто - уже давно бы сделал. Но это непросто и никто еще не доказал обратного. Антиметапрогеры способны только кукарекать про простоту задачи, а сами сделать ничего подобного и близко не способны.

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

По каким критериям?

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

но говнопитон… Нахрена?

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

Вообще-то я не продаюсь и Метапрог тоже - он выложен в опенсорс.

Вообще то Вы нафик никому не нужны кроме ЖЭКа в качестве дворника, а метапрог не нужен вообще никому.

Если же ты реально зарабатываешь как Билл Гейтс, то тебе ничего не стоит по приколу скинуть мне тысячу баксов на биткоин-кошелек.

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

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

Вы не можете адекватно оценивать ЯП... Вы продолжаете долдонить одну и ту же чушь

Это ты про себя и свою способность оценивать Лабвью и Метапрог?

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

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

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

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

Ради интереса написал на скриптухе(F#):

open System;
open System.Diagnostics;

[<EntryPoint>]
let main argv =
    let random = Random()
    
    let randomStr = 
        let chars = "abcdefghijklmnopqrtuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        let charsLen = chars.Length
        
        fun len -> 
            let randomChars = [|for i in 0..len -> chars.[random.Next(charsLen)]|]
            new string(randomChars)
    
    let randomString100(_) = randomStr(100)
    
    let randomString20(_) = randomStr(20)
    
    let listString100 = List.init 100000 randomString100
    
    for _ in 0..10 do
        let stopWatch = Stopwatch.StartNew()
        let mutable matches = 0
        for i in 0..1000 do
            let s20 = randomString20()
            let found = 
                listString100 
                |> List.exists (fun s100 -> s100.Contains(s20))
            if found then matches <- matches + 1
    
        printfn "%d strings matches, time = %f" 
            matches stopWatch.Elapsed.TotalMilliseconds
    0 // return an integer exit code

Если запускать как скрипт в REPL, то ~24 секунды:

0 strings matches, time = 24125.852600
0 strings matches, time = 23782.545900
0 strings matches, time = 23896.791700
0 strings matches, time = 24411.435200
0 strings matches, time = 23725.048800
0 strings matches, time = 23673.506900
0 strings matches, time = 23722.838500
0 strings matches, time = 24743.384700
0 strings matches, time = 24170.220900
0 strings matches, time = 23786.628600
0 strings matches, time = 23691.516700

Если сначала скопилировать в байткод, то 14 секунд:

0 strings matches, time = 14515.612300
0 strings matches, time = 14323.536100
0 strings matches, time = 14319.832200
0 strings matches, time = 14227.032200
0 strings matches, time = 13665.731200
0 strings matches, time = 13715.057500
0 strings matches, time = 14963.150100
0 strings matches, time = 14140.519100
0 strings matches, time = 14039.669200
0 strings matches, time = 14109.489700
0 strings matches, time = 13808.419400

Про память: REPL = 120 MB, bytecode = 37MB

Просто из 20 символов мало шансов что найдётся подстрока…

Если сделать randomString2 вместо randomString20, то в REPL такие результаты:

1001 strings matches, time = 492.225900
1001 strings matches, time = 512.523800
1001 strings matches, time = 516.641700
1001 strings matches, time = 484.651300
1001 strings matches, time = 485.019800
1001 strings matches, time = 534.723000
1001 strings matches, time = 481.325100
1001 strings matches, time = 482.125600
1001 strings matches, time = 535.925300
1001 strings matches, time = 501.259600
1001 strings matches, time = 487.772000
fsb4000 ★★★★★
()
Ответ на: комментарий от metaprog

Антиметапрогеры способны только кукарекать про простоту задачи, а сами сделать ничего подобного и близко не способны.

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

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

Нет, это я про Вас и Вашу способность оценивать ЯП. Вроде все четко сформулировано, но у Вас же дислексия…

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

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

Питон это один из самых простых в изучении ЯП общего назначения

Питон? ОБЩЕГО?! Драйвера на питоне (не дай бог конечно) пишут? Ядра ОС пишут? А как скриптуха для прикладухи Лабвью тоже прекрасно годится.

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

Тогда сами себя и донатьте, нефик попрошайничать.

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

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

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

никто никогда не говорил что задача проста

Справедливости ради - я говорил:-) Правда конечно без гуйни со жгутиками, гуйня тоже не сложная но надо будет много букв. А так, конвертнуть специфический для соответствующей предметной области питоний код в ast и дальше в плюсы - не Б-г весть как сложно…

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

Метапрогомать Диана несёт в основном грибоэлектрическую чушь, но поскольку Вам ее ответы нравятся - Вы ее слушаете

Он прикалывается над такими как ты, только и всего. Он даже прямо в этом признавался.

правильность ответа слабо коррелирует с тем что ответ нравится

Ответы по Си и библиотекам Котечка дает правильные. По ним я собираю работающие диаграммы.

Так как реализована сборка мусора в массивах метапрога?

Очень просто: https://postimg.cc/k6q25fg4

Да, это не сборщик мусора а-ля джава, но в этом есть и плюс: я сам определяю когда надо освобождать память, а не черт знает когда и как работающий сборщик мусора.

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

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

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

в чем польза от котечки

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

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

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

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

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

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

За год у меня образовался транслятор, Метапрог Онлайн и в целом Метапрог наполнился многоими плюшками.

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

Изумительно, вы все же признаете тот факт что вы неспособны к обучению и ничего кроме как передачи знаний из уст в уста не принимаете. Господи кто такой ваш котечка, скажите мне хоть один его научный труд признанный хоть кем-то, может есть научные публикации котечки, книги котечки, может хоть какая-нибудь статья в интернетах или методичка (царь их кстати тоже очень любит)? Вы мало того что себя в один ряд ставите с корифеями, так теперь еще и котечка, льстец и озорник ололокающий со своей новой забавы был приписан к лику светил ИТ индустрии. Браво :)

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