Автор Тема: Языки программирования  (Прочитано 9435 раз)

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

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн maratique

  • Сообщений: 1213
  • Пол: Мужской
    • Личный сайт Рамазанова Марата Рамилевича
RPN она сама по себе тюркская. Точнее алтайская.
Memento mori

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

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


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

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

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


Типа Hasannıñ jaşın jaz
 
Memento mori

Оффлайн злой

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

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


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


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

Оффлайн maratique

  • Сообщений: 1213
  • Пол: Мужской
    • Личный сайт Рамазанова Марата Рамилевича
Если ввести правило, что идентификаторы либо состоят из одной строчной буквы, либо начинаются и кончаются на заглавную, то пробелы будут не нужны, вроде:

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

Оффлайн злой

  • Сообщений: 15758
  • Пол: Мужской
  • це якась маячня
Это в сторону всяких brainfuck'ов.
Хлеба к обеду в меру бери,
Хлеб - драгоценность, его береги

Оффлайн kemerover

  • Сообщений: 2962
  • Пол: Мужской
Говорят, самым естественным является порядок слов SOV.
Кто говорит? Турки и японцы?

Оффлайн maratique

  • Сообщений: 1213
  • Пол: Мужской
    • Личный сайт Рамазанова Марата Рамилевича
Это в сторону всяких 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

Оффлайн злой

  • Сообщений: 15758
  • Пол: Мужской
  • це якась маячня
Там в пределах статистической погрешности разница. Вот то, что номинативный строй победил эргативный, можно констатировать.
Хлеба к обеду в меру бери,
Хлеб - драгоценность, его береги

Оффлайн kemerover

  • Сообщений: 2962
  • Пол: Мужской
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

  • Сообщений: 1213
  • Пол: Мужской
    • Личный сайт Рамазанова Марата Рамилевича
qka>>k++k5<?q; можно упростить до
qka>>k5+<q; можно упростить до
ka>>k5+<:

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

Оффлайн kemerover

  • Сообщений: 2962
  • Пол: Мужской
Там в пределах статистической погрешности разница. Вот то, что номинативный строй победил эргативный, можно констатировать.
А разве у них когда-то была борьба?

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Вот то, что номинативный строй победил эргативный, можно констатировать.
Это SVO или OVS?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн злой

  • Сообщений: 15758
  • Пол: Мужской
  • це якась маячня
Вот то, что номинативный строй победил эргативный, можно констатировать.
Это SVO или OVS?


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

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

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

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Я так понял, это как тёплое и сладкое.
Я про порядок в самой цитате спросил.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн rupol2000

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

Притом сам Хьюитт не оценил идею

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

Оффлайн злой

  • Сообщений: 15758
  • Пол: Мужской
  • це якась маячня
Я так понял, это как тёплое и сладкое.
Я про порядок в самой цитате спросил.

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

Оффлайн Bhudh

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

Оффлайн maratique

  • Сообщений: 1213
  • Пол: Мужской
    • Личный сайт Рамазанова Марата Рамилевича
Оказывается, в последнее время стали появляться такие вот ЯПы без лишней писанины — так называемые 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

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

Оффлайн maratique

  • Сообщений: 1213
  • Пол: Мужской
    • Личный сайт Рамазанова Марата Рамилевича
Оказывается, в последнее время стали появляться такие вот ЯПы без лишней писанины — так называемые golfing languages. А сам процесс написания чрезвычайно лаконичного кода называется code golf(ing).
Вроде как код-гольфинг был популярен лет 7 назад, сейчас как-то меньше о нём слышно.
Так и ничего полноценного не создали. Забрасывали на полдороге.
Memento mori

 

В быстром ответе можно использовать BB-теги и смайлы.

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Имя: E-mail:
Визуальная проверка:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: