Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Языки программирования

Автор Devorator linguarum, октября 31, 2018, 18:59

0 Пользователи и 1 гость просматривают эту тему.

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

maratique

RPN она сама по себе тюркская. Точнее алтайская.
Memento mori
普京回罗

maratique

Надо чтоб в языке обращения к массивам не отличались бы от вызова функций:

a = (1, -7.93, "hggjg", x)
1 a jaz   #выводит -7.93


Как бы 1'ci a'nı jaz
Memento mori
普京回罗

maratique

Так будет понятнее:

jaş = Lejla:23, Ajgül:59, Hasan:17, Ivan:6
Hasan jaş jaz   #выводит 17


Типа Hasannıñ jaşın jaz
Memento mori
普京回罗

злой

Цитата: maratique от июля 21, 2021, 19:11
Надо чтоб в языке обращения к массивам не отличались бы от вызова функций:

a = (1, -7.93, "hggjg", x)
1 a jaz   #выводит -7.93


Как бы 1'ci a'nı jaz


Forth покурите. Там что-то, на первый взгляд, близкое по идее.
Виривайся, виривайся з ночі й туману,
вигризай зневіру та безнадію.
Я потім лікуватиму твою рану,
наскільки встигну, наскільки зумію.

maratique

Если ввести правило, что идентификаторы либо состоят из одной строчной буквы, либо начинаются и кончаются на заглавную, то пробелы будут не нужны, вроде:

a1 2 3 4;           # ";" — это оператор присваивания
k1;
qka>>k++k5<?q;      # цикл = рекурсивной функции
q


Что эквивалентно

a={1,2,3,4}
for k=1,4 do print(a[k])end

Знаете какой-нибудь такой же минималистичный упоротый язык? А то я бы его изучил вместо того, чтобы свой транслятор делать.
Memento mori
普京回罗

злой

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

kemerover

Цитата: maratique от июля 21, 2021, 15:08
Говорят, самым естественным является порядок слов SOV.
Кто говорит? Турки и японцы?

maratique

Цитата: злой от августа 27, 2021, 09:16
Это в сторону всяких brainfuck'ов.
Brainfuck наоборот длинный. А мне надо без лишней писанины. А то все существующие языки убогие.
ЦитироватьКто говорит? Турки и японцы?
SOV   "She him loves."   45%   
SVO   "She loves him."   42%   
VSO   "Loves she him."   9%   
VOS   "Loves him she."   3%   
OVS   "Him loves she."   1%   
OSV   "Him she loves."   0%
      Warao
Memento mori
普京回罗

злой

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

kemerover

Цитата: maratique от августа 27, 2021, 09:40
SOV   "She him loves."   45%   
SVO   "She loves him."   42%   
VSO   "Loves she him."   9%   
VOS   "Loves him she."   3%   
OVS   "Him loves she."   1%   
OSV   "Him she loves."   0%
      Warao
Это говорит только против вашего утверждения. Если SOV очевидно самый удобный, откуда 55% языков с другим строем?

maratique

qka>>k++k5<?q; можно упростить до
qka>>k5+<q; можно упростить до
ka>>k5+<:

Короче можно for k=1,4 do print(a[k]) end записать в виде
0k4+<ka>>:
— никакой лишней писанины. Вот это я понимаю язык
Memento mori
普京回罗

kemerover

Цитата: злой от августа 27, 2021, 12:21
Там в пределах статистической погрешности разница. Вот то, что номинативный строй победил эргативный, можно констатировать.
А разве у них когда-то была борьба?

Bhudh

Цитата: злой от августа 27, 2021, 12:21Вот то, что номинативный строй победил эргативный, можно констатировать.
Это SVO или OVS?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

злой

Цитата: Bhudh от августа 27, 2021, 18:07
Цитата: злой от августа 27, 2021, 12:21Вот то, что номинативный строй победил эргативный, можно констатировать.
Это SVO или OVS?


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

злой

Цитата: kemerover от августа 27, 2021, 14:12
Цитата: злой от августа 27, 2021, 12:21
Там в пределах статистической погрешности разница. Вот то, что номинативный строй победил эргативный, можно констатировать.
А разве у них когда-то была борьба?

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

Bhudh

Цитата: злой от августа 27, 2021, 18:17Я так понял, это как тёплое и сладкое.
Я про порядок в самой цитате спросил.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

rupol2000

Цитата: Python от ноября  2, 2018, 00:21
Как сделать нечто подобное в языке типа JS, где yield/сопрограммы/континуации или другие подобные средства отсутствуют — только return?
В JS кажется есть yield.
Я как то сталкивался с этими продолжениями в scheme, оттуда они собственно и пришли, мне не понравилось и я до конца их так и не понял. На самом деле их даже запаренные лисперы не используют, о них только чесать языком все горазды.
Их трудно понять, потому что там происходят неявные манипуляции со стеком, а не потому что они какие то там сверхумные.
Люди обычно плохо понимают даже обычные замыкания, потому что там под ковром создаются окружения, которые программисту недоступны. Все это из разряда как сделать из простого уродливо-сложное и представлять потом публике недостатки как достоинства.
Это была идея Сассмана, когда он украл у Карла Хьюитта идею языка Планнер и сделал мини-форк. Сделал он это исключительно из соображений производительности, это был суррогат бектрекинга, потом как водится, функциональщики приписали ему разные волшебные свойства.

rupol2000


rupol2000

И кстати для Питона они должны быть слишком дорогими по памяти, потому что он не оптимизирует хвостовую рекурсию, в отличие от scheme

злой

Цитата: Bhudh от августа 27, 2021, 19:03
Цитата: злой от августа 27, 2021, 18:17Я так понял, это как тёплое и сладкое.
Я про порядок в самой цитате спросил.

А, теперь понятно. Это SVO. Аналогичные языковые казусы встречаются, когда рассказывают как одна компания с несклоняемым буржуйским названием купила другую такую же буржуйскую компанию.
Виривайся, виривайся з ночі й туману,
вигризай зневіру та безнадію.
Я потім лікуватиму твою рану,
наскільки встигну, наскільки зумію.

Bhudh

Вот поэтому пассив пока и не умрёт. «XXX была куплена YYY».
Правда, с «XXX была продана YYY» уже будут проблемы, хоть и другого рода.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

maratique

Оказывается, в последнее время стали появляться такие вот ЯПы без лишней писанины — так называемые golfing languages. А сам процесс написания чрезвычайно лаконичного кода называется code golf(ing).

Но,к сожалению, пока эти языки сыроваты и реализованы лишь поверх другого языка высокого уровня — даже на Си не нашел, не то что на ассемблере. К тому же есть неприятные изъяны в дизайне.

Лучшее, что я нашел — это язык программирования CJAM: http://cjam.aditsu.net/ — он реально рабочий, на нем можно писать консольки. Но в нем есть явные недостатки:

  • Зачем-то среди постфиксных операций затесалась одна инфиксная.
  • Доступ к элементу массива и вызов функции имеют разный формат.
  • Символы [, ], {, } идут парами и поэтому половина их зря пропадает

А так в целом отлично. Особенно удобно писать функции — не нужны формальные параметры, ибо ты уже знаешь, что они на стеке. Например, функция, суммирующая два своих аргумента будет выглядеть просто
0$2$+

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

'BesselJ''math'L — функция BesselJ из библиотеки math
'sum_of_squares'l — пользовательская переменная sum_of_squares

Во-первых, буква l — первая буква слова library - библиотека, а во-вторых, из-за сходства с цифрой 1 она редко используется как идентификатор.
Memento mori
普京回罗

kemerover

Цитата: maratique от сентября  7, 2021, 18:45
Оказывается, в последнее время стали появляться такие вот ЯПы без лишней писанины — так называемые golfing languages. А сам процесс написания чрезвычайно лаконичного кода называется code golf(ing).
Вроде как код-гольфинг был популярен лет 7 назад, сейчас как-то меньше о нём слышно.

maratique

Цитата: kemerover от сентября  7, 2021, 19:34
Цитата: maratique от сентября  7, 2021, 18:45
Оказывается, в последнее время стали появляться такие вот ЯПы без лишней писанины — так называемые golfing languages. А сам процесс написания чрезвычайно лаконичного кода называется code golf(ing).
Вроде как код-гольфинг был популярен лет 7 назад, сейчас как-то меньше о нём слышно.
Так и ничего полноценного не создали. Забрасывали на полдороге.
Memento mori
普京回罗

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
√49:
ALT+S — отправить
ALT+P — предварительный просмотр