LINUX.ORG.RU
ФорумTalks

Русский язык vs ЯП


0

1

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


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

krakatau
()

Золотое правило

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

> закрывающая запятая не ставится перед точкой

HTML говнонестрикт

точка - символ закрытия всех блоков, т.е. последовательность закрывающих запятых просто скрыта

>нет двойных запятых

язык был придуман давно, потому такой убогий

>кавычки зачастую не различаются по виду на открывающие и закрывающие

поэтому человеку-транслятору нужно запускать forward-backward-N-read, хранить стек или кэшировать визуально.. Жутко медленная операция. На длинных приложениях у человека заканчивается память под структуры и мозг виснет с потерей данных. Фантастически крутой язык!

>В русском языке, да и вообще в естественных, знаки препинания опускаются везде где только можно.

это позволяет гумунитариям либо не думать вообще, либо думать о чем попало. Профит!

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

А для естественных языков пунктуация — приятное, но не обязательное дополнение.

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

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

> Более того: в естественном языке можно и на грамматику забить.

угу
не-понимаешь-того-что-тебе-сказали@ну-и-пофиг-все-так-делают!

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

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

krakatau
()
Ответ на: Золотое правило от stevejobs

точка - символ закрытия всех блоков, т.е. последовательность закрывающих запятых просто скрыта

вот я к тому же. Считать ))))))))))))) сколько тут закрывающих скобок или равносильно ,,,,,, труднее чем сбросить счетчик открывающих после точки до предыдущей точки.

поэтому человеку-транслятору нужно запускать forward-backward-N-read, хранить стек или кэшировать визуально.. Жутко медленная операция. На длинных приложениях у человека заканчивается память под структуры и мозг виснет с потерей данных. Фантастически крутой язык!

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

faska
() автор топика
Ответ на: Золотое правило от stevejobs

это позволяет гумунитариям либо не думать вообще, либо думать о чем попало. Профит!

думать о чем попало позволяет то что смысл слов определяется личным опытом

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

Да ладно тебе. В естественном языке можно применять сокращения, которые все поймут, но не соответствующие литературным нормам. «you»=«u», «because»=«coz» и т.д. В ЯП это недопустимо.

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

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

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

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

> В в русском, по крайней мере, пунктуация обязательна.

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

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

> лишь в написании правильного транслятора

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

в английском языке, например. сошлись на такой оптимизации:
1) блоки вычленяются визуально
2) визуально вычленяется середина предложения
3) рядом с серединой любым методом поиска ищется сказуемое
4) слева от сказуемого ищется подлежащее
5) ну и так далее

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

Считать ... труднее чем сбросить счетчик открывающих после точки до предыдущей точки.


годная оптимизация, жаль что их так мало =)

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

> думать о чем попало позволяет то что смысл слов определяется личным опытом

согласен, и поэтому тебя постоянно никто не понимает. И можно радостно мазаться «меня никто не понимааааает!». Профит!

stevejobs ★★★★☆
()

Мне кажется причина в том что естественные языки подходят для большого объема текста. А в ЯП синтаксис из математики тащили, где все намного короче.

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

> в английском языке, например. сошлись на такой оптимизации:

«Всё сложнее, чем кажется.» Закон Мерфи

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

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

Прежде всего они нужны там, где строгость существенно снизит выразительность.

А в ЯП синтаксис из математики тащили, где все намного короче.


Использование строгих правил в ЯП связано с простотой архитектуры ЭВМ.

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

кстати, все средства уменьшения дублирования, типа ООП и препроцессора - то же самое

которые все поймут


поймут все внутри твоей культуры.

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

stevejobs ★★★★☆
()

> A почему в языках программирования и в математических обозначениях так много используется разграничительных символов.
1) Для удобства записи формальных языков.
2) для упрощения транслирования ЯП в структуры данных и другие ЯП.

Так например закрывающая запятая не ставится перед точкой,

В математике тоже очень и очень много чего опускается. Хотя бы, скобочки ))
Формальными языками только в мат. логике и пользуются... Да и кому они нужны, кроме логиков, когда есть абстрактная алгебра, например?

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

> но если вместо svn sw будет svn sv, то комп это не распарсит.

угу, и поэтому при встрече любого слова формата [c,k]*o*[s,z] человеку приходится парсить лишний регэксп =) Чуешь как сказывается на производительности?

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

«you»=«u», «because»=«coz» и т.д. В ЯП это недопустимо.

внезапно:

soundex( 'you' ) == soundex( 'u' );
soundex( 'because' ) == soundex( 'bcoz' )
aho
()
Ответ на: комментарий от kermzyxer

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

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

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

> Чуешь как сказывается на производительности?

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

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

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

Мой мозг работает настолько быстро


сколько страниц художественного текста читаешь в минуту?

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

Вовсе не поэтому! Кванторами, теорией множеств, известными обозначениями из логики пользуются все. Получается что-то среднее.
Другое дело, что по какой-то причине далеко не во всех учебниках(современных) используют такие обозначения.

kermzyxer
()

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

DesertFox
()

граммар-наз, уйди...
Я в школе с двойки на тройку перебивался.

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

>Потому что в науке всё должно быть строгим и чётким, в том числе и синтаксис.

Программирование - не наука

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

>Потому что в науке всё должно быть строгим и чётким, в том числе и синтаксис.

Да ну можно писать без знаков препинания вообще и даже не разделять текст на предложения все равно все кто имеет хоть капельку мозга сами поймут и распарсят текст

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от rg-400

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

DNA_Seq ★★☆☆☆
()

Есть понятие нормированного языка.
А в HTML есть Quirks.

Ну ты понял.

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

Если я напишу f0r вместо for, не сделав предварительно дефайн, то компилятор меня не поймет.

drull ★☆☆☆
()

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

Познакомься с Фортом. Там единственный разграничитель — пробел :)

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


Только у двоечников.

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

> В естественном языке можно применять сокращения, которые все поймут, но не соответствующие литературным нормам.

4.2.

Нормированный язык культивируется как язык, который поймут все. Приведенные сокращения - это диалект, диалекты протовопоставлены литературному языку, диалекты понимаются не всеми (просто для носителя диалекта не всегда очевидно, что его могут неправильно понять).


«you»=«u», «because»=«coz» и т.д. В ЯП это недопустимо.


4.2.

#define TRUE false

Frakhtan-teh ★★
()
Ответ на: комментарий от KRoN73

> Только у двоечников.

Не, у него ключевое - «где только можно». Опускать знаки препинания там где можно - по определению можно (:

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

> #define TRUE false

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

drull ★☆☆☆
()

А вообще - злой зеленый тролль детектед. Сравнивать русский язык и язык программирования некорректно, это объекты разных типов.

Frakhtan-teh ★★
()

Из реального кода кусок.

: check-follow  (( new-position -- ))
    set-running
    attack? if
        self "Target" property-read distance-to
        600 < if exit then
        stop-attack
    then
        
    new-position follow-to-master
    null
;

Знаков препинания довольно мало :)

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

Дефайн - это предварительная договоренность. А твой «контекст» когда-то должен был быть кем-то объявлен, см. на реакцию на необъявленное «хилять» лоровской общественности в недавнем треде:

https://www.linux.org.ru/forum/talks/6445872

Frakhtan-teh ★★
()
Ответ на: комментарий от KRoN73

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

Только у двоечников.

Я имел ввиду что не выделяются запятыми, например, причастные обороты в зависимости от порядка следования членов предложения

faska
() автор топика
Ответ на: комментарий от Frakhtan-teh

> Дефайн - это предварительная договоренность. А твой «контекст» когда-то должен был быть кем-то объявлен, см. на реакцию на необъявленное «хилять» лоровской общественности в недавнем треде

Ничего сложного. Из фразы «хилять ненужные предметы» становится понятно что «хилять» - это прогуливать.

ПС. До этого я использовал слово «хилять» только в значении «лечить».

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

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

в естественном языке дефайны тебе с детства прививают, потому и диалекты.

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

> В естественном языке этих договоренностей может не быть

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

Frakhtan-teh ★★
()
Ответ на: комментарий от drull

> Из фразы «хилять ненужные предметы» становится понятно что «хилять» - это прогуливать.

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

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