ПО, ЭВМ и АСУ из Таможенного Союза

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

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


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Санда » Санда и падежи


Санда и падежи

Сообщений 31 страница 60 из 83

31

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

Именно это я имел в виду, когда говорил, что денег у Вас не хватит.

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

Отредактировано ritminform (2021-03-30 12:32:08)

0

32

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

денег у Вас не хватит.

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

Отредактировано NuShaman (2021-03-30 12:32:06)

0

33

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

денег-то хрен с ними, а вот то, что времени не хватит (у меня, например) - это факт (ещё не свершившийся).

Нет.  Не "хрен с ними".
Всё упирается в деньги. Когда мы нанимаем людей, чаще всего мы покупаем свое время. Т.е. я могу сам встать за прилавок, но я плачу продавцам, чтобы иметь время, которое я потрачу на другие задачи.

Отредактировано ritminform (2021-03-30 12:34:22)

0

34

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

Нельзя считать потребностью то, без чего можно жить, если (принципиально) не хватает денег на оплату.

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

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

Всё упирается в деньги. Когда мы нанимаем людей, чаще всего мы покупаем свое время.

Поэтому все упирается не в деньги, а во время. Но рабство отступает и времени у людей становится больше.

Отредактировано MihalNik (2021-03-30 13:01:07)

0

35

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

Что за язык? Где посмотреть?

Обход падежей и вообще ломки русского языка множественными конструкциями исследован в Валентине (-1, -2, б, автор - не программист). В Алфоре (AL-IV, см. AL-IV doks, news, etc,  немного предыстории тут, автор - проф. разработчик) поддерживается краткая форма записи вариантов.
Уже доказано, что можно писать программы близко к естественному русскому языку без всяких ИИ.

Отредактировано MihalNik (2021-03-30 13:41:00)

0

36

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

Обход падежей и вообще ломки русского языка множественными конструкциями исследован в Валентине (-1, -2, б, автор - не программист). В Алфоре (AL-IV, см. AL-IV doks, news, etc,  немного предыстории тут, автор - проф. разработчик) поддерживается краткая форма записи вариантов.
Уже доказано, что можно писать программы близко к естественному русскому языку без всяких ИИ.

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

Например:
СОЗДАЕМ ПЕРЕМЕННУЮ Х

Я за всю жизнь никогда не встречал конструкции
CREATING THE VARIABLE X

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

P.S.

Код:
# Создаем хранилище чисел
Создадим переменную Число1 . Здесь будет содержаться первое число
Создадим переменную Число2 . Здесь будет содержаться второе число
# Переменные для хранения результатов вычислений
Создадим переменную Сумма . Сюда мы поместим результат от сложения обоих чисел
Создадим переменную Разность . Здесь мы будем хранить результат операции Число1 - Число2
Создадим переменную Произведение . Результат от произведения двух чисел будет помещен сюда .
Создадим переменную Частное . Это переменная будет хранить результат деления Число1 на Число2
# Получим оба числа
Число1 = Получим_строку ( '' ; 'Введите первое число' )
Число2 = Получим_строку ( '' ; 'Введите второе число' )
# Найдем сумму
Сумма = Число1 + Число2
# Найдем разность
Разность = Число1 - Число2
# Найдем произведение
Произведение = Число1 * Число2
# Найдем частное
# Здесь используется самое простое деление
# Так как пример учебный особая точность вычислений не требуется
Частное = Число1 / Число2
# Подготовим результат для отображения
Сумма = 'Сумма чисел: ' & Сумма
Разность = 'Разность чисел: ' & Разность
Произведение = 'Произведение чисел: ' & Произведение
Частное = 'Частное чисел: ' & Частное
Сумма = Сумма & Разность & Произведение & Частное
# Выведем результат на экран
Сумма = Выведем_строку_на_экран ( Сумма ; 'Результаты' )
Закончим вычисления . Работа программы завершена .

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

Чем от Санды-то отличается кроме ненужного предварительного описания переменных и лишней конструкции Закончим вычисления . Работа программы завершена .? Приведением типов (ко-то использует словосочетание "вывод типа")? Ну, так я против приведения типов...

Отредактировано ritminform (2021-03-30 16:49:06)

0

37

MihalNik

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

P.S.
Для создания впечатления автору можно было вместо

СОЗДАЕМ ПЕРЕМЕННУЮ Х

придумать

В ОПЕРАТИВНОЙ ПАМЯТИ СОЗДАЕМ ПЕРЕМЕННУЮ С ИМЕНЕМ "Х" ДЛЯ ИСПОЛЬЗОВАНИЯ ИСКЛЮЧИТЕЛЬНО В ЭТОМ КУСКЕ ПРОГРАММЫ

Отредактировано ritminform (2021-03-30 16:51:28)

0

38

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

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

А в русском языке он давно решен и в русском программировании аналогично решаются сразу два вопроса:

['RU'] КЛАСС {Квадратное_уравнение}, НЕТЕСТИРОВАН:
ИМПОРТ: {Математика} .
ВЕЩЕСТВЕННОЕ A|_коэффициент_не_должен_быть_0
ВЕЩЕСТВЕННОЕ B|_коэффициент
ВЕЩЕСТВЕННОЕ C|_коэффициент

МЕТОД Решение\_квадратного_уравнения( Ответ\ы_в_массиве[] )
      :
      Ответ[].Стереть
      --------- 'A == 0 - неверное условие'
      ЕСЛИ Абсолютное_значение(A) < 0.000_000_001 ? ==> ;
      ВЕЩЕСТВЕННЫЙ д\искриминант = B * B - 4 * A * C
      ЕСЛИ ?
      [д == 0] ? Ответ[] << -B / (2 * A)
      [д > 0 ] ? ВЕЩЕСТВЕННЫЙ к\орень_из_д = д.Корень
                 Ответ[] << (-B - к) / (2 * A)
                 Ответ[] << (-B + к) / (2 * A) ; .

КОНЕЦ

И наши требования не стоят на месте :) :

7) Противоречивость требований и исполнения. Многие требования к языку программирования изначально противоречивы. Например. С одной стороны для читабельности и понимания кода он должен быть максимально сжат и прост, а с другой, по той же причине, наименования используемых элементов должны быть максимально подробны, а значит — длинны. И подобных противоречий довольно много. Решить их на уровне концепции языка невозможно. Их вообще невозможно решить на уровне синтаксиса, поэтому в других языках программирования изначально выбирают ту или иную сторону "силы" в каждом отдельном вопросе, или идут на некоторые компромиссы. Но и тот и другой вариант плох.

Раз задачу нельзя решить на уровне синтаксиса, значит её нужно вынести на более высокий уровень и решать на нём. Моё предложение простое — среда разработки. Изначально необходимо, чтобы идея среды разработки включала требования и задачи, решаемые языком. Без этого просто никак. Например, применительно к тем же наименованиям элементов, IDE вполне может решать эту задачу путём сокрытия длинных имен элементов и заменой их на аббревиатуры или сокращения. В случае, если необходимо посмотреть расшифровку имени, среда должна позволять при наведении на аббревиатуру курсора, выдавать полное имя элемента в виде подсказки. Точно таким же образом она может обрабатывать комментарии и высвечивать их в отдельном окне в виде уже готового описания алгоритма программы. То есть, формально исходный код программы сам по себе будет выполнять все обычные функции ЯП, но без IDE читабельность такого кода будет весьма проблематичной, а вот IDE как раз и будет решать все проблемы по разделению кода и приведению его к удобоваримому виду. На этом же этапе можно решить и множество других задач, например таких как мультиязычность платформы, позволяющая переводить исходный код на родной язык разработчика и многое другое.

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

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

Для создания впечатления

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

Отредактировано MihalNik (2021-03-31 00:25:33)

0

39

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

Обход падежей и вообще ломки русского языка множественными конструкциями исследован в Валентине (-1, -2, б, автор - не программист). В Алфоре (AL-IV, см. AL-IV doks, news, etc,  немного предыстории тут, автор - проф. разработчик) поддерживается краткая форма записи вариантов.
Уже доказано, что можно писать программы близко к естественному русскому языку без всяких ИИ.

МихалНик, напишите, пожалуйста, об этом статью, и я размещу её, допустим, на своём сайте. Или наверняка можно разместить на compiler.su

Отредактировано БудДен (2021-03-31 00:26:03)

0

40

Что Вы хотите в ней увидеть к уже написанному выше?

0

41

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

А в русском языке он давно решен и в русском программировании аналогично решаются сразу два вопроса:

Очень интересно и познавательно. Без стёба. Особенно ссылка на требования.

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

0

42

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

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

Программное решение Вашего вопроса:

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

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

Подобное давно существующему в русском языке.

Отредактировано MihalNik (2021-03-31 01:52:45)

0

43

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

Программное решение Вашего вопроса:

Но это невозможно читать! :O Уровень сложности сопоставим с С.

Или Вы имели в виду исключительно длину идентификаторов?

0

44

Или Вы имели в виду исключительно длину идентификаторов?

Ну Ваш вопрос возникает про них :)

Уровень сложности сопоставим с С.

Там нет указателей и деструкторов (и одновременно нет сборки мусора). Так что он проще Паскаля.

невозможно читать!

Это непривычный синтаксис, который тоже проще Паскалевского.

Отредактировано MihalNik (2021-03-31 04:08:21)

0

45

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

Там нет указателей и деструкторов (и одновременно нет сборки мусора).

А я это и не имел в виду. Я вижу то, что Вы мне показали.

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

Так что он проще Паскаля.

Я достаточно лет писал на паскале. Читается кратно легче.

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

Это непривычный синтаксис, который тоже проще Паскалевского.

Мне так не показалось.

0

46

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

Мне так не показалось.

Но это доказуемо. Достаточно взять и сопоставить конструкции.

Я достаточно лет писал на паскале. Читается кратно легче.

Потому что мозг к нему привык.

Ну и многих раздражают заглавные буквы)
Что по идеи можно просто поправить в словаре, который текстовый файл :rolleyes:
Т.е., поменяв слова, получить так:

    ['RU'] КЛАСС {Квадратное_уравнение}, НЕИСПЫТАН:
    ВКЛЮЧАЕТСЯ: {Математика} .
    число A|_коэффициент_не_должен_быть_0
    число B|_коэффициент
    число C|_коэффициент

    МЕТОД Решение( Ответ\ы_в_массиве[] )
          :
          Ответ[].Стереть
          --------- 'A == 0 - неверное условие'
          Что Абс(A) < 0.000_000_001 ? ==> ;
          число д\искриминант = B * B - 4 * A * C
          Что ?
          [д == 0] ? Ответ[] << -B / (2 * A)
          [д > 0 ] ? число к\орень_из_д = д.Корень
                     Ответ[] << (-B - к) / (2 * A)
                     Ответ[] << (-B + к) / (2 * A) ; .

    КОНЕЦ

Но это просто не везде удачный авторский перевод.

Отредактировано MihalNik (2021-03-31 04:06:29)

0

47

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

Но это доказуемо. Достаточно взять и сопоставить конструкции.

Потому что мозг к нему привык.

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

    ['RU'] КЛАСС {Квадратное_уравнение}, НЕИСПЫТАН:
    ВКЛЮЧАЕТСЯ: {Математика} .
    число A|_коэффициент_не_должен_быть_0
    число B|_коэффициент
    число C|_коэффициент

    МЕТОД Решение( Ответ\ы_в_массиве[] )
          :
          Ответ[].Стереть
          --------- 'A == 0 - неверное условие'
          Что Абс(A) < 0.000_000_001 ? ==> ;
          число д\искриминант = B * B - 4 * A * C
          Что ?
          [д == 0] ? Ответ[] << -B / (2 * A)
          [д > 0 ] ? число к\орень_из_д = д.Корень
                     Ответ[] << (-B - к) / (2 * A)
                     Ответ[] << (-B + к) / (2 * A) ; .

    КОНЕЦ

Но это просто не везде удачный авторский перевод.

Отредактировано MihalNik (Сегодня 04:06:29)

Я наблюдаю огромное количество ненужного для решения этой задачи хлама.

Вот что это за хрень? Зачем она нужна для решения такой примитивной задчи?

Код:
    ['RU'] КЛАСС {Квадратное_уравнение}, НЕИСПЫТАН:
    ВКЛЮЧАЕТСЯ: {Математика} .

А это зачем?

Код:
  МЕТОД Решение( Ответ\ы_в_массиве[] )
          :
КОНЕЦ

Это операторы ввода?

Код:
 число A|_коэффициент_не_должен_быть_0
    число B|_коэффициент
    число C|_коэффициент

А это что:

Код:
--------- 'A == 0 - неверное условие'

Комментарий?

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

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

Отредактировано ritminform (2021-03-31 04:26:33)

0

48

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

к\орень

Зачем в словах косая черта? :O

0

49

Зачем в словах косая черта?

Она отделяет короткое имя от полного.

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

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

Но это не оператор IF. А оператор CASE. Это я изначально процитировал, скорее всего, устаревшую версию (это потому что Вы не хотите изучать актуальный оригинал, а пользуетесь услугами посредника :rofl: )
А переведен он там был и как СЛУЧАЙ.

Отредактировано MihalNik (2021-03-31 04:53:59)

0

50

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

к\орень_из_д

Я понял зачем черта.
Очень оригинальное и, я бы даже сказал, красивое решение.
Впорос один: почему надо так извращаться вместо того, чтобы писать идентификатор целиком
дискриминант вместо д\искриминант 
0==дискриминант вместо д==0

Зачем это извращение?

Отредактировано ritminform (2021-03-31 04:35:46)

0

51

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

Она отделяет короткое имя от полного.

Зачем? :'(

0

52

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

Но это не оператор IF. А оператор CASE.

Т.е. русский программист не понял что это оператор CASE? :P Вам самому не смешно глядеть на такой результат научных изысканий?

0

53

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

Зачем?

Затем, что можно писать кратко и быстро в любом самом примитивном редакторе, а получить полноценный для чтения вид.

Отредактировано MihalNik (2021-03-31 04:43:52)

0

54

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

Затем что можно написать кратко и быстро, а читать полноценно.

Я совсем не понял этой фразы.

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

Вы хотите разбирать исходники с однобуквенными переменными?

Нет. Идентификатор должен нести максимальную смысловую нагрузку.
Если я считаю, что текст будет читать кто-то кроме меня, я пишу так (Санда):

Код:
// *****************************************************************************************************************
// при выполнении запросов к драйверу источником ошибки (errorSource) может быть:
// 0 - неизвестный источник
// 1 - запрос (например, при таймауте)
// 2 - драйвер (это когда result в ответе отличен от 0)
// 3 - программа (это когда что-то не запрограммировно)

процедура unit_KKM_Merc_предупреждениеСообщениеОбОшибкеПослеЗапроса(параметрСписокЗначенийДляПередачиПараметровИрезультатов) // запрос к драйверу Меркурий. 
	// предупреждение("тип значения уровеньФормы_списокЗначенийДляПередачиПараметровИрезультатовHTTP = "+typeAsString(параметрСписокЗначенийДляПередачиПараметровИрезультатов));
	врем_unit_KKM_Merc_errorText=параметрСписокЗначенийДляПередачиПараметровИрезультатов.значениеПолучитьПоПредставлению("errorText");
	врем_unit_KKM_Merc_errorSource=параметрСписокЗначенийДляПередачиПараметровИрезультатов.значениеПолучитьПоПредставлению("errorSource");
	строкаСообщения="Error!!! "+chr(10);
	строкаСообщения=строкаСообщения+"errorSource="+строка(врем_unit_KKM_Merc_errorSource)+chr(10);
	если (2=врем_unit_KKM_Merc_errorSource) тогда
                  врем_unit_KKM_Merc_errorCode=параметрСписокЗначенийДляПередачиПараметровИрезультатов.значениеПолучитьПоПредставлению("errorCode");
                  строкаСообщения=строкаСообщения+"errorCode="+строка(врем_unit_KKM_Merc_errorCode)+chr(10);
	конецЕсли;
	строкаСообщения=строкаСообщения+"errorText="+строка(врем_unit_KKM_Merc_errorText)+chr(10);
	предупреждение(строкаСообщения);
	параметрСписокЗначенийДляПередачиПараметровИрезультатов.показать();
	возврат 1;
конецПроцедуры; //  unit_KKM_Merc_предупреждениеСообщениеОбОшибкеПослеЗапроса(списокЗначенийДляПередачиПараметровИрезультатов) // запрос к драйверу Меркурий. 

Отредактировано ritminform (2021-03-31 04:48:51)

0

55

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

Т.е. русский программист не понял что это оператор CASE?

Еще раз - я процитировал какую-то форму примера (из ранней стадии разработки перевода). Только и всего.
Разработчик языка не пишет его русским языком. Но такая возможность есть и поддержка русского языка не требует как такого дополнительного программирования вовсе.
Это один обобщенный оператор вместо IF и CASE. Поэтому тут ничего удивительного в выборе неподходящего слова нет.

Оформление блочных операторов

Отредактировано MihalNik (2021-03-31 04:55:37)

0

56

Я совсем не понял этой фразы.

Что тут непонятно? Автопреобразование "д" в "дискриминант" при такой форме объявления переменной легко автоматизируемая задача.

0

57

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

Что тут непонятно? Автопреобразование "д" в "дискриминант" при такой форме объявления переменной легко автоматизируемая задача.

Опять не понял. Что значит автопреобразоваение :O
Вы где-то системе сообщаеете, что букву д надо понимать как слово "дискриминант"? :O Если так, то зачем писать "д\искриминант"?  Я реально Вас  не понимаю...

P.S.

Кстати, да. 30 лет назад я писал имена куда как короче. :)

Код:
{ ********************************************************** }
{ * This procedure takes the letter of the floppy driver   * }
{ ********************************************************** }
procedure TakeTheFloppyDrive(var x:byte);
var  y,NumberOfFloppy:byte;
BEGIN
y:=MEM[$0040:$0010];
NumberOfFloppy:=1+ord((y AND 64)=64)+2*ord((y AND 128)=128);
if NumberOfFloppy=1 then begin
        BOX(12,12,20,16,'S');
        PROMPT(15,14,' A ');
        end
else begin
        BOX(12,12,23,17,'S');
        PROMPT(15,14,' A ');
        PROMPT(19,14,' B ');
end;
MenuPromptTo(x,0,7,15+128,1);
END;

Отредактировано ritminform (2021-03-31 04:55:53)

0

58

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

Что значит автопреобразоваение :O
Вы где-то системе сообщаеете, что букву д надо понимать как слово "дискриминант"? :O Если так, то зачем писать "д\искриминант"?  Я реально Вас  не понимаю...

Я тоже Вас не понимаю) Пишите простейшую процедуру, в которую передадите исходник и которая заменит "д" на "дискриминант".

Отредактировано MihalNik (2021-03-31 04:58:49)

0

59

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

Я тоже Вас не понимаю) Пишите простейшую процедуру, в которую передадите исходник и которая заменит "д" на "дискриминант".

Зачем? :O
Вы, как мне кажется, программируете ради программирования. Я программирую только по необходимости.
Мне Вас не понять.

0

60

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

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

Написал на коленке спонтанно и упорно не вижу ничего кроме русского и мат. знаков в выражениях
"Что длина > 0?"
"Что ? Длина > 0?"
Разве что в первом запятой не достает. Потому что "если" с вопросительным знаком плохо.

Отредактировано MihalNik (2021-03-31 05:04:34)

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Санда » Санда и падежи