LINUX.ORG.RU

Метапрог-прототип 34 + СУВТ по логическому типу

 , , ,


0

3

Следующая тема:

Метапрог-прототип 42

Подпишусь в поддержку Столлмана Bitcoin-кошельком из первой темы про Метапрог:

Metaprog Project supports Richard Matthew Stallman. Shame to SJW, Big Tech and Big Media. We need to get rid of them or Big Money will enslave us. It is do or die! Stay straight, RMS!

Подпись:

H/3cqHl7HGdAQd9K/io474IbLYlIKi/8R6pw1Vbpz0oTN4kihI5YO4dIdZo2VRdJbSp8kWmtWgC5TRTs0MkBIAo=

Подробности:

Движение отмены Столлмана (комментарий)

Следующая версия:

www.linux.org.ru/forum/development/16219448

Скачать:

https://mega.nz/file/6VJCEboQ#N3pu86bqI31Jp15aHWt6l-FIkY_RUws0CZK9aMcvxZo

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

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

К выпуску версии 32 неожиданно обнаружилось, что СУВТ может иметь переключатель логического типа. То есть, можно задавать типы на значения «да» и «нет». Никаких изменений для этого вносить с 31 версии не пришлось, надо лишь задавать в определении СУВТ типы по значению СУВТ 0 на «нет» и 1 на «да». Из изменений - некоторые исправления багов (например, с кодогенерацией структур и операций над структурами под указателями), а также экспериментальная фича отрисовки канваса через dll-вызов окошка на SDL, за подробностями обращаться к MOPKOBKA или kote4ka в Метапрог онлайн.

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

В версии 30 - исправление бага с сишной трансляцией циклов с регистрами. Теперь их значение берется на сишном уровне не напрямую, а через промежуточную переменную. Это позволило реализовать алгоритм вычисления чисел Фибоначчи, где есть непосредственная передача данных между разными регистрами. Метапрог-схема находится в меню обучение - примеры - Фибоначчи, выглядит она так:

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

Для сравнения - тот же алгоритм на LabVIEW:

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

Сишная трансляция:

https://pastebin.com/Z8rzvZpQ

Сравнение с тем же алгоритмом на «аналоге» Метапрога с бекендом на python говорит само за себя:

Metaprog здорового человека (комментарий)

В версии 29 - крупные изменения системы типов. «Встроенных» типов, вытягиваемых через меню «структуры», больше нет, все они теперь представлены в стандартной библиотеке. В особенности изменения коснулись числовых типов: теперь такие типы как число, дробь, целое, знаковое и беззнаковое представлены как многотиповые из соответствующих типов. Например, беззнаковое - многотиповой из 8, 16, 32, 64 и 128-разрядных беззнаковых, целое - многотиповой из знакового и беззнакового, число - многотиповой из целого и дробного. Теперь такие типы можно обрабатывать как многотиповые, поступая с числами разных типов по-разному.

В версии 28 переключатель (аналог сишного switch) работает с многотиповым типом. Выполнение схемы происходит только на ветке, соответствующей поданному на переключатель типу. Ветвление происходит не в рантайме (как в случае СУВТ), а при кодогенерации - не соответствующие поданному типу ветки не генерируются. Теперь осталось сделать цикл по структуре.

В версии 27 добавлена удобная возможность создать новую подфункцию, не останавливая весь прототип. Кнопка блоки - новая подфункция.

Также обнаружилась (но пока не исправлена) проблема с терминалом счетчика повторений цикла в цикле по условию - пока что не используйте его!

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

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

В версии 25 исправлена трансляция сложных рекурсивных структур с СУВТ.

В версии 24 был исправлен баг транслятора, проявившийся в версии 23: на некоторых схемах (например, отправки данных по TCP) код, отвечающий за поток данных, «вливающийся» в ветки с условиями, мог сгенерироваться после кода самого условия.

В версии 23 исправлен еще один баг с упаковкой проектов, а также баг трансляции условных схождений.

В версии 22 исправлен баг с упаковкой проектов, из-за которого не паковались зависимости из локальных форков. При этом удалось существенно ускорить упаковку проектов.

В версии 21 наконец-то добавлена корректная трансляция схем, содержащих рекурсии. Как пример можно привести схемы из репозитория «разработка интерфейса на нуклеар+» (можно скачать через Метапрог онлайн). В этой схеме отрисовка элементов интерфейса основана на СУВТ (структура условного выбра типа). В этой СУВТ возможны такие элементы интерфейса, как текстовый лейбл, текстовое поле, кнопка и (самое интересное) - линия из элементов интерфейса. В последнем случае происходит рекурсивный вызов функции, обрабатывающей массив из тех же СУВТ элементов интерфейса.

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

Метапрог-прототип 19 + API на СУВТ + ускорение трансляции



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

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

Но до тебя за два года не дошло, что главная цель прототипа это тестирование

Самое тупое что я видел в этом треде, можешь гордиться.

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

На любом языке можно написать корявую программу. И в принципе кроссплатформенность - это миф. Везде приходится делать какие то дополнительные проверки для привязки к ОС-зависимым библиотекам к несчастью. И в жабе и в крестах… Так что возраст языка тут совсем ни при чём

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

главная цель прототипа это тестирование

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

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

А еще у всяких там питоноликсусь горят пердаки

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

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

Назрел один важный практический вопрос.

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

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

Как это лучше всего сделать на Си?

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

Лабвью 2013 было сделано в 2013. Примерно тогда же прекращена поддержка винды ХР. Больше мне копирасты не нужны. Если они лопнут - станет только лучше.

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

Электриков я уважаю больше чем большинство программистов, они редко пользуются говноскриптухой. А если дело доходит до программирования, то им не надо объяснять, что собирать схемы в Лабвью удобнее, чем читать тонны мануалов по текстовым ЯП.

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

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

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

на данный момент я скорее играюсь.

Вся суть твоей «разработки».

Линукс так вообще по приколу (just for fun) сделан.

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

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

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

Короче ты опять пытаешься очернить то что не понимаешь. It-индустрия, копирайт, создатели Labview

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

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

Линукс работает

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

И питон нормальный ЯП.

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

А у тебя одно баловство пока

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

зачем только поносить других

В каждом случае своя причина, которую я объясняю.

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

И тишина… Видимо, работнику с торговой маркой делать просто нечего.

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

Сгенерируй условный пример

Пенсионер на минимальной пенсии (около 2000 грн) делает некоммерческий проект, какую-то фриварную или опенсорсную софтину. И не хочет чтоб его логотип кто-либо присвоил. Но регистрация торговой марки стоит 3200 грн, при том что ему со своих 2000 надо заплатить за коммуналку и еду. В его ли интересах написано законодательство об авторском праве?

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

И питон нормальный ЯП.

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

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

Обустройство производства это не виндоус и лабвью с торента скачать

Ты обустраивал производства? Подозреваю, что я лучше знаю как оно работает чем ты. А ты даже Лабвью с виндой с торрента скачать не можешь. Или таки можешь?

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

В каждом случае своя причина, которую я объясняю.

Хорошо я переформулирую вопрос. Зачем ты это делаешь постоянно?

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

Так Питон к тебе домой не приходит и писать на себе программы не заставляет. Чем он плох? Жить тебе не мешает определенно.

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

Зачем ты это делаешь постоянно?

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

Так Питон к тебе домой не приходит и писать на себе программы не заставляет. Чем он плох? Жить тебе не мешает определенно.

Я с ним сталкивался и видел какой это ужас, ответь на пост paramon.

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

Так Питон к тебе домой не приходит и писать на себе программы не заставляет. Чем он плох? Жить тебе не мешает определенно.

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

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

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

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

твоём ЧСВ по сравнению с которым Джобс лох навозный

Я польщен:)

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

«Высирай» уже «антиметапрог» или хоть что-нибудь, с нетерпением жду.

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

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

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

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

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

Очень уклончиво.

ответь на пост paramon.

Есть программы написанные на Python. Я ими пользуюсь. Язык вполне известен и используется. Для меня питон не проблема.

Касаемо остального надо у людей пишущих на питоне спрашивать, то есть не меня.

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

Есть программы написанные на Python. Я ими пользуюсь. Язык вполне известен и используется.

С этим я совсем не спорю.

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

Есть программы написанные на Python. Я ими пользуюсь

Мне тоже доводилось и доводится. Стектрейсы всплывают, глюки вылазят.

Касаемо остального надо у людей пишущих на питоне спрашивать, то есть не меня.

На чем программируешь?

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

На чем программируешь?

Не на чем.

С изучаю. Правда успехи пока сомнительные. Ибо мне лень читать большие учебники. А в Red Alert играть не лень.

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

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

Попробуй Лабвью, там проще и я могу помочь. А вообще для таких как ты нужен Метапрог.

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

делает некоммерческий проект, какую-то фриварную или опенсорсную софтину. И не хочет чтоб его логотип кто-либо присвоил.

Зачем ему логотип? У него нет денежных интересов, поэтому в регистрации торговой марки нет смысла. Он же не торгует.

В его ли интересах написано законодательство об авторском праве?

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


Пока что приведённый тобой пример просто ни о чём. Протагонисту просто нет никакой надобности в регистрации торгового знака. От акта регистрации ровным счётом ничего не изменится.

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

нужен

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

Я Labview для сравнения ставил.

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

Я со знанием С не родился. Для применения любого языка нужно знать базу. Книги в это плане проще всего ИМХО. Практика без теории такое себе.

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

Да это все выдумки ликсусь, просто бери и пиши без задней мысли, hello world то ты можешь написать? Ну вот теперь ищи как открыть окно и нарисовать спрайт, потом как программируются боты в играх, итд, ну это если бы ты Red Alert стал делать а так хз.

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

Да это все выдумки ликсусь

Не обижай ты человека. С ним можно было бы и питон обсудить к примеру. Помирились бы уже.

hello world то ты можешь написать?

Да. Спасибо книжке С для чайников :) Такие дела.

Razk
()

Кстати, домен metaprog.online всё ещё свободен. Регистрация на год всего один бакс стоит.

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

liksys хочешь помириться? Без шуток.

Да. Спасибо книжке С для чайников :) Такие дела.

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

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

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

Но главное ваше заблуждение в другом: Электро и теплоэнергетика это прежде всего чтение документации, причем объемы ее могут просто огромными. Начиная с основных ПУЭ, ПТЭЭП и прочего, что должен знать вообще каждый в профессии(это я не говорю про такие вещи, как промбезопасность, лифтовое хозяйство и прочее, специфичное для разных направлений). И заканчивая спецификациями на каждый конкретный элемент. Так например документация на какой нибудь частотник вполне может достигать сотни страниц с подробными описаниями режимов и модификаторов. И отобразить все это графически не представляется возможным, поскольку получится лапша размером со стену дома. А таких элементов в пределах одного небольшого цеха может быть сотня-другая.

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

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

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

я что то в том топике даже кода не увидел - кто его знает что там наваял пионер?

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

А если дело доходит до программирования, то им не надо объяснять, что собирать схемы в Лабвью удобнее, чем читать тонны мануалов по текстовым ЯП.

Что за бред, для всего своя задача. Если допустим проект проще легко делать в каком нибудь CAD`е, то какие-то сметные подсчёты проще делать в каком нибудь calc. Как это сочетается с твоей философией где у тебя для всего лучше визуальное программирование.

Это напоминает уникумов, которые чертят таблицы в CAD`ах.

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

Ты обустраивал производства? Подозреваю, что я лучше знаю как оно работает чем ты. А ты даже Лабвью с виндой с торрента скачать не можешь. Или таки можешь?

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

Я могу скачать винду с торента и лабвью тоже, я даже понимаю что кто-то скачивает её не имея альтернативы. Я сам её скачивал когда-то, но гордится этим и выставлять себя каким-то нагибателем копирастов это какое-то раздутое ЧСВ.

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

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

У тебя неверное понимание «уважающего себя человека», для тебя это раздутое ЧСВ, ты ошибаешься. Какие например данные с андройда могут быть слиты у порядочного человека?

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

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

Я польщен:)

Соболезную

«Высирай» уже «антиметапрог» или хоть что-нибудь, с нетерпением жду.

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

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

я даже понимаю что кто-то скачивает её не имея альтернативы

Так ведь их никто не заставляет ей пользоваться!!! Как же так?!

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

Какие например данные с андройда могут быть слиты у порядочного человека?

Там вон Лукашенко включал звук с прослушки опозиции когда на завод приезжал.

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

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

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

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

Концлагерь - это когда тебе приказывают что делать, а не про то, что за тобой наблюдают.

За какой меседж набутылят, и при чём здесь порядочность. Всё какие-то абстрактные примеры.

Часто тебя там бутылят за то что мамка в магаз просит сходить?

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