LINUX.ORG.RU

Metaprog: универсальная графическая среда программирования [в разработке] часть 6

 , , ,


2

3

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

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

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

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

11. Как выглядит факториал в графическом представлении?

Metaprog: универсальная графическая среда программирования [в разработке] (комментарий)

(пока что на Лабвью)

Примеры

Находятся в прошлых темах. Компилировать исходники нужно так:

gcc ./test.c -o ./test $(pkg-config --cflags --libs gtk+-3.0)

Metaprog: универсальная графическая среда программирования [в разработке]

Metaprog: универсальная графическая среда программирования [в разработке] часть 2

Metaprog: универсальная графическая среда программирования [в разработке] часть 3

Metaprog: универсальная графическая среда программирования [в разработке] часть 4

Metaprog: универсальная графическая среда программирования [в разработке] часть 5

Прототип чата:

Metaprog: универсальная графическая среда программирования [в разработке] часть 6 (комментарий)

Показывалка языка локализации через seltocale (кстати, у кого что показывает?)

Metaprog: универсальная графическая среда программирования [в разработке] часть 6 (комментарий)

Прототип чата с прокруткой:

Metaprog: универсальная графическая среда программирования [в разработке] часть 6 (комментарий)



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

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

но ты учти что хранить надо так что бы из миллионов записей по быстрому SELECT * FROM tbl_name WHERE field_name LIKE '%xxx%' можно было сделать.

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

Какого мертвеца, если я живее Ленина?))

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

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

Взглянул чуточку на LLVM AST. Никаких особых преимуществ перед Си не увидел. Те же декларации переменных, функции и прочее. И тоже в тексте. Лучше будет где-то после релиза, когда руки дойдут, покопаться уже в бинарных структурных внутренностях GCC или LLVM (кстати, что лучше и почему?). Хотя, черт, они же уже на плюсах. Но есть gcc 4.7.2 (2012), сделанный на Си. Словом, есть над чем экспериментировать.

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

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

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

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

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

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

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

ну неужели тебе нравится писать так while ((c = getchar() != EOF) {if (struct.size < ALLOC_SIZE) if (struct.p = realloc(struct.p, struct.size += 1024)) {... struct.p[cur++] = c ... } else { perror(«Mem alloc failed»); }...

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

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

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

Мне вообще не нравится писать код в тексте. Если б меня устраивал чистый Си, я б на нем кодил, а не пилил Метапрог (кстати, через Лабвью, а не Си). А всю грязную работу по объявлению переменных и проставлению =(){}[]; за меня делает транслятор.

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

Я ж на все смотрю через призму графического программирования и своей практики на Лабвью, не забывай.

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

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

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

Массив - сначала сериализированный размер (с поправкой на то, что массив байтов, если массив не байтов), потом каст в указатель на байт и сам массив байтов.

В С нету массивов.

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

Взглянул чуточку на LLVM AST. Никаких особых преимуществ перед Си не увидел.

Wtf??? ClangAst Этож аналог cast-xml, только это библиотека, ты можешь сразу получить структуры а не парсить xml.

покопаться уже в бинарных структурных внутренностях GCC или LLVM (кстати, что лучше и почему?)

Clang для юзанья в софте твоем хорош, а GCC как компилятор.

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

спасай анонима, он же дал обет не делать этого пока не будет VCS))

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

или автоматически изменяют размер когда добавляются данные?

Это ты смешно пошутил. Он не умеет ни в какую динамику.

anonymous
()

модеры, хватит мучать население ЛОРа, забаньте его уже!

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

а ну да, у них же вроде 'и' читается как 'ы'. знакомый рассказывал ему там тётка продавщица говорила типа вы москали не правильно называете пiво а надо пЫво. и ещё сказала «немаэ паспорта немаэ пыва».

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

Нет. На сишном уровне - две отдельные переменные. Вот так:

char metaprog_instance_0complex_array_array_pointer_17312231865723453440[] = {114,109,32,46,47,116,101,115,116,0};
size_t metaprog_instance_0complex_array__array_size_17312231865723453440 = 10;

Но это лишь детали работы транслятора, которые можно будет если надо поменять, не меняя самих диаграмм.

Кстати, я вкрутил size_t как размер массива.

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

В инициализаторах длина ставится автоматически, но число, означающее длину, нужно задавать ручками в функциях, меняющих размер массива (или создающих его, как malloc).

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

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

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

это как всё равно что половину ассемблерного кода писать с intel синтаксисом а половину с at&t. мне кстати at&t синтаксис больше по душе.

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

поддерживаются в метапроге массивы в которые можно добавлять сколь угодно много данных?

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

http://zone.ni.com/reference/en-XX/help/371361R-01/glang/array_functions/

Потыкай, там со скринами понятнее.

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

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

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

какой тормознутый сайт. половина по английски половина по русски. как меня выбешивает когда выбирают язык отображения по IP из россии а не по [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.5 который посылает браузер т.е. предпочитаемый пользователем язык что логически правильно.

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

И люди на нем общаются и понимают. Потому что с людьми можно допускать какие-то неточности и погрешности в речи. А с машиной ошибатсья в текстовом коде или командах нельзя. Напишешь «кот» или «kitty» вместо «cat» - не поймет, за что и не люблю консоль и текстовые языки. А в визуалке все возможности лежат на поверхности, ошибиться в вводе команды немозможно, только в логике.

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

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

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

Кстати, не думай, что я не знаю, что cat=concatenate. Сделали это потому что 11 букв вводить дольше, чем 3, и больше вероятность ошибок. Но из-за этого надо ЗНАТЬ, что cat=concatenate. Тоже плохо.

А вот как ты в консоли вводишь длинные команды, пути к файлам итп, не копипастишь из графического файлового менеджера?

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

так машина современная это бездумный исполнитель и не может додумывать / разгадывать смысл твоих опечаток потому что ей нужна точность. всё же в тексте обычно и пишутся инструкции к какой то технике а не в графических рисунках. взять хотя бы элементарную вещь с всего лишь с 6 возможными состояниями (а не миллиардами как у компа) коробку передач. ну не проще ли прочитать «нажми сцепление и поставь нужную скорость» чем в рисунках разбираться где педалька нарисована и рычаг со стрелочками. вот у нас на экзамене в гаи одна тупая дура 3 раза вместо 3 скорости 1 включала пока инструктор не начал умолять гаишника прекратить уже этот экзамен а тот сидел угорал не его же машина))))

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