LINUX.ORG.RU

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

 , ,


1

2

Следующий релиз

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

Скачать:

https://www71.zippyshare.com/v/flBFevsS/file.html

В архив добавлены скомпилированные ехе: теперь прототип Метапрога и Метапрог онлайн можно запустить без LabVIEW, в том числе под линуксом через Wine (скрин: https://ibb.co/0XTVx6F инструкции: Метапрог-прототип, версия 5 (комментарий)).

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

Из нереализованного - схождение данных из двух и более веток условий. Подробнее:

Метапрог-прототип, версия 4 (комментарий)

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

Запись интерактивной обучалки и создание сишной вставки для стандартной библиотеки Метапрога

https://streamable.com/rgk86

Выход из записи обучалки (под конец, когда происходит ее сохранение на диск) по кнопке Esc.

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

Предыдущий релиз прототипа:

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



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

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

У меня лицензия на Windows 10 for Workstation, она стоит на ~450$ больше чем LabView Home.

Ну так купи тогда лицензий на LabVIEW и раздай всем интересующимся метапрогом.

Мне не надо.

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

Желающие могут запустить Metaprog через Wine. Нежелающие найдут отмазки, например будут говорить что у ОПа нету лицензии, и закон им запрещает запускать Metaprog.

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

Да могу, могу я всем желающим раздать LabView! Но там скорость и так нормальная на загрузку, вбиваешь в поиск «labview 2013» и там тред «NI LabVIEW 2013 Modules Toolkits and Drivers».

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

Напиши, например, код на ассемблере для деления на 13. Эквивалент вот этого кода на Си:

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

Собственно работа со строками встречается чаще чем математические операции (в явном виде).

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

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

То есть метапрогеры не признают денежное рабство и выступают за натуральный обмен?

У меня лицензия на Windows 10 for Workstation, она стоит на ~450$ больше чем LabView Home.

Она стоит 300 баксов на офф сайте, можно найти дешевле. И какая кому разница сколько стоит лицензия на Windows 10 for Workstation если ты её украл, купить же ты её не мог, ты же вне системы.

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

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

Я не свожу. Это пример. Мне было бы интересно глянуть, как ты напишешь это на ассемблере.

Собственно работа со строками встречается чаще чем математические операции (в явном виде).

Хорошо. Вот задача со строками. Открыть файл, прочитать его целиком в память, сообщить, есть ли в нём последовательность «Hello, world!».

Шелуха с подготовкой не сильно важна. Мне интересно, как ты организуешь поиск строки.

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

Шелуха с подготовкой не сильно важна. Мне интересно, как ты организуешь поиск строки.

 found:
    mov byte ptr[ebx+esi*1],dh
    inc edi
    inc esi
    mov dh, byte ptr[ecx+edi*1]
    mov dl, byte ptr[eax+edi*1]
    mov dl, byte ptr[eax+esi*1]
    cmp dh, dl
    je found

    test dh, dh
    jne nofound2
    add esp, 8
    xor edi,edi
    jmp begins

    nofound2:
    pop esi
    pop edi

Должно быть что-то типа этого

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

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

Но с большой вероятностью ты прикладываешь образец с шагом в один байт. То есть N*M алгоритм вместо N+M.

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

add esp, 8

Такой трюк можно было без проблем использовать во времена 386 и 486, но сейчас это прилично ударит по скорости работы. Процессоры расчитывают, что с данными на стеке ты работаешь или напрямую, или через пары push-pop. Если ты пытаешься push’ить в стек, а потом отматывать через изменение esp, ты ломаешь его уютный закешированный мирок, и вынуждаешь синхронизироваться с памятью. Компиляторы Си это знают, и таких трюков не используют. Вот тебе ещё прирост скорости при использовании компиляторов.

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

То есть метапрогеры не признают денежное рабство и выступают за натуральный обмен?

А причем тут метапрогеры?

Она стоит 300 баксов на офф сайте, можно найти дешевле. И какая кому разница сколько стоит лицензия на Windows 10 for Workstation если ты её украл, купить же ты её не мог, ты же вне системы.

В данный момент зайдя на сайт я вижу $439.00.

И какая кому разница сколько стоит лицензия на Windows 10 for Workstation если ты её украл, купить же ты её не мог, ты же вне системы.

Я купил ее за ворованные деньги.

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

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

https://ibb.co/jvW1W45 (ноль в конце на счастье)

Просто там и тут слышны высказывания вида «Си откомпилируется в лучший код чем ты напишешь руками на асме».

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

---------------------

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

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

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

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

Такой трюк можно было без проблем использовать во времена 386 и 486, но сейчас это прилично ударит по скорости работы.

Насколько я понял add просто генерирует команду для 32-битного смещения, и поднимает на 8. Насчёт падения скорости я не уверен, для единичных случаев как я понял это да, но если идёт перебор то нужно учитывать количество.
pop push обращаются к памяти, а add нет, и если предыдущие значения не нужны использование add не будет завязано на кэше.

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

В данный момент зайдя на сайт я вижу $439.00

А здесь ты что видишь?

https://www.microsoft.com/en-us/p/windows-10-pro-for-workstations/dg7gmgf0dw9s

Я купил ее за ворованные деньги

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

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

А здесь ты что видишь?

USD $439.00

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

Ох уж эти оправдания нищеброда...

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

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

Ахах, мощно ты!

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

14 сисколов?

Че? Два сискола.

вырастать это дело будет пропорционально количеству символов, костыль не?

Втф? Ты про = 14? Это длинна строки, сискола только два.

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

Втф? Ты про = 14? Это длинна строки, сискола только два.

Полный листинг дай.

Ато не совсем понятно что там за срань у тебя на 40 строк.

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

Это походу для США цены, а у меня с учетом НДС.

В магазине она стоит 16к, что в долларах 260$, получается тебя как лоха развели на почти x2.

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

Полный листинг дай.

Проприетарщина.

Ато не совсем понятно что там за срань у тебя на 40 строк.

Две обертки для syscall на exit и write. Я просто скрыл функции.

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

Вот я сделал цикл на 666 вызовов, и программа выполнила 667 сисколов. https://ibb.co/fCDsS56

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

Я это всё пишу лишь в контексте заявлений твоего повелителя, ака «Си низкоуровневый язык», «Компилируемый асемблер».

shpinog ★★★
()
Ответ на: комментарий от shpinog
Ради справедливости на лоре воляется.

#include <unistd.h>
#include <sys/syscall.h>

#define HELLO "Hello world!\n"

void _start() {
    syscall(SYS_write, 1, HELLO, sizeof(HELLO));
    syscall(SYS_exit, 0);
}
gcc  -static -o syscall syscallC.c -nostartfiles -s -Wl,-n

Тоже в 2 сискола.

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

Ты написал срань на Си которая по своему объему +- 40 строк эквивалентна срани на асемблере через функцию по печати строки.

Если написать функцию syscall (не больше 7 строк) то sys_write и sys_exit будут занимать одну строку. Если брать x86 то могу написать syscall в 1 строку на С, читаемо.

При всём это ещё большой вопрос какая из этих сраней более читаемая

Которая на С.

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

Попробуй реализовать и все поймешь:

int x = 5;
float y = 10;
double z = sqrt((x*5)/2.0+pow(x, 10)+(x*y)/y);
Или такое что нибудь со структурами где есть массивы структур...

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

int x = 5; float y = 10; double z = sqrt((x5)/2.0+pow(x, 10)+(xy)/y);

Ну так реализуй на Си без math.h, получится такая же срань.

Вынеси на асемблере в отдельные файлы функции и будет что-то подобное.

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

Ну так реализуй на Си без math.h, получится такая же срань.

Сложность не в sqrt, он в ассемблере есть одной командой.

Вынеси на асемблере в отдельные файлы функции и будет что-то подобное.

Будет сильно длиннее, а если еще изменить это захочешь...

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

#define HELLO «Hello world!\n»

Лул.

Тоже в 2 сискола.

Это опенсурщина, а у меня проприетарщина, значит качество, поддержка, итд.

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

Будет сильно длиннее, а если еще изменить это захочешь…

Так никто не говори о том, что асемблер лаконичней Си.

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

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

Это опенсурщина, а у меня проприетарщина, значит качество, поддержка, итд.

Я уже видел вашу с метапрогом :

качество, поддержка, итд.

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

Как там было, ОутОфЗэБокс?

А что собрать какой-нибудь appimage с вайном настроенным, впихнуть туда нужный рантайм не судьба?

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

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

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

Метапрог не проприетарщина же. И оплачивается не сильно так сказать...

А что собрать какой-нибудь appimage с вайном настроенным, впихнуть туда нужный рантайм не судьба?

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

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

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

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

pop push обращаются к памяти, а add нет, и если предыдущие значения не нужны использование add не будет завязано на кэше.

Push и pop меняют esp. Когда стек используется парными вызовами push и pop, процессору не обязательно обновлять esp прямо сразу, и он этим пользуется. Но если ты пытаешься сам менять esp, все эти оптимизации не работают. Генерируются дополнительные микрооперации, что стопорит исполнение.

я не уверен

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

i-rinat ★★★★★
()

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

Можно даже разобрать что нибудь из последнего: Метапрог-прототип, версия 5 (комментарий) В этом O(n) вся современная наука, она пытается строить свои не стыкующиеся модели, которые часто очень плохо описывают реальный мир, или вообще никак. Это вообще не секрет, перейдем в соседний тред, и что там видим? Насколько сложно смоделировать молекулу на самом фундаментальном уровне? (комментарий) Почему то никто ему не говорит что он тролль, или еще кто нибудь. Просто другой образ, вспомним истинный смысл «Собачье сердце», где Шариков говорит простые, часто и логичные вещи, а профессор же просто мудила, но профессору дали халат, а кто первый надел халат адекватности, тот и адекватен. И никому уже слова не важны, такой вот общечеловеческий баг. В общем то халат отобрали не только у меня и Шарикова, но это уже догадайтесь сами.

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

Я уверен не только мне, но и многим другим могло бы показаться, что если начать треды по метапрогу заново, но «с халатом», строить из себя серьезного программиста, добавляя Ъ-элементы, то все заиграет новыми красками. Но нет, так хорошо не бывает (Кстати, почему хорошо не бывает? Этот вопрос на самом то деле повод для целой статьи, может быть даже цикла статей! Но я выбрал видео, уже разрабатываю своего видео-помощника, который будет генерировать контент для видео, нет, это не корчеватель, а умная система оптимизирующая процесс создания приятного видео-ряда, плюс помощник по организации текста, а то у меня проблемы с понятностью для окружающих). Так вот, так хорошо не бывает, есть другая проблема, это хейтеры славянского ПО, их заметил еще Петр Семилетов, я в общем то как то сам не верил, хотя проект мне его очень нравился (TEA) да и сейчас нравится. И так, какова ситуация ? Имеются хейтеры славянского ПО, их раздражает русский язык в программировании, украинский язык, их раздражаю я и счет древних русов, они действительно злы, некоторые даже не скрывают что именно их злит, но большая часть конечно пытается держать свои истинные раздражители в тайне, что бы никто не догадался о их национальности. И о их целях.

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

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

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

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

Это не компилятор не способен, это ты не способен.
«во-первых — учиться, во-вторых — учиться и в-третьих — учиться» (В.И.Ульянов-Ленин)

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

Чувствую я, скоро «Владимирский централ» на ЛОРе будет онтопиком.

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

строить из себя серьезного программиста

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

не рассказывать про возможности программирования на русском языке

Это далеко не главная дразнилка. Этим занимался, например, @den73, на него если и агрились, то далеко не в таком количестве (разве что действительно просто поехавшие). А некоторые даже и подсказывали. По крайней мере, идея ЯП на основе национальных языков имеет своих сторонников, и на ЛОРе в том числе. И такой язык куда проще создать, не привлекая ни проприетарную Лабвью, ни несуществующий пока что Метапрог-на-себе.

они врут, скрывают свои мотивы, национальность, и их довольно таки много, пропаганда идет, еврофашисты вместе с кое-кем пытаются задавить как только могут…

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

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

В общем надо думать что со всем этим делать, предлагайте идеи

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

Ну а насчет хейтеров - они лучшие пиарщики, насколько я слышал.

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

идея ЯП на основе национальных языков имеет своих сторонников, и на ЛОРе в том числе

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

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

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

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

Этим занимался, например, @den73, на него если и агрились, то далеко не в таком количестве (разве что действительно просто поехавшие).

Ну у метапрог-проекта нету халата и тема интереснее, а так проект den73 тоже хейтили, практически в каждом его треде есть «как надоел этот ужасный русскоязышный ЯП, как тут добавить его в игнор?!»

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

Это они в троллей играют просто.

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

адекватно оценивая то, что уже наработано в отрасли и не брезгуя «археологией».

Я, видимо, забывал акцентировать на том, какой у меня самый главный критерий. А именно: Лабвью освободило меня от манов и гугла! Я по его библиотекам вообще не гуглил (разве что чтобы что-то новое скачать) и очень редко смотрел хелп. По текстовым ЯП (всем) и консольным утилитам - сплошное гугление и курение мануалов.

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

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

Как насчет обратить внимание на многоязычный Метапрог? Графическое программирование, все надписи на диагарммах (и многие даже в интерфейсе прототипа) многоязычные (на данный момент украинский и русский).

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

Who Watches the Watchmen / Quis custodiet ipsos custodes

Лабвью освободило меня от манов и гугла!

Ну раз это самый главный критерий, то подумай над вопросом: освободило ли Лабвью от манов и гугла создателей самого Лабвью и его стандартной библиотеки?

Как ты думаешь?

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

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

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

На твоем сайте написано что проект заморожен. Яр заморожен. Я сейчас готовлюсь переводить ОС A2 на русский, допиливаю пока что разные инструментики - насколько позволяет время.

https://gitlab.com/budden/jaos

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

Хм. Метапрог-прототип, версия 5 (комментарий)

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

А каков план? README.md не нашел %)

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