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)

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

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

А… То есть, что-то вроде ассемблера с макросами. Тут выше в треде был пример таких макросов, которые делают из fasm объектно-ориентированный язык. Вот только код, написанный на таком чуде будет медленнее кода на Си++, потому что ассемблер — прямой транслятор, и не умеет производить оптимизации, которые возможны в Си++. То есть по скорости хуже, по читаемости хуже, по поддерживаемости хуже. Худшее из всех миров.

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

Я ж и не взял С++.

Вот ты тугой. Оспаривалось твоё утверждение:

Концепция «Си с плюшками» себя оправдывает, спросите у С++ кодеров.

Кроме названия Си++ про него ты почти ничего не знаешь. Но пытаешься какие-то выводы делать. Это смешно. У тебя просто не хватает знаний, чтобы хотя бы осознать объём своих знаний по теме.

Он сложнее

Ты не можешь об этом судить.

При желании ограничения можно обойти.

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

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

Как ты его собираешься патчить, если ты не можешь его читать? 🤔

Для этого мне и нужен Метапрог.

Погоди-погоди. Получается, Метапрог это text-to-speech движок?

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

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

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

А если не считать тех, кто не запускал Лабвью/Метапрог лично?

А если не учитывать тех, кто не осилил ни один язык?

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

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

Глядишь шпалы тягать будут те, кому змеиный яд мешает понимать Метапрог-диаграммы.

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

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

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

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

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

Проектирование ЯП тоже стоит доверять только специалистам, но почему-то этим занялся метаклоун с лора.

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

Text-to-speech!

А ты ему в ответ: метапрог, запатчь мне вайфай. А, ещё тормоза с флешкой почини!

Я думаю, Линус обосрётся…

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

Как, кстати?

https://github.com/i-rinat/autofsync

Адаптивно вызывает fdatasync(). Если он выполняется слишком долго, лимит уменьшается. Если слишком мало — увеличивается. Получается лимит на объём грязных данных, но не в байтах, а в секундах.

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

Как вариант, да. Аст в виде схемок, а в уме стейт машина. Правда, тогда сложно будет представлять как данные куда идут. В ФП то понятно. От блока к блоку.

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

Нечестно тыкать этим аргументом только в сторону ВП. Де-факто всё современное программирование – это «В итоге ты мне предлагаешь абстракции, внутри которых опять обычный си.» Кроме разве что фортрана да кобола.

Фортран, кобол, паскаль, ада. На самом деле сюда можно добавить rust, D, go - там конечно в процессе компиляции частично проглядываются ушки Си, но со временем наступает ситуация когда язык способен компилировать сам себя, замечу многие к этому стремятся. Первый компилятор Си был не на Си.

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

Дело в том, что мы говорим не о «Си и недоязычки», а о ВП против ТП.
Текстовое программирования это набор концепций, основной набор которых есть в любом текстовом языке - переменная, цикл, функция и т.д.
Автор и его ВП предлагают какие-то аналоги или просто используют концепции ТП поверх ВП ?

Дело на самом деле глубже чем «Язык Си», ещё со школы каждый подсознательно знает, что такое переменная, цикл, массив, счётчик и т.д.
С детства ты знаешь что A+B = C, A= C-B, подставляя числа в эти буквы, ты присваиваешь, увеличивая или уменьшая значения ты видишь изменения результата.

В итоге ты начинаешь решать задачи через числа(текст), когда нужно найти площадь треугольника, длину линии ты спрашиваешь: размеры сторон, число которое характеризует геометрическую фигуру. В итоге треугольник это уже не графическая фигура, а A;B;C.

И то с чего начинается программирование - взаимодействие, это описание. Сумма площадей двух треугольников для тебя уже ABC+ABC, здесь уже графики нет, здесь даже уже нет треугольников, это текстовое программирование.

Собственно сложить два треугольника без цифр и текста - вот визуальное программирование. Описать и представить бегущего человека, его скорость без букв и цифр - это визуальное программирование.

Проблема в том, что скорость, сумма, вес, размер - это числа\текст. И автор предлагает мне делать двойную работу:

Вес -> 1кг( текст) – Это текстовое программирование

Вес -> 1кг(текст) = треугольник (присваивание) – метод автора, запаковать текст в образ, абстрагировать его визуальной фигурой.

В чём проблема ? Мне до сих пор надо помнить, что вес -> кг. Когда происходит взаимодействие, это взаимодействие не абстракций автора, а 1кг. А если взаимодействия происходят на уровне текста, то это такое же текстовое программирование.

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

Формат закрытый, описания NI не предоставляет. Может, кто и занимался реверс-инжинирингом

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

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

Дело на самом деле глубже чем «Язык Си», ещё со школы каждый подсознательно знает, что такое переменная, цикл, массив, счётчик и т.д.

Существуют ли такие люди за пределами твоих фантазий?

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

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

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

Автор и его ВП предлагают какие-то аналоги

Нет.

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

Нет. «переменная, цикл, функция и т.д.» – это семантика «под микроскопом» любой программы. Вроде как никто не собирается уходить от такой фундаментальной базы. Любая реализация ВП основана на этих концепциях.

Семантика этих базовых вещей везде +- одинакова (с оговоркой, что функция питона != функции си, но смысл тот же), разница лишь в представлении. Даже если делать ЯП для слепых без озвучки текста и выпуклых надписей для слепых, то всё равно «переменная, цикл, функция и т.д.» останутся.

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

Почему-то в голову приходит аналогия:

-Раз ты отрицаешь базовые математические аксиомы, как же ты непротиворечиво описал операции эквивалентности, конъюнкции, импликации, какие теоремы создал и доказал, какие теоремы опровергнул?

-Не грузи меня своими терминами из своих книжек! Я делаю переводчик из запутанных математических символов 42 ∈ N в нормальное описание 42 - натуральное число. Вот когда уберём из математики все закорючки, тогда каждая домохозяйка сможет стать профессором математики!

Напоминаю, это – аналогия с иронией.

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

аналогия с иронией

Хорошая аналогия. Пора начинать делать метамат.

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

Нет. «переменная, цикл, функция и т.д.» – это семантика «под микроскопом» любой программы. Вроде как никто не собирается уходить от такой фундаментальной базы. Любая реализация ВП основана на этих концепциях.

Только есть текстовое представление этих семантик, а может быть графическое.

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

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

Он гордится ибо в его голове нет другого варианта. Мне не надо подписывать круг, что бы понять что это круг. В графическом программировании графика должна говорить сама за себя, автор подписывает её лишь потому, что его ВП не выразительное и поддельное.

Почему-то в голову приходит аналогия:

Так ты описал то, чем занимается автор - создаёт велосипеды. Он взял текстовое программирование и сделал вот это.
https://imgur.com/delete/Efb9kUeTA8KuSSi

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

Новый пример на Метапроге. Инициализирует массив из 10 32-битных беззнаковых, заполняет его случайными числами, после чего в цикле по массиву печатает все элементы в консоль. Скрин:

https://postimg.cc/sGVbKXsH

Скомпилировать:

https://pastebin.com/ZM2GQEvg

Рекомендую для полноты восприятия скачать Метапрог и посмотреть эту диагармму непосредственно в нем. Находится в проекте «тесты» с версии 3 (качать через Метапрог онлайн), также рекомендую скачать там же последнюю версию стандартной библиотеки Метапрога (проект «Метапрог»).

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

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

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

Проектирование ЯП тоже стоит доверять только специалистам, но почему-то этим занялся метаклоун с лора.

А кто такой метаклоун?

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

Получается, Метапрог это text-to-speech движок?

Текст в диаграммы, если быть точнее. Правда сишный код конвертировать в Метапрог-диаграммы на данный момент невозможно: castxml выводит только типы и заголовки функций. Это будет возможно позже, когда доберусь до функций из сишного парсера gcc/clang.

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

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

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

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

Вот Си, на него ушло примерно две минуты с учетом того, что я не помню, как пользоваться функциями rand() и srand():

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>

int main(void) {
    uint32_t arr[10];
    time_t t;

    srand((unsigned)time(&t));

    for (int i = 0; i < 10; ++i)
        arr[i] = rand() % UINT32_MAX;

    for (int i = 0; i < 10; ++i)
        printf("%zu\n", arr[i]);

    return 0;
}

А вот эквивалентный код на питоне, написанный секунд за 15:

import random

l = [random.randint(0, 2 ** 32 - 1) for _ in range(10)]
for i in l:
    print(i)

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

Оправдывайся.

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

Оправдывайся.

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

metaprog
() автор топика
Ответ на: комментарий от metaprog
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010; # say
my @arr;
my $i = 0;
$arr[$i++] = rand() for 1..10;
say join "\n", @arr;

Ушло 30 секунд примерно. В чём преимущество твоего кода?

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

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

:)

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

Скачать бинарное говно под Шindoшs с рапидшары. Всегда мечтал.

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

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

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

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

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

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

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

Для того, чтобы понять, что скрипт делает, не надо знать перл

Но надо знать перл, чтобы это дело написать. Надо знать какие use прописать, как прописывется массив, что делает say..

А вот без знания метапрога хер пойми, что делает твоя диаграмма

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

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

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

Нет там никакого текста внутри, это двоичный формат с двоичными структурами же. Возможно, даже зашифрованный.

P.S. Я вообще не понял смысла твоего абзаца, если честно. Речь была про формат файла, а не про «текст vs графика». Вот у Visual Paradigm оператор манипулирует диаграммами, но всё это можно сохранять в текст на основе XML. Но это не «текстовое программирование», это отображение UML на текст. ТС тоже мог бы так сделать, но не хочет и топит за бинарные форматы. И в LabVIEW формат бинарный и закрытый.

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

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

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

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

Тон, вполне достойный твоих регулярных посылов оппонентов в жопу. :) Другое дело, что @liksys как человек взрослый, мог бы уже и остановиться…

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

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

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

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

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

Тон, вполне достойный твоих регулярных посылов оппонентов в жопу

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

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

Чтобы что-то написать на вашей «хераборе»

У меня нет «хераборы». Есть только Метапрог, и на нем надо не столько писать, сколько собирать диаграммы.

придется тоже изучить какой блок что делает и как их соединять вместе, какой эффект это дает

Есть меню из функций по категориям. Встроенные блоки - в меню «блоки». Разобраться с готовыми блоками несложно. Я с Лабвью разобрался, почти не читая мануалы. Главное - освоить интерфейс, остальное приложится. И, кстати, если пользоваться готовыми метапроговскими блоками, не обязательно даже знать английский. Сколько % населения Украины и РФ владеет английским? Наверняка меньше половины.

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

Тут главное не сферическая теория в вакууме, а практика. Освоения через упражнения, интерактивные обучалки, а не чтение стен текста.

проводить какие-то тесты

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

даже возможно лезть в доку

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

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