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

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

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


Вы здесь » Русскоязычное программирование » концепции и механизмы языков и рантаймов » Уткин предложил составить таблицу по синтаксису.


Уткин предложил составить таблицу по синтаксису.

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

1

http://remdev.org/viewtopic.php?id=288

Но этот раздел ("концепции и механизмы") этого форума по сути является аналогом той таблицы. Разные языки имеют (содержат) в себе разные механизмы. Каждый механизм имеет свой синтаксис. Каждый топик на форуме пронумерован его ID. В чём же отличие предложения Уткина? В том, что он присвоил себе право рулить минимальным набором механизмов языка. Что войдёт в его таблицу, а что не войдёт - будет определять Уткин, путём публикации "официальных" версий "таблицы Уткина".

Очевидно, договорённость достигнута не будет, это мы видим на примере C++ и Java. Такой механизм как сборка мусора влияет на синтаксис деструкторов и финалайзеров, например. Не пришли люди планеты к соглашению - нужен этот механизм или не нужен. С другими механизмами выйдет то же самое (например с goto, механизмом исключений, механизмом логического вывода, механизмом группирования операторов в блоке на уровне синтаксиса (python) ). Вот и с таблицей Уткина такая же ситуация выйдет.

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

Отредактировано Лис (2018-07-12 16:19:21)

0

2

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

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

Это все можно включать - разные варианты. Это же не реальный язык программирования, а примеры на основании которых строится синтаксис.
Таблица Уткина это пример того что можно делать. А рецепт был выше. Я сторонник того, что нужно что-то делать. Лучше ошибаться, чем не делать ничего. У нас каждый суслик в поле агроном и с радостью критикует других (и я первый среди таких), но что люди предлагают взамен? Речь о словарях уже сколько идет? Год? Два года? И?
Самому таблицу писать грустно. Просто потому что каждый придет со своей свиньей в мою синагогу и скажет - Там нет падежей! Мне нужны конструкции Лиспа! Я хочу 1Скрипт! Мне нужен синтаксис запросов как в SQL! И прочее в том же духе. Поэтому это должно быть коллективно решено. Чтобы потом я не остался крайним :).

0

3

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

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

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

А кто главный пусть решит большинство.

Для этого нужен механизм управления. По каким причинам кто-то будет кому-то подчиняться?

Поэтому это должно быть коллективно решено.

Для этого нужно гуще населённое место.

Отредактировано MihalNik (2018-07-12 17:55:28)

0

4

utkin
Во-первых не понятно чем словарь Buddena вас не устроил?
https://docs.google.com/spreadsheets/d/ … edit#gid=0

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

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

Меня ваша табличная форма не устраивает, не знаю что там за правила писать. Я могу по своему доку пройтись перевести правила.
Или вам не синтаксис нужен, а руководство по стилю?
Потому что падежи это и именование одноствольных переменных это руководство по стилю.
Вот пиши правило 1. О позывных, переменных, функций, инструкций и тп.  Позывные имена должны  быть простыми. И если можно заменить пару слов одним то следует использовать одно слово.
К примеру вместо пары «добавочная_строка» использовать слов «прибавка».

0

5

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

Вопрос не в этом. Дело не в падежах, а в отсутствии стандарта, даже рамочного. Ну вот с помощью данной идеи можно это сделать :). Чтобы идея имела пример возможной реализации.

Для этого нужен механизм управления. По каким причинам кто-то будет кому-то подчиняться?

Ну так предложите. Пусть MihalNik будет главным.

Меня ваша табличная форма не устраивает, не знаю что там за правила писать. Я могу по своему доку пройтись перевести правила.
Или вам не синтаксис нужен, а руководство по стилю?

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

Во-первых не понятно чем словарь Buddena вас не устроил?

Тем, что этого мало. Я не против словарей. Я против только словарей. Мы застоялись. Нужно двигаться куда-то еще.

Отредактировано utkin (2018-07-12 18:40:36)

0

6

utkin
У нашего сообщества очень разные языки. Общих мест я не вижу.

1) Исключить из вашего словарного запаса иностранные слова.
Для определения пользоваться словарями иностранных слов.
Для поиска замены пользоваться головой, а ещё лучше коллективным разумом. А так же словарями синонимов, и иностранными словарями.
Так же можно использовать слова близкие по духу или смыслу.
Исключение, плохая замена. Плохой заменой считается  очень длинные слова и плохо звучащие слов.
Приветствуется наличие словарной статьи.
2) Число используемых аббревиатур должно быть сведено к минимуму лучше к нулю. 
Пояснения в русском языке трудно читаются подряд идущие согласные.
Исключение для аббревиатур словоподобных, звуковых. Таких как вуз, омон, рано, гэс.
3) Документация должна быть написано без использование сленга, терминов и умных слов. В идеале использовать  наиболее частые слова первые из наиболее частых 1500-3000 словоформ.
4)
Имена переменных должны быть существительными.
Имена функций и инструкций должны быть глаголами.
Имена констант прилагательными.
Думаю правило строгое и исключений быть не должно.  Но до сих пор не оформлено нужно хотя бы 10 программ.

5) Имена переменных. Имена должны быть полными словами.
Исключения пока не сформированы. Где-то тема была про замену i,j найти не могут.

6) Предложение писать имена функций в множественном числе. К примеру, пишем, читаем.
Тут императивных языков в повелительной форме. Требуется, надо, должно.
Для диалоговых систем и скриптов в единичном числе. Найди, покажи, посчитай.   

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

8)  Тесто пригодность кода. Слабая инкапсуляция свидетельствует о плохой тесто пригодности. Есть вариант проверки через файлы.

0

7

Павиа написал(а):

Имена переменных должны быть существительными.
Имена функций и инструкций должны быть глаголами.
Имена констант прилагательными.

Это не соответствует русскому языку.

Отредактировано MihalNik (2018-07-13 11:16:06)

0

8

У нашего сообщества очень разные языки. Общих мест я не вижу.

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

Имена функций и инструкций должны быть глаголами.

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

5) Имена переменных. Имена должны быть полными словами.

Как в 1С? НастройкиРегистраНачисленияЗаработнойПлаты?

Слабая инкапсуляция свидетельствует о плохой тесто пригодности.

Вряд ли это относится к синтаксису. Скорее семантика.

Число используемых аббревиатур должно быть сведено к минимуму лучше к нулю.

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

Это не соответствует русскому языку.

Вот поэтому я и не хочу быть тем единственным, кто будет этим заниматься. Это командная работа, где нужно слушать все мнения. Пока опыты по скрещиванию ежа с ужом (правил программирования и правил русского языка) продвигаются не фонтан... Дьявол кроется в деталях.
http://s9.uploads.ru/t/NQFav.jpg

Отредактировано utkin (2018-07-13 12:23:04)

0

9

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

А время глаголов не указали.

Текущее.

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

Как в 1С? НастройкиРегистраНачисленияЗаработнойПлаты?

настройки.регистра.начисления.заработной_плат
Горбатый стиль не использую. Слова разделяют подчеркиванием - это временное решение. Точка это член перечня или объекта.

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

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

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

Обоснование простое: наиболее приблизить к русскому языку.

Инструкция чего? Или функция чего? Отвечая на вопрос пишем имя функции с учётом падежей.
При обращении пишем в глагольной форме. Множественное число подразумевает единение компьютера и программиста.  Как в школе на уроке когда учительница даёт команды классу: пишем читаем и всё вместе.

Код:
инструкция обновления_прогресса;
начало;
  из(сорт.прогресса) выбрать
  {
  от_0:  счётчик.прогресса += 1;
  до_100_процентов: значению1.прогресса := позицию.потока / длину.потока;
  };	
конец;

функция вывода_Файла(параметры);	
дано:
  поток - потоковый;
результат:
  гол - логический; 
начало;  
  поток.открываем(параметры.входящий_файл);
  используем прогресс;
  прогресс.сорт :=выбрать_из([от_0, до_100_процентов], поток.безразмерный); 	
  пока (нету поток.есть_остановка) делаем
  {
    поток.читаем(строку);
	выводим(Строку);
    обновляем_прогресс();	
  }
  гол := поток.открытый;
  поток.закрываем;

конец;


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

Вы сможете это отследить в языка? Получается не правило, а указания по стилю.

Это всё указания. Более того это пока что эскиз этих указаний. Так как окончательно они сформируются после написания нескольких программ.

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

Но это же не все. Где Ваши циклы, условия, исключения, объявление структур?

Разбросаны по нашим форумам.

0

10

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

Вот. Значит наша работа полезна.

0

11

Ладно, идем дальше.
Шаг 1. Какой ЯП использовать в основе? Я предлагаю варианты: 1Скрипт (ради Лиса :) ), CиРешетка, Джава, Питон. Давайте уже выберем язык, потом пройдемся по его синтаксическим конструкциям и выработаем свои.
Второй шаг найти вменяемое руководство по языку из шага 1 и последовательно проходя по нему заменять синтаксические элементы в соответствии с таблицей (которая никому особо не понравилась, но никто ничего лучшего и не предложил взамен). Изъяны в самой таблице (например, добавление и удаление столбцов) будем проводить тогда по ходу выполнения преобразования синтаксиса.
Шаг 3 - вырабатываем правила и обоснования к правилам. Собственно конечная цель проекта они и есть, а примеры просто для наглядности.

0

12

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

Шаг 1. Какой ЯП использовать в основе? Я предлагаю варианты: 1Скрипт (ради Лиса :) ), CиРешетка, Джава, Питон.

Мы же ассемблер хотели (у Юрия даже есть тема с обсуждением синтаксиса). А Будден хотел ещё какой-нибудь скриптовый (есть уже кириллические - https://github.com/samgozman/YoptaScript/ )

0

13

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

Отредактировано utkin (2018-07-14 08:43:56)

0

14

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

Ну хорошо, пусть будет две таблицы

Реляционная алгебра + 1 таблица.
Объектная алгебра + 1 таблица
Языки моделирования и структурных схем (я тут два примера приводил - Моделика и LISA) + 1 таблица

Тут мы понимаем, что Уткин не читал учебник по информатике для 11-х классов, где написано, что язык определяется системой команд исполнителя, а эти системы команд - разные.

Наборов команд несколько - директивы препроцессору, директивы компилятору, команды исполнителю и всё это в одном исходнике

Для описания языков придумали БНФ и РБНФ.

Отредактировано Лис (2018-07-14 08:54:57)

0

15

Тут мы понимаем, что Уткин не читал учебник по информатике для 11-х классов, где написано, что язык определяется системой команд исполнителя, а эти системы команд - разные.

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

Языки моделирования и структурных схем (я тут два примера приводил - Моделика и LISA) + 1 таблица

Давайте остановимся хотя бы на одном варианте. Моделика вообще декларативное описание. Пусть это будет следующей итерацией.

Тут мы понимаем, что Уткин не читал учебник по информатике для 11-х классов, где написано, что язык определяется системой команд исполнителя, а эти системы команд - разные.

Скажу даже больше. Уткин в свое время преподавал ИТПД (это информатика 10-11 класс).

Более того, наборов команд несколько - директивы препроцессору, директивы компилятору, команды исполнителю и всё это в одном исходнике

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

Более того, для описания языков придумали БНФ и РБНФ.

Что никак не соответствует таблице Уткина. В ней целеполагание следующее:
- получить образцы русскоязычного синтаксиса;
- получить методику и правила образования русскоязычного синтаксиса (а это значит найти грабли и учесть их - посмотрите на Павиа, он честно попытался и увидел некоторые не системные вещи - слова в разных временах/склонениях, операторы разбросаны по форумам и т.д.).
Может нам помочь БНФ в том, чтобы сказать - функции должны быть глаголами? Ответ - нет. Может нам БНФ сказать - глагол в операторах должны быть в третьем лице? Ответ нет. Может нам БНФ сказать, что нужно использовать падежи? Ответ - нет. Дальше перечислите сами.

Отредактировано utkin (2018-07-14 09:05:54)

0

16

Вернемся к нашим баранам. Какой язык программирования использовать как основу?

0

17

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

Вернемся к нашим баранам. Какой язык программирования использовать как основу?

Ассемблер. Куда уж основнее? Ну можно ещё типа LISA, только я его пока не освоил в достаточной мере.

Три типа конструкций:
- команды процессору
- директивы ассемблеру
- вычисления адресов

Примеры директив ассемблеру (экономить на количестве букв в экспериментальных целях мы не будем!):

Разметить место используя тип с именем «64-х битное беззнаковое целое»,
    разместить значение «константа записанная арабскими цифрами 10101010111 в позиционной системе счисления по основанию 2».

Разметить место используя тип с именем «64-х битное беззнаковое целое»,
    разместить значение равное результату вычисления выражения «значение символа с именем „Текущая Позиция“ минус значение символа с именем „_старт“».

Присвоить символу с именем «_старт» значение символа с именем «Текущая Позиция».

Присвоить символу с именем «_старт» значение,
    равное результату вычисления выражения «значение символа с именем „Текущая Позиция“».

Сформировать код для команды с мнемоникой «Поместить значение» и операндами:
- регистр с именем «Рег1»;
- значение ячеек памяти памяти по адресу равному результату вычисления значения выражения «константа  записанная арабскими цифрами 11101010101 в позиционной системе счисления по основанию 2»,
    используя тип с именем «64-х битное беззнаковое целое».

В русском языке традиционно применяются французские «ёлочки», а для кавычек внутри кавычек и при письме от руки — немецкие „лапки“

Отредактировано Лис (2018-07-16 17:00:10)

0

18

Вы хотите начать с Ассемблера, а не с ЯВУ? Что думают остальные?

Отредактировано utkin (2018-07-16 14:07:50)

0

19

Разметить место используя тип с именем «64-х битное беззнаковое целое»,
    разместить значение «константа записанная арабскими цифрами 10101010111 в позиционной системе счисления по основанию 2».

Для этого можно использовать вполне стандартные утверждения:

Постоянная а = 10101010111

Чтобы не писать длинное слово, можно использовать готовый знак. Например:

* а = 10101010111

Здесь * (или другой символ) будет маркером того, что а есть константа. Чего тут велосипед изобретать? Это удобная фишка.

Присвоить символу с именем «_старт» значение,

Аналогично в том же стиле:

пусть _старт = а

Или

дано _старт = а

В данном случае дано это объявление переменной (с возможной инициализацией), можно через запятую

Сформировать код для команды с мнемоникой «Поместить значение» и операндами:

Это по-моему в первых Эппловских процах такой синтаксис был:
что --> куда.

_старт --> Рег1

Отредактировано utkin (2018-07-17 14:59:30)

0

20

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

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

Для этого можно использовать вполне стандартные утверждения

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

0

21

Мы можем просто взять их и пользоваться. С позиций логики и здравого смысла. Это вполне годный механизм.
И вообще Юрий уже все изобрел:
http://ruscomp.24bb.ru/viewtopic.php?id=42

Отредактировано utkin (2018-07-18 09:45:01)

0

22

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

Юрий уже все изобрел

Всего через 4 года, 3 месяца и 15 дней вождь индейцев Хваткий Клюв заметил, что то, к чему он призывает - уже сделано. Что дальше?

Кажется, что тут что-то не так. То-ли Юрий сделал не так, как надо Уткину,
то-ли Уткин акценирует внимание только на части задач, пропуская в дискуссии другую часть задач,
а выпущенные из внимания задачи не позволяют создать прогресс.

Отредактировано Лис (2018-07-18 23:25:21)

0

23

Я предлагаю взять его разработку и поправить по наши идеи. То есть составить таблицу и переработать синтаксис :)

0


Вы здесь » Русскоязычное программирование » концепции и механизмы языков и рантаймов » Уткин предложил составить таблицу по синтаксису.