Автор Гілка: Мавка та Ціль — українські мови програмування  (Прочитано 1481 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3995
  • Карма: +27/-0
  • Програміст
Ціль — це українська мова програмування подібна на Сі. Мавка — це українська скриптова мова програмування.

Домашні сторінки: https://мавка.укр/ та https://ціль.укр/
[Fedora Linux]

Відсутній kostiantyn.hermash

  • Новачок
  • *
  • дописів: 39
  • Карма: +1/-0
Здається сьогодні не перше квітня.

typedef size_t природне;
Природне --- це натуральне число? Воно включає нуль?

Мені більше подобається замість цього змінна а: ціле = 10; писати так:

ціле а = 10;, дійсне а = 10.5;, комплексне а = 10 + i*15;, символ а = 'б';. Як в Сі.

ціле а = 123;
ціле* б = &а;

Чому замість функцій дії, тобто процедури? Чому вони повертають значення направо?

дія сума(а: ціле, б: ціле) -> ціле {
  вернути а + б;
}

Це якби математики писали f(x) -> y, замість y = f(x), це нелогічно.

Тоді нехай будуть і функції (які повертають значення наліво), і дії (процедури, які не повертають значення).

Мені не подобаються ці скорочення: ц32,ц64,і т.д. Краще повністю писати: ціле32, ціле64.
« Змінено: 2025-11-28 22:35:09 від kostiantyn.hermash »

Відсутній ps

  • Дописувач
  • **
  • дописів: 86
  • Карма: +0/-0
Чомусь згадався колишній 1С з його кирилицею. Тепер вже не так смішно.

Стосовно зручності, то це тільки в мене на українській розкладці знак ";" на "shift+4"?)
« Змінено: 2025-11-29 09:31:57 від ps »

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 271
  • Карма: +12/-0
якщо поза необхідністю локалізувати саме код, думаю то зарано по ряду причин і може бути контрпродуктивно, але як розробка чогось - то ok

Тобто тільки відносно зліва-направо, синтаксису, etc:
Цитата
Мені більше подобається замість цього змінна а: ціле = 10; писати так: ціле а = 10; Як в Сі.
У кожного свій смак, тобто де саме 'тип' записати зліва-справа-до-чи-після-etc. - в сі по одному, в паскалі наприклад навпаки (і таку форму аля паскалевську в багатьох мовах використовують).

Цитата
Чому замість функцій дії, тобто процедури?
дія сума(а: ціле, б: ціле) -> ціле {
  вернути а + б;
}
теж саме про смаки - саме така форма також зустрічається в інших мовах програмування,
відносно чому не "функція/function" а "дія" - напевно щоб отримати більш стислий запис, по такій самій причині зачасту використовують скорочення "fn" чи "func" замість "function", тому думаю "дія" вийшло і стисло і вдало бо повне слово.

Цитата
Чому вони повертають значення направо? ... це нелогічно
десь було що опис функції нп з function returns integer, абож функція повертає ціле - читається більш природно/логічно
у порівнянні з integer is returned by function -чи- integer function

Цитата
Мені не подобаються ці скорочення: ц32,ц64,і т.д. Краще повністю писати: ціле32, ціле64.
все теж саме, i32 i64 чи int32 int64, проти integer32 та integer64 (хоча тут можна було залишити 'ціле' бо само слово коротке)
« Змінено: 2025-11-29 13:25:16 від yvs115 »

Відсутній ps

  • Дописувач
  • **
  • дописів: 86
  • Карма: +0/-0
Цитата
змінна а: ціле = 10;

ну видно з раста потягли, тут (як і там) дійсно варіант "ціле а = 10;" сприймається набагато легше.
от воно як з shift+4 зайвий рух, зайва двокрапка і тд. ще й навиворіт.

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 271
  • Карма: +12/-0
Цитата
Цитата
змінна а: ціле = 10;
ну видно з раста потягли
якщо знати тільки раст - то все ржавим буде здаватись)

Як до нього було достатньо мов зі схожею нотацією (для мене це паскаль стайл) так і після нього.

Відсутній ps

  • Дописувач
  • **
  • дописів: 86
  • Карма: +0/-0
Цитата
якщо знати тільки раст - то все ржавим буде здаватись)
так раст це наче не про оксиди а про якісь там гриби, що явно на тякає на його упоротість синтаксису

але посил зрозумілий: я й дійсно мало мов знаю: писав років 10-15 на php і суміжних з ним, поки не "зіржавів".

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 271
  • Карма: +12/-0
Цитата
так раст це наче ...
Якщо брати як колір то напевно з файрфокс логоіконки зайшов, але які саме асоціації були у автора мови коли він обрав назву rust - невідомо)
Зліва-направо-справа-наліво - до речі зараз частіше паскалевський стиль обирають при створенні мов програмування, підгрунтя для того зазвичай кажуть якщо запитати - субєктивні мені так зручніше, природно читається, і т.п. З часом звикаєш і до справа-наліво і до зліва-направо - то непринципово.

Відсутній BeSiDa

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +1/-0
Ціль — це українська мова програмування подібна на Сі. Мавка — це українська скриптова мова програмування.
З української (культури) там тільки переклад "зарезервованих слів (символів мови програмування)"? Навіть не "синтаксису" (розділових знаків що в нас звичні). І не додано "волі та свободи"? :)
Тоді ... а сенс?

Мабуть мало хто зрозумів на скільки то великий плюс коли в нас "слова мови спілкування" та "слова мови програмування" візуально різні і фактично створені з літер різних діапазонів кодів (кирилиці та латиниці). Мозок зовсім іншим чином зберігає інформацію коли "інт" та "ціле" то "виглядає зовні зовсім різним чином" (замість "одне то підтип іншого" в структурі мозку).

Відсутній BeSiDa

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +1/-0
Чому замість функцій дії, тобто процедури? Чому вони повертають значення направо?

Тоді нехай будуть і функції (які повертають значення наліво), і дії (процедури, які не повертають значення).
"Дія" це не "функція" і не "процедура", це зовсім інший сенс. Це слово вказує на те, що "результатом запуску є зміна зовнішнього світу яку мова програмування не бачить", тобто це "інформація зовні мови програмування". А "функція" чи "процедура" це тільки характеристика тієї частини поведінки шматка коду, яку можна "побачити" з середини мови програмування (чи отримали з того коду нове число).

Та й взагалі то насправді обгортка над командами процесора, які не є за змістом ні математичною функцією, ні процедурою. То лише наша уява :)

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 271
  • Карма: +12/-0
Цитата
Мозок зовсім іншим чином зберігає інформацію коли "інт" та "ціле" то "виглядає зовні зовсім різним чином" (замість "одне то підтип іншого" в структурі мозку).
який вумниййй мозок, аж страшно коли цілий  ̶i̶n̶t̶ ніт зберігається і виглядає)
« Змінено: 2025-11-29 18:13:42 від yvs115 »

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 271
  • Карма: +12/-0
Цитата
Мавка — це ...
ще досить сира, зібравши x86_64 і спробувавши
% ./out/мавка hello.м
sh: segmentation fault (core dumped)  ./out/мавка hello.м

% gdb ./out/мавка
(gdb) r hello.м
Program received signal SIGSEGV, Segmentation fault.
0x000055555558db67 in КД::перекодувати_ю8_в_т8 ()
(gdb) bt
#0  0x000055555558db67 in КД::перекодувати_ю8_в_т8 ()
#1  0x000055555557a8cd in ?? ()
#2  0x000055555557aeca in ?? ()
#3  0x00005555555787b6 in ?? ()
#4  0x0000555555579bb4 in запустити_мавку ()
#5  0x0000555555678d22 in main (argc=2, argv=0x7fffffffbd08) at source/external/mavka.c:503
(gdb) q

хоча так спрацьовує)
% cp hello.м привіт.м
% ./out/мавка привіт.м
Вітання з моєї першої дії!

Відсутній BeSiDa

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +1/-0
Мені здається та реалізація не є втіленням ідеї, яку зазначено на сайті (мова програмування, що звична для людей які знають українську). Бо першочергово що в ній відсутнє то ... "зміна суфіксів" при використанні у різних контекстах і зарезервованих слів, і змінних.
Використання без зміни виду слова то є англійська мова. І саме вона втілена фактично в проекті.

Замість:

машина це 123
створити дію з назвою "запустити"
запустити(машину)
 
Використані слова "машинА", "діЯ" без змін. Та ще й "=" замість звичного "це" або "є" чи "містить".

Оремо тема що в мові програмування ми до того самого слова ставимося як до різних сутностей (то як "змінна", то як "значення", то як "сенс існування тої змінної") без зміни синтаксису, що неможливо "звичною мовою".

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3995
  • Карма: +27/-0
  • Програміст
Цитата
Мавка — це ...
ще досить сира, зібравши x86_64 і спробувавши
% ./out/мавка hello.м
sh: segmentation fault (core dumped)  ./out/мавка hello.м

% gdb ./out/мавка
(gdb) r hello.м
Program received signal SIGSEGV, Segmentation fault.
0x000055555558db67 in КД::перекодувати_ю8_в_т8 ()
(gdb) bt
#0  0x000055555558db67 in КД::перекодувати_ю8_в_т8 ()
#1  0x000055555557a8cd in ?? ()
#2  0x000055555557aeca in ?? ()
#3  0x00005555555787b6 in ?? ()
#4  0x0000555555579bb4 in запустити_мавку ()
#5  0x0000555555678d22 in main (argc=2, argv=0x7fffffffbd08) at source/external/mavka.c:503
(gdb) q

хоча так спрацьовує)
% cp hello.м привіт.м
% ./out/мавка привіт.м
Вітання з моєї першої дії!

Ті генії видалили підтримку Унікоду, бо він їм заважає. З українською працює, я перевіряв. :-/

Мені цікавий цей проєкт в першу чергу як джерело чисто-української термінології: наприклад те, що вони вибрали «дія» («action») для позначення процедур.

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

Мене трохи здивували що вони вибрали «структура» замість «запис», але напевно вже пройшло багато часу з тих пір, коли структури робилися лише для того, щоб щось читати чи записувати з диску, тобто вони описували формат записів на диску. Я вже давно не бачив такого у прикладах до сучасних мов програмування, крім Сі/Сі++ та Паскаля, тому напевно це вже забулося.
[Fedora Linux]

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 271
  • Карма: +12/-0
Цитата
Мене трохи здивували що вони вибрали «структура» замість «запис»
враховуючи паскаль стайл з типом справа а не зліва, але struct то аля cі, хоча в паскалі було record, - певно натхнення з граматики і назв вже явно з більш сучасних мов програмування

Цитата
Ті генії видалили підтримку Унікоду
не зовсім зрозумів відносно unicode, по ідеї там все в utf8 encoding на вході (а нп з windows utf16 filenames будуть деякі трабл напевно), хоча mavka-linux-x86_64/**/*.ll файли для llvm я і не дивився щоб розгледіти деталі
« Змінено: 2025-11-30 12:23:03 від yvs115 »