Русскоязычное программирование

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русскоязычное программирование » Валентина-2 » Вопросы к автору по поводу парсера


Вопросы к автору по поводу парсера

Сообщений 1 страница 30 из 30

1

utkin написал(а):

Я устал уже писать про сменность синтаксиса.

А что она сумеет в русском языке? Неправильное склонение сможет обнаружить?

Отредактировано MihalNik (2018-05-24 20:50:48)

0

2

А что она сумеет в русском языке? Неправильное склонение сможет обнаружить?

Вы задаете там синтаксический сахар, например:

Создай переменную
Создаем переменную

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

Создаем переменных

, такая запись не будет найдена и будет выведено сообщение об ошибке при первом проходе (когда исходный код преобразуется во внутреннее представление).
Разбор конструкций (но не параметров в них) проходит перед стартом программы. Она с человеческого переводится во внутренний, что-то типа Р-кода и далее всегда исполняется за одинаковое количество времени, независимо от того сколько конструкций будет в наборе. Таким образом, можно создавать очень сложные человекоподобные записи. Есть теоретическая возможность Р-код сохранять и запускать отдельно от текста программы.

Отредактировано utkin (2018-05-25 07:13:59)

0

3

utkin написал(а):

Создай переменную
Создаем переменную

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

Отредактировано MihalNik (2018-05-25 09:34:33)

0

4

Почему угадайка? Есть система команд, от ее изучения Вас никто не избавлял. Как Вы хотели бы водить машину не имея знаний правил дорожного движения? Просто команды станут более человечны. Насчет дублирования работы это проблема интерпретатора, а не программиста. Он может пользоваться любым из двух предложенных вариантов. Эти Ваши падежи и склонения учтены. Вам не угодишь.

Много повторов в выражении - много повторов в работе.

Дайте пример, я не вижу проблемы.

Отредактировано utkin (2018-05-25 10:33:11)

0

5

utkin написал(а):

Дайте пример, я не вижу проблемы.

Не понравилось слово "переменная" или слово "создать" - надо их вручную менять для каждого варианта словосочетания, так?
И вообще эти разные формы выводимы из одной, зачем перечислять их вручную?

Отредактировано MihalNik (2018-05-25 11:16:22)

0

6

Не понравилось слово "переменная" или слово "создать" - надо их вручную менять для каждого варианта словосочетания, так?

Это нужно один раз задать при создании синтаксиса. Затем можно использовать любой из вариантов. И тут два момента:
1. Мало ли что Вам не нравится - в ПДД есть понятие разделительная полоса, мне вот не нравится и что, ради меня будут ПДД переписывать? Есть правила, есть терминология.
2. Язык позволяет использовать иной синтаксис. Вы можете взять и написать собственный синтаксис, тот, который на Ваш взгляд более правильный. Берете синтаксис, правите его (текстовый файл) и получаете то, что правильней. После того как основные семантические возможности будут созданы будет обязательное обсуждение синтаксиса. То есть будет делаться с учетом пожеланий других  программистов. Это вполне демократичный вариант, который позволяет угодить и вашим и нашим.

И вообще эти разные формы выводимы из одной, зачем перечислять их вручную?

Потому что так проще, чем создавать. Проще один раз рассмотреть допустимые варианты, чем создавать гениальный алгоритм распознавания. Потому что существует большое количество частных случаев (типа слова кофе). А словарь частных случаев ни чем не отличается от моего.

Отредактировано utkin (2018-05-25 11:59:19)

0

7

Проще один раз рассмотреть допустимые варианты

А зачем тогда сменяемость?

utkin написал(а):

ради меня будут ПДД переписывать? Есть правила, есть терминология.

Вот именно что они написаны до нас.
Какая тогда может быть сменяемость? Вы подменяете понятие формата данных словаря на "сменяемость синтаксиса".
Предлагая крайне плохой формат: текст, полное дублирование.

Потому что так проще, чем создавать.

Ещё раз: словари давно составлены и доступны.

Отредактировано MihalNik (2018-05-25 14:53:05)

0

8

А зачем тогда сменяемость?

1. Потому что всегда найдется MihalNik, которого не устраивает термин "переменная" и термин "создаем".
2. Потому что синтаксис определяется не только русским языком, но и кучей спецзнаков (например, как выделять текстовые константы в тексте программы?)
3. Потому что у каждого должна быть иллюзия выбора
4. Потому что русский язык не единственный в мире и даже не самый-самый (что печально).
5. Потому что можно кастомизировать язык и есть еще туманное видение вопроса о том как с помощью макросов затачивать его на предметные области (но до этого еще очень-очень-очень далеко).

Достаточно аргументов?

Вот именно что они написаны до нас.

Если мы не будем придерживаться каких-то базовых правил и определений, нам придется заново изобретать велосипед, причем без сидушки. Проблема №2 - отсутствие единого стандарта и бюрократии это зло (как их и избыток). Вам вот то подавай, Лису это, мне третье.  И тогда количество учитываемого перерастет вообще все мыслимые варианты, а работа станет не управляемой :). Некоторые границы должны быть.

Вы подменяете понятие формата данных словаря на "сменяемость синтаксиса".

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

Предлагая крайне плохой формат: текст, полное дублирование.

Но у меня есть опыт :). В первой Валентине было много вариантов конструкций для человека, но совершенно недостаточно для компьютера. Даже самому привередливому хватит 1000 записей с запасом на те фантазии, которые он еще не изобрел в обозримом будущем. Привередливость человека велика с точки зрения человека, но не достаточно велика, чтобы можно было заморачиваться по данному поводу.
Насчет полного дублирования. Полного дублирования там нет, но отдельные слова могут повторяться из-за разных типов конструкций. Рассмотренный пример

Создай переменную
Создаем переменную

двух конструкций записывается одной записью.

Ещё раз: словари давно составлены и доступны.

Еще раз - там не словари, а шаблоны. Проблема №2 - мне лично нравятся не все что записано в тех словарях. Проблема №3 мне не нужен весь словарь вообще-то. Я не пишу робота, воспринимающего естественную речь. Я пишу язык программирования, запись на котором будет краткой, а вариант для чтения человеком будет приближен к естественной форме. Все несогласные смогут взять и сделать себе свой синтаксис с тетрисом и шлюзами Таков план.

Отредактировано utkin (2018-05-25 16:58:37)

0

9

utkin написал(а):

в словаре слова, а здесь шаблоны конструкций

Еще раз - там не словари, а шаблоны.

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

utkin написал(а):

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

Но именно это Вы и предлагается сделать, потому что правила русского языка для Вас не аргумент и почему-то утверждаете, что они не аргумент для других.
В целом это приведёт к тем же проблемам, что и были с В-1.

но и кучей спецзнаков (например, как выделять текстовые константы в тексте программы?)

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

у каждого должна быть иллюзия выбора

Не обольщайтесь.

записывается одной записью.

Как именно?

Отредактировано MihalNik (2018-05-25 20:16:53)

0

10

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

Вот-вот и я о том же. Потому что семантика не определяется одним словом.

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

Совершенно не обоснованный вывод. Давайте проведем простой эксперимент:
1. Утверждение из примера "Создай переменную" соответствует правилам русского языка? Ответ: Да.
2. Утверждение из примера передает смысл действий, описывает модель используемую в языке (программирования) и понятен носителю русского языка? Ответ: Да.

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

В целом это приведёт к тем же проблемам, что и были с В-1.

Основная проблема в В-1 был недостаточный уровень абстракций внутри интерпретатора, а не проблемы в синтаксисе языка. Кроме того, цели стояли другие (написать аналог Бейсика).

Кого это вообще волнует? Арифметические знаки кто-то будет менять на другие?

Ну конечно, кто то же стал использовать i++ вместо i=i+1. Опять недостаточная проработанность вопроса. Я уже молчу о бесконечной битве между паскалистами и сишниками на оформление и крючкотворство, на вроде всяких там & vs AND и т.д. Вам дается возможность некоторого маневра (абсолютно все поменять нельзя), ее наличие никак не ущемляет Ваших возможностей, а только наоборот добавляет перспектив.

Да, уже писал, что литералы в коде - жуткий пережиток.

Что есть, то есть, но пока так.

Как именно?

Примерно так:

Шаблон
Описание=Операция создающая новую переменную
№=2
Слово1= создаем создай
Слово2=переменную
Слово3=1


Будет распознавать
Создаем переменную Х
Создай переменную Х
где Х это имя переменной (параметр 1 в конструкции)
2 это семантический код по которому определяется что нужно делать вообще.
Слов может быть до 8 (из них до 4-х параметров). Этого достаточно для записи большинства конструкций современных языков в естественной форме. При первом проходе все команды в функциях (просто есть интерфейсная часть, она исполняется непосредственно при чтении) упаковываются в структуры вида:
id - целое число
Param1 - строка
Param2 - строка
Param3 - строка
Param4 - строка
Что-то вроде Р-кода, и уже работа происходит независимо от синтаксиса и склонений русского языка. Виртуальная машина (которая хранит и обрабатывает системы) будет воспринимать эти коды, смахивающие на ассемблер, это должно ускорить работу в теории.

Отредактировано utkin (2018-05-26 08:13:39)

0

11

utkin написал(а):

Шаблон
Описание=Операция создающая новую переменную
№=2
Слово1= создаем создай
Слово2=переменную
Слово3=1

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

Ну конечно, кто то же стал использовать i++ вместо i=i+1.

1) Несущественно.
2) ++ не отменяет старых возможностей (что плохо, а не хорошо).

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

Это чрезвычайно трудоёмко. Для согласования падежей число перечислений умножается до 6. См. выше про бессмысленность труда.
Люди это прекрасно понимают и заниматься этим не будут.

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

Классная шутка! Именно, что не учтены, Вы полностью перекладываете эту проблему на пользователей.

Совершенно не обоснованный вывод. Давайте проведем простой эксперимент:

Создай переменную длину.
Создаём переменную ширину.
Разграничение действующих лиц. Мы могли бы подумать что создатели (конструкторы) этих переменных - разные, они могли бы создаваться в разних участках/видах памяти, в разное время, на метауровне шаблонов и т.п.
Соответствует это различие чему-то в действительности: нет.

Далее. В русском языке первостепенное значение имеет падеж, а не порядок слов.
То есть В-2 не сможет отловить ошибку вида:
присвоить длину ширине
вместо
присвоить ширине длину
Чтобы их избегать придётся писать очень многословно, и, опять же, проблема целиком ложится на пользователя.

Отредактировано MihalNik (2018-05-26 10:34:30)

0

12

Так понятнее, что будет.

Так уже есть. На remdev представлены образцы реально работающей структуры. Парсер готов в общем виде, работа ведется над семантикой языка.

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

Это можно исправить. Нет технических проблем для решения проблем. Проблема на самом деле другая - нет и большого количества альтернативных разработок. Лис вообще цитированием английской литературы занимается :). Я в свое время принял простое решение - вместо бесконечного изучения и совершенствования модели уже взять и сделать что-нибудь. Я никого ни в чем не обвиняю - просто выбрал себе путь. Уже получить рабочий макет. В-1 в этом плане мне сильно помогла, я могу опираться на свой опыт, я могу быть уверенным в некоторых вопросах, тогда как другие только строят там предположения. Потому что у меня есть результаты и те которые из них отрицательные, они намного важней положительных.

1) Несущественно.

За эти несущественности люди обещают вычислить по IP и по проводам найти и лично побеседовать с оппонентом :). А Вы не существенно. Люди и в средние века были готовы убивать за свою религию. Поэтому существенно.

2) ++ не отменяет старых возможностей (что плохо, а не хорошо).

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

Это чрезвычайно трудоёмко. Для согласования падежей число перечислений умножается до 6. См. выше про бессмысленность труда.

Я уже писал, что у меня есть опыт. Это не так сложно - количество объектов в языке программирования намного меньше, чем в естественном. Потому проблема решается проще. Сколько синонимов Вы можете дать для слова переменная? Да еще в рамках концепции Вашего языка программирования? Исчезающе мало. Маловероятно что Вы вообще придумаете аналог и будете использовать его наравне с имеющимся "переменная". В результате Вы требуете возможностей, которые никогда не будут применены в полной мере.

Люди это прекрасно понимают и заниматься этим не будут.

Им и не требуется этого делать. У них будет готовый набор (даже два - краткая форма для записи и полная форма для чтения в естественной форме), можно взять и улучшить путем внесения правок используя циклический процесс и возможность откатываться на любой этап изменения. Писать синтаксис с нуля будет только Уткин :), хотя возможность полностью написать все что вздумается никто не отменял. И + интернациональность, но боюсь Лис сейчас совсем меня в предатели Родины запишет...

Вы полностью перекладываете эту проблему на пользователей.

Стоп! Вы сказали, что язык не учитывает правила русского. Я Вам показал, что это не верно. Вопрос исчерпан. То что вопросы удобства присутствуют скорее да, чем нет. Но это другой вопрос и отдельное обсуждение. Здесь принципиальным было обвинение (первоначально Лиса), что в языке нет "русскости" :).

Создай переменную длину.

Мы создаем переменную "Длина" или мы создаем "Переменную длину"? Это классная яма контекста. В такой форме синтаксис существовать не должен поскольку позволяет трактовать двусмысленные формы (это проблема естественной записи). Правильная запись: Создай переменную Длина. Вот и вся проблема. Вы пытаясь исправить одни грабли, тут же раскидываете с десяток других. Я потратил кучу своего времени на выяснение таких вот штук.

Мы могли бы подумать что создатели (конструкторы) этих переменных - разные, они могли бы создаваться в разних участках/видах памяти, в разное время, на метауровне шаблонов и т.п.

И в В-1 и В-2 (на remdev) я всех призывал и призываю к созданию синтаксиса, но люди не хотят. Люди хотят вести словарики :). Я готов (и раньше был готов) работать в форме диалога. Ну не нравится работать на Валентину, давайте создадим другой проект. Проект абстрактного русского синтаксиса. Куда включим рекомендации (рекомендации! не требования) о том, как следует проектировать синтаксис. Дадим примеры. Ну например цикл со счетчиком есть в куче языков. И вот вместо ерунды со словарями заниматься уже целями заложенными в манифесте. И человек который придет со стороны получит пакет документов, правил и инструкций, дорожную карту, выполняя которую он не будет болтаться как маятник из стороны в сторону, не вкладывать личные ощущения, а следовать утвержденным стандартам в соответствии с правилами русского языка. Без проблем, только кого это возбудит вообще?

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

Скажу Вам еще раз - я занимался этим вопросом и пришел к простому выводу: Нет там решения этого вопроса. Либо Вы пишите как сейчас в Глаголе, либо пишите всем понятно и длинно. Таковы свойства естественных языков (и не только их). Хотите корректного восприятия закладывайте идиотские правила оформления, вносите избыточность. Эта претензия вообще не ко мне, а к естественным языкам вообще и к русскому в частности. Нельзя писать на русском длинный текст короткими предложениями. Нельзя пропускать запятые (с чем у меня проблемы :) ). Почитайте того же Толстого, у него есть предложения чуть ли не в полстраницы (полстраницы, Карл!). Выбирайте - либо шашечки, либо ехать.

Отредактировано utkin (2018-05-26 10:46:17)

0

13

utkin написал(а):

Нет там решения этого вопроса.

Это сомнительное и полностью бездоказательное утверждение, которое можно переформулировать и более корректно: это не решается без обработки падежей.

Я Вам показал, что это не верно. Вопрос исчерпан.

Где?

Правильная запись: Создай переменную Длина.

Это именно нарушение русского языка! Я выше про это написал. Открываем правила:

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

Отредактировано MihalNik (2018-05-26 11:39:57)

0

14

Это сомнительное и полностью бездоказательное утверждение, которое можно переформулировать и более корректно: это не решается без обработки падежей.

Здрасьте. Я же Вам ваш пример привел. Что создать с Вашими падежами? Переменную длиную или переменную "длина"? Блин, как еще четче донести мысль. Ок.
1. Вы дали пример с падежами
2. Вы сказали что это круто
3. Я Вам привел пример, что это грабли
3. Вы утверждаете, что все ОК и проблемы на моей стороне.
Я четко вижу в Вашем же примере реальную проблему, которую Вы же сами и создали.

Где?

В примерах выше - Вы строите синтаксис в соответствии с правилами русского языка. Возможно? Возможно. Вам не нравится реализация идея, хорошо. Но сути это не отменяет - правила соблюдаются. Мы пишем команду Создать переменную Х. Есть там падежи? Да они учитываются - Создать переменным Х это будет воспринято как ошибка. Прошли верификацию? Прошли. В чем проблема-то? Я Вам отвечу в чем - Вы хотите реализацию определенной идеи. Но ее отсутствие (автоматный вывод падежей, склонений и пр.) не означает, что правила языка не соблюдены. Вам не нравится, Вам не удобно рассматривать вопрос в таком ключе, в форме которая не задает явный разбор падежей (и вообще в приниципе их не задает). Но решение не меняется - Создать переменную Х это корректное выражение русского языка.

Это именно нарушение русского языка! Я выше про это написал.

С чего бы это вдруг? Длина в данном случае имя собственное. Есть куча переменных, у них есть имена. Вот это их собственные имена. Корректно использовать таким образом? Да вполне. Вы же не пишите на корабле Титанике. Вы пишите на корабле Титаник. В чем проблема? Все отлично. И более того это в рамках концепции языка (потому что переменная имеет кучу полей среди которых Имя переменной) и в рамках.

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

Да, только Вы не используете приложение. Длина это не объект, а поле объекта и не только в моем языке. Это собственное имя символической ссылки.
А теперь давайте перейдем в наступление. Создать переменную Кофе. Дайте алгоритм вывода падежей :). Я ведь следуя Вашей логике должен писать Создать переменную Кофю. Это называется гладко на бумаге, да забыли про овраги.

Отредактировано utkin (2018-05-26 11:56:25)

0

15

utkin написал(а):

Дайте алгоритм вывода падежей

Открываем словарь и смотрим падеж. В чём проблема вообще?

Переменную длиную или переменную "длина"? Блин, как еще четче донести мысль.

Нужно взять первое предложение этого выражения и переписать правильно. Потому что его разобрать невозможно.
С вероятностью 99% у Вас проблемы с алгоритмами разбора.

переменную Кофе

Да можете потом годами находить 100500 разных причин ненависти, просто вместо того, что кофе не женского рода. Дело Ваше, о проблеме я написал.

Отредактировано MihalNik (2018-05-26 12:18:08)

0

16

Открываем словарь и смотрим падеж. В чём проблема вообще?

1. Пользователь придумает имя для которого нет записи в словаре. Новохуданосор. Как жить дальше?
2. Размер словаря падежей превышает размер записей в наборе конструкций. Я Вам говорил уже - я оцениваю число записей в наборе В-2 в 1000 максимум (это моя приблизительная оценка, ограничений там нет). Очевидно Ваш подход может стать затратней моего :).
3. Человек может допускать намеренные ошибки в имени (например, сократить длинные переменные), где брать для них падежи.
4. Реальные примеры из жизни: График_учебного_процесса, График_дежурства_студентов, График_занятий_лаборатории. Итак, у нас в проекте живут три переменных. Как мне получить для них автоматический вывод падежей?
5. Примеры из жизни несчастных 1Сников: РегистрНачисленияЗаработнойПлаты - проблемы как в п.4, только еще более суровей.

Нужно взять первое предложение этого выражения и переписать правильно. Потому что его разобрать невозможно.
С вероятностью 99% у Вас проблемы с алгоритмами разбора.

У меня нет проблем с разбором. Все работает и разбирается. Я добавляю конструкции прямо сейчас (на ремдеве же есть темы - читайте) и неоднократно призывал всех участвовать в процессе. И опять же не нравится вариант - смените синтаксис на собственный :). Вы же отторгаете эту возможность вместо того, чтобы пользоваться ей. Вы сами создали прецедент с падежом и сами же теперь выдвигаете новые условия. Я Вам дал ответ. Создать переменную Длина. И этот ответ корректен с точки зрения языка. Вы рассматриваете переменную как новую сущность и тем самым вносите трудноотлавливаемые логические ошибки. Потому что длина это не самостоятельная вещь, это внезапно свойство объекта. Иными словами нельзя создать длину отдельно от чего-то :). При отладке крупного приложения это стопроцентные грабли. Я создаю сущность определенную в языке - я создаю переменную, имеющую имя Длина. Мой пример корректен. Я Вам уже писал пример: На корабле Титаник произошла трагедия. Это корректная запись в русском языке. Независимо от того, нравится Вам это или нет.
Вот смотрите в Вики:

Крушение парохода «Титаник»

Не крушение парохода Титаника, а Титаник. Вы мне пишите, что эта запись не корректна.

Да можете потом годами находить 100500 разных причин ненависти, просто вместо того, что кофе не женского рода. Дело Ваше, о проблеме я написал.

Я Вам дал пример, на который нет ответа - см. п.1. Всегда существует имя переменной для которой нельзя найти падеж в словаре (например, там сокращение ОАО, как это распознать?). Что делать? Ответа нет. По поводу переменной длины Вы сами дали этот пример записи. Ну хорошо дайте другой пример, который поможет избежать двусмысленности.
В результате в сухом остатке мы имеем:
1. Нет четкого алгоритма вывода падежей. Везде утверждается что он просто, но самого алгоритма внезапно у нас НЕТ.
2. Алгоритм с падежами не идеален, потому что словарь не дает стопроцентного покрытия всех переменных - см. п.1-5.
3. Алгоритм потенциально позволяет вводить двусмысленность и неоднозначность толкования.
4. От меня требуют все это внедрить в язык.
5. Я зашел на словарик Павия. И не нахожу там слова Кофе :).
6. Неизвестно где хранить словарь падежей.

А еще вопрос про приложения существительных :). Создать переменную Мотору? Создать переменную Мотора? Создать переменную Мотор? Следуя Вашей логике - то Создать переменную Мотору :).
Мое мнение такое - мне предлагают кота в мешке. Я создаю вещь, которая не идеальна. Допустим, и скорее всего это даже так. Но язык имеет возможность правки синтаксиса. Это можно исправить в некоторых пределах. Какие-то фичи ввести. Но то что предлагается взамен... А кстати, что предлагается взамен? Я вижу ущербность идеи, по крайней мере, то что меня не устраивает я написал. Менять шило на мыло как-то не круто. Я понимаю, что я могу ошибаться и предложил три компромисса:
1. Сменяемость синтаксиса. Для всех профессоров русского языка с 50-летним стажем - сделайте так как правильно и Вас никто не осудит.
2. Участие в проекте. Влияйте на В-2, меняйте его синтаксис.
3. Кому не нравится работать на какого-то непонятного и мутного Уткина - давайте сделаем проект синтаксиса абстрактного языка программирования. Вставим там наиболее употребительные конструкции - циклы, условия, объявление структур данных, прерывания, выделение памяти, структуризация кода, подключение внешних библиотек и модулей. Все это в том или ином виде есть в большинстве языков программирования. Давайте возьмем за основу какой-нибудь С# или Java или JavaScript (или кто-там сейчас самый востребованный) и составим им свои русскоязычные шаблоны конструкций.
Таковы мои предложения по язычному (или языческому) шовинизму.

Отредактировано utkin (2018-05-26 17:14:56)

0

17

Крушение парохода «Титаник»

utkin написал(а):

Вы мне пишите, что эта запись не корректна.

Неправда. Эта запись корректна.
А эта нет:

Создай переменную Длина

Найдите 3 отличия.

1. Нет четкого алгоритма вывода падежей. Везде утверждается что он просто, но самого алгоритма внезапно у нас НЕТ.

Не смешно. Можно подумать, что Utkin не знает, что такое БД и как выполняются к ним запросы.

2. Алгоритм с падежами не идеален, потому что словарь не дает стопроцентного покрытия всех переменных - см. п.1-5.

INSERT в SQL? Не, не слышали.

3. Алгоритм потенциально позволяет вводить двусмысленность и неоднозначность толкования.

Вы предлагаете тоже самое. Дали пример, с неоднозначностью действующего лица.

Я зашел на словарик Павия. И не нахожу там слова Кофе

При чём здесь вообще словарик Павиа?

Следуя Вашей логике - то Создать переменную Мотору

Кофе какая-то. (теперь так и буду ругаться, чтоб аж Лис занюхивался)

1. Сменяемость синтаксиса.
2. Участие в проекте. Влияйте на В-2, меняйте его синтаксис.
3. Кому не нравится работать на какого-то непонятного и мутного Уткина - давайте сделаем проект синтаксиса абстрактного языка программирования.

Семантика не верна.

Давайте возьмем за основу какой-нибудь С# или Java или JavaScript (или кто-там сейчас самый востребованный) и составим им свои русскоязычные шаблоны конструкций.

Всё это можно делать в рамках AL-IV сразу для нескольких выходных языков, есть справки, примеры и авторский вариант. Исходники открыты.

Таковы мои предложения по язычному (или языческому) шовинизму.

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

Отредактировано MihalNik (2018-05-26 19:25:36)

0

18

А эта нет:

Почему?

Найдите 3 отличия.

Мне не интересно играть в ребусы.
Создай пароход Титаник.
Создай переменную Длина.
Купи машину Тойота.
Открой окно.

Не смешно. Можно подумать, что Utkin не знает, что такое БД и как выполняются к ним запросы.

Ну конечно, прикрутить туда БД это лучше, чем мой метод, ага.Чего уже там, давайте сразу операционку отдельно для падежей писать. Я уже молчу о том, что будет требоваться поставлять СУБД - это новая священная война почему там MySQL, а не MongoDB и все такое прочее.

INSERT в SQL? Не, не слышали.

А у другого пользователя? Значит еще и систему обновления подавай. И про размер скромно промолчим.

Вы предлагаете тоже самое. Дали пример, с неоднозначностью действующего лица.

Это обсуждаемо и решаемо. Сменность синтаксиса позволяет поменять лицо в течение нескольких минут.
Выбирайте требуемое Вам число и лицо, для меня не принципиален данный вопрос. Хотите Создайте, Создать, Создаем, Создадим - все равно это делается быстро и без проблем.

При чём здесь вообще словарик Павиа?

При том что словарь падежей никто не ведет и его еще нужно создавать отдельно. БД+обновление+словарь исключений? Нафиг такие падежи. Я лучше один текстовый файл поправлю.

Кофе какая-то. (теперь так и буду ругаться, чтоб аж Лис занюхивался)

Вот и я Вам о том же. Что кофе какая-то получается. Потому что много правил, а к ним много исключений.

Семантика не верна.

В этом и есть смысл, что семантика не важна, а синтаксис логически отделен от него.

Всё это можно делать в рамках AL-IV сразу для нескольких выходных языков, есть справки, примеры и авторский вариант. Исходники открыты.

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

Отредактировано utkin (2018-05-26 23:15:56)

0

19

новая священная война почему там MySQL, а не MongoDB и все такое

"На вилы юникод, даёшь однобайтовую кодировку!"

MihalNik написал(а):

При том что словарь падежей никто не ведет

Ну, конечно, прямо никто их никогда не прописывал.

+обновление

Ну, у Вас не предполагается ничего согласовывать?

utkin написал(а):

Можно, но никто же не делает и не собирается. Вот и весь результат с падежами.

Это как раз результат без падежей. Но объяснять же бесполезно.

Отредактировано MihalNik (2018-05-27 06:38:50)

0

20

Итак, снова итоги.
1. Мой метод проще
2. Мой метод корректен на основании:

По правилам русского языка собственные наименования, как то: названия организаций, торговые марки и тому подобное, не склоняются только в том случае, когда им предшествует родовой термин. Например, правильно: Газированной воды «Колокольчик» в продаже нет и «Колокольчика» в продаже нет.
Например, правильно: Можно жить без газированной воды «Фанта» и Можно жить без «Фанты».

Переменная это родовой термин. Длина это собственное имя переменной.
3. Мне предлагают значительное осложнение жизни с кучей проблем и неясностей.

Это как раз результат без падежей. Но объяснять же бесполезно.

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

Первоначальная постановка проблемы - В-2 не учитывает правил русского не соответствует действительности см. п.2.

0

21

utkin написал(а):

Чего уже там, давайте сразу операционку отдельно для падежей писать.

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

0

22

utkin написал(а):

"переменная" это родовой термин

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

Можно. Можно Ваш подход натянуть и на типы.

без газированной воды «Фанта»

без переменной типа "газированная вода" с именем "Фанта".

Здесь "переменная", "тип", "имя" - это ключевые слова, прописанные правилами, а всё остальное - неизменяемые имена.

Но не будет ли это излишне многословно?

Отредактировано Лис (2018-05-27 08:08:48)

0

23

utkin написал(а):

1. Мой метод проще

В AL-IV формат ещё проще. И уже работает, документирован, протестирован, показан на примере.

2. Мой метод корректен на основании:

В цитате не так как у Вас. Ай-ай-ай.

Переменная это родовой термин. Длина это собственное имя переменной.

Но мозг пары сотен млн. человек считает иначе. И у каждого там в голове нейронные связи, миллионы которых не перестроятся от того что Вы, вдруг, объявлеете родовые понятия и все сущности собственными именами. Ни сразу, ни потом. Вообще никогда. Хотите ли Вы этого или нет. Потому что для этого потребуется полностью исключить исходный русский язык из оборота.

utkin написал(а):

Первоначальная постановка проблемы - В-2 не учитывает правил русского не соответствует действительности см. п.2.

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

требовать максимально усложнить жизнь программиста.

Ещё раз - речь о минимальных требованиях.

А Вы предлагаете генерировать бесполезный мусор:

utkin написал(а):

Хотите Создайте, Создать, Создаем, Создадим - все равно это делается быстро и без проблем.

Быстро, без проблем и бессмысленно!
Прямо как в анектоде про программиста с абсолютно правильным и бесполезным ответом.

Отредактировано MihalNik (2018-05-27 08:48:30)

0

24

Лис написал(а):

Но не будет ли это излишне многословно?

Будет,  именно об этом и написал.

Отредактировано MihalNik (2018-05-27 08:18:37)

0

25

utkin написал(а):

давайте сделаем проект синтаксиса абстрактного языка программирования. Вставим там наиболее употребительные конструкции - циклы, условия, объявление структур данных, прерывания, выделение памяти, структуризация кода, подключение внешних библиотек и модулей. Все это в том или ином виде есть в большинстве языков программирования. Давайте возьмем за основу какой-нибудь С# или Java или JavaScript (или кто-там сейчас самый востребованный) и составим им свои русскоязычные шаблоны конструкций.

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

Отредактировано Лис (2018-05-27 08:39:13)

0

26

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

Ну да. Когда надо будем говорить о правилах русского языка. Когда надо то переходить на вопросы программирования. То что Вы написали никак не отменяет термина родовое понятие. И В-2 не Бейсик, В-1 имела цель быть в нише Бейсика (и Питона как я уже позже узнал).

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

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

без переменной типа "газированная вода" с именем "Фанта".

Это можно сделать в языке хоть сейчас. Сменность синтаксиса это позволяет. Единственная проблема - я об этом MihalNik уже говорил. Либо мы делаем очень длинный и не удобный для записи синтаксис (зато понятный и приятный) либо мы делаем краткую запись пожертвовав чем-нибудь (выразительностью как в Си). Но его не устраивает ни то, ни другое. Естественный язык потому и избыточен,  так как в краткой записи вносит двусмысленности и неясности. Сейчас вот то, что Вы предлагаете сделать можно (если не брать имена в кавычки), вообще не меняя интерпретатор. Только записи в файле набора конструкций. Вот поэтому сменяемость синтаксиса и есть сильная вещь - не понравилось, взяли и исправили. Языка как такового пока нет и внести исправления не поздно. Вопрос только какие исправления будут удобны для записи и чтения одновременно. Где найти тот компромисс, которого нет? Я поэтому и предложил проект шаблонов синтаксиса - давайте возьмем за основу какой-нибудь язык и к его возможностям придумаем корректные с точки зрения русского и удобные с точки зрения возможности быстрой записи образцы синтаксиса, на основании которых программисты будут уже создавать свои языки программирования. Такой вот образец метаправил. Для меня интересна идея сама по себе (то есть пофиг на базе какого языка программирования, пофиг будут там падежи или нет).

Но не будет ли это излишне многословно?

Будет. Вас обвинят в коболлизме :).

Но мозг пары сотен млн. человек считает иначе.

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

В AL-IV формат ещё проще. И уже работает, документирован, протестирован, показан на примере.

Я же не против. У них свой путь, у меня свой. Я начинал свой когда не знал о существовании AL-IV (и не узнал, если бы Вы не написали о нем на ремдеве). Внутренняя структура у нас различна (я как-то ковырялся в их c#), много исправлять. Мне проще будет потом фронтэнд на текстовый файл прикрутить.

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

Я Вам привел и пример и правила. Если он не соответствует правилам русского от MihalNik, ну так сложились звезды. Это по недоразумению, а не со злого умысла. Но это не важно, важно что он соответствует правилам русского языка, принятым официально, а то что не укладывается в Ваш диалект - извините.

Быстро, без проблем и бессмысленно!

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

Также сообщаю, что самым востребованным среди лисов является язык 1Скрипт.

Пусть будут возможности 1Скрипт, мне интересны образцы синтаксиса, а не семантика. То есть как выразить структурирование кода, условия, циклы, объявления, заголовки методов и пр. Вот что меня интересует.
Проблема MihalNik, что он не предлагает решения. Как правильно записать: Создать переменную Работа_с_Интернетом? Создать переменную Работу_с_Интернетом? Как здесь учесть падеж в составном имени? Я задал ему много вопросов, на которых у него нет ответа. Словарь здесь не поможет, потому что через несколько лет и бесконечные жалобы программистов: Добавьте! размер БД превысит размер интерпретатора и всех его прибамбасов. Ну это уже не смешно. В моем случае "дублированных" слов словарь конструкций получается короче недублированных падежей.

Ещё раз - речь о минимальных требованиях.

В чем же минимальность требований? Интерпретатор сам будет проставлять падежи что ли? Все равно их писать ручками.

Отредактировано utkin (2018-05-27 10:55:37)

0

27

Сейчас вот то, что Вы предлагаете сделать можно (если не брать имена в кавычки)

То говорится про сменяемость синтаксиса, что важно менять не только слова, но и значки, то имена нельзя брать в кавычки.

utkin написал(а):

В ответ - да ерунда все это.

Именно. Предлагается заниматься никому не нужной ерундой и "священными войнами".

Я задал ему много вопросов, на которых у него нет ответа.

MihalNik случайно предложил для начала решить простую задачу (на самом деле вопрос был что делать потом с мусорной неоднозначностью действующих лиц):

Создай переменную длину
создаём переменную ширину

Далее заявлено что эта задача не решаема, а вот:

Создай переменную Длина

Уже решена и поэтому так будет правильно. А кто такой г-н Длин - не ясно, но утверждается, что всё однозначно.

Вы сказали что есть проблема с лицами.

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

не предлагает решения.

БД. Но оказалось, что их существует более одного вида, а это уже неподъёмный выбор.

Все равно их писать ручками.

Любая готовая БД. Но их существование запрещено.

Я же не против. У них свой путь, у меня свой.

MihalNik предупреждает об аналогичных проблемах, о несоответствии спросу.

Отредактировано MihalNik (2018-05-27 12:24:32)

0

28

То говорится про сменяемость синтаксиса, что важно менять не только слова, но и значки, то имена нельзя брать в кавычки.

Я писал, что нельзя поменять абсолютно все. Ну Вы уже в открытую придираетесь. Если Вам нужны кавычки нужно будет внедрить еще один семантический код. Это немного сложней, но также осуществимо. То есть это уже требует некоторой правки интерпретатора. Если это будет необходимо, возможно реализовать. Без кавычек нужно править только текстовик с синтаксисом. Такие правки вполне вероятны по той причине, которую я также указывал ранее - сейчас делается краткий синтакис для записи. Такой тип синтаксиса, который дал Лис, на мой взгляд длинная форма и она пойдет для чтения. Язык В-2 предлагает два варианта - один для повседневной работы (то есть писать программу), второй для изучения/чтения. В кратком Вы работаете, в длинном читаете. Это мое решение основанное на том факторе, что я не мог найти форму которая была бы приятна для чтения и удобна для записи.

Именно. Предлагается заниматься никому не нужной ерундой и "священными войнами".

Ну как хотите. Вы спросили про лица. Я Вам дал ответ - это возможно. Единственно что сама претензия про это была, как оказалось, просто претензией ради претензии, а не реальной проблемой.

Далее заявлено что эта задача не решаема, а вот:

Да почему не решаема? Просто у Вас имя переменной будет Длину, а не Длина. В Ваших предложениях тоже самое, так как я уже устал просить Вас как же решить вопрос с падежами? Ответа как такового нет, а просто все что взбредет в голову пользователю языка вручную собирать в мегабазу. Это не решение, это костыль. Что Вам мешает использовать свой падеж-то в моем варианте я так и не понял. Ну пишите Создать переменную Длину. Потом далее будете писать Длину = Длину + 1. Вместо Длина = Длина + 1. У Вас этого решения тоже НЕТ. Потому что Если Вы напишите
Создай переменную Работу_в_интернете никакой Ваш парсер не переведет Работу_в_интернете в Работа_в_интернете. Вы просто даже не хотите подумать. Что Вы предлагаете? Ничего не предлагаете. Общий месседж - должны быть падежи! А как и где - сразу нет ответа. У меня есть ответ. Может корявый, но есть.
А можно проявить и смекалку.
Создать конструкцию вида:

Создай переменную Длину

А затем

В Длину <-- Длину + 1

Или

Внести в Длину <-- Длину + 1

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

А кто такой г-н Длин - не ясно, но утверждается, что всё однозначно.

Ясно. "Длин" это переменная. Вы знаете что такое переменная? Нет, тогда узнавайте. Что для этого нужно сделать? Открыть описание конкретного языка программирования (то есть того, в котором указана переменная) и прочитать, что там имеется в ввиду под словом переменная. Что это такое, каких видов они бывают и все такое в том же духе. Или Вы думаете что интерпретатор передаст Вам эти сведения телепатически? Нет конечно, Вам нужно уметь владеть категориями той предметной области в которой Вы работаете. То есть знать что такое разделительная полоса, что такое скоростной режим, что такое знак дорожного движения и т.д. Это вообще к В-2 никакого отношения не имеет. Вы пытаетесь вложить объект в его имя. Это близко к правилам русского языка не относится. Эти смысл внешний протокол более высокого уровня. Как мы сейчас говорим об IP, а Вы теперь от него требуете функциональности TCP. Так вот русский это IP, а терминалистика конкретного языка программирования (в данном случае В-2, но не суть это ко всем применимо) это TCP. Я посылаю корректные пакеты IP (то есть осуществляю запись в соответствии с указанным выше правилом русского языка), а вот как их трактовать уже и как дальше все это управляется это уже TCP (или правила языка программирования). И Вы и Лис периодически пытаетесь смешивать теплое с мягким и предъявлять претензии почему никто не следует Вашим правилам (именно Вашим, а не правилам русского языка, как выяснилось). В моем случае мухи отдельно, котлеты отдельно и все понятно.

БД. Но оказалось, что их существует более одного вида, а это уже неподъёмный выбор.

Дело не только в этом, а в возрастающем уровне сложности. Давайте сразу пилить робота, который еще и ошибки и запятые и вообще прямую речь будет понимать. Это другой класс задач и он не связан с тем, что мне ставилось в вину изначально - что типа правила русского не учитываются.

Любая готовая БД. Но их существование запрещено.

Ну укажите готовую БД падежей. У меня свой гугл у Вас свой, я вот открыл и вбил БД падежей и пролистал три вкладки гугла. Мне не понравилось что я там нашел (дулю я там нашел). Вы говорите любая готовая БД. Я вот такой не сильно дальновидный. Дайте мне готовую БД падежей. На третье вкладке есть именительный падеж. То есть тупо словарь Ожегова.

Отредактировано utkin (2018-05-27 12:38:28)

0

29

utkin написал(а):

просто претензией ради претензии, а не реальной проблемой.

Скорее всего, это проблема неудачного примера, который Вы дали. Который не решает никакой понятной задачи, а ставит вопросы дальнейшего порядка, на который ответа нет:
Что делать потом с этими разными вариантами? А если я хочу читать только в том, который мне нравится? Как соединить разные варианты? Не возникнет ли при этом ошибок и будут ли они проверены? Нужно ли делать всё это не нужное опять вручную?
На самом деле, я ожидал увидеть ответы вроде:
Создай переменный "знак"
или хотя бы
Создай переменный Знак
Но вместо этого утверждается, что переменная стала, вдруг, существительным, длина стала именем собственным и т.д.
Хотя не ясно, почему нельзя последнее. Utkin уже не тот! А мы были против его сменяемости!

Я писал, что нельзя поменять абсолютно все.

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

в открытую придираетесь.

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

Ну пишите Создать переменную Длину. Потом далее будете писать Длину = Длину + 1.

Это называется перекладыванием проблемы на пользователя.

Что Вы предлагаете? Ничего не предлагаете. Общий месседж - должны быть падежи! А как и где - сразу нет ответа.

Ответ выше дан и ниже у Вас же процитирован :D Но будем считать, что его как бы нет, даже несмотря на ссылку ниже, и вообще  MihalNik'а не существует, здесь был Кот.

вбил БД падежей

А надо было искать морфологический словарь. Но всё гораздо проще (один админ приучивает, что посылать в гугл нехорошо само по себе):

укажите готовую БД падежей.

Давным-давно давал ссылку от Дмитрия. О чудо! Он ещё там:
Подключение словаря

Отредактировано MihalNik (2018-05-27 16:07:36)

0

30

MihalNik написал(а):

У Вас бардак какой-то с подходом, только и всего.

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

0


Вы здесь » Русскоязычное программирование » Валентина-2 » Вопросы к автору по поводу парсера