Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 15 дек 2017, 20:03

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 31 июл 2013, 13:33 
Не в сети
Аватара пользователя

Сообщения: 846
Откуда: Днепропетровская обл.
Сразу оговорюсь, что считаю нижеизложенную идею пустопорожней и не собираюсь заниматься её реализацией, разве что поспособствую по мере сил распространению результатов, полученных кем-то другим, с помощью форума или через включение в мою собственную сборку BlackBox.

Как мы знаем, многие энтузиасты программирования — они же и мечтатели. Это моё прошлое. Такой человек мечтает всерьёз написать ОС. Или придумать новый язык программирования. В этом нет ничего плохого, это этапы личностного роста программиста. Но самим личностям кажется, что они и только они знают как нужно всё сделать идеально правильно. И это мнение может тянуться годами. У человека сайт, на котором он расписал свою мечту, с посещением в полтора человека в сутки. И полтора же единомышленника, а он мечтает изменить мир.

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

Ну вот такое лирическое отступление, но к тому, что многие люди, которые хотели бы иметь ЯП с национальным синтаксисом являются именно такими мечтателями, как я описал выше. Т.е. хорошо если человек может сформулировать преимущества национального языкостроения чётко и правдоподобно, чтобы иметь возможность заинтересовать потенциальных единомышленников. Люди с форума rus.24bb.ru, даже те, кто может обосновать свою точку зрения, по моему скромному мнению претендуют на всё то же скромное (возрастное, поэтапное) звание почётного мечтателя. А нам бы выработать пути, которые могли бы не только продемонстрировать умение сокращать русское слово КОНЕЦ до КОН, но и сделать полученные результаты в той или иной степени доступными и полезными для заинтересованных. Поэтому следует разобраться с этим вопросом всерьёз.

Глагол. Прекрасный язык программирования. Потому что это передранный Оберон. :) Некоторые принятые сокращения русских слов вызывают не то что недоумение, а желание избить автора. Ну да ладно, это только моё мнение. Но раз оно имеет место, значит найдётся тот, кто со мной согласится. Учтём этот момент.

Далее. Русскость, повальная абсолютная русскость, делающая абсолютно безполезным этот язык для нерусскоговорящего социума программистов. Это очень плохо, но это не смущает господ патриотов — молодых ведь учить надо на родном языке де, не так ли? Это второй момент. И как уж тут всем угодить.

Третий момент — это само проталкивание такого языка (допустим, Глагола) в школьные классы и студенческие аудитории. Будет много протестов, дескать, язычок весьма искусствен и далёк от потребностей мэйнстрима. А тут ещё MS с их VisualBasic подпирают, как уж тут подвинуться.

Ещё моментик. Повальное количество языков программирования. Даже чтобы с ними разобраться, пусть не со всеми, а хотя бы с основными, требуется хренова куча времени. А выбрать из них несколько для преподавания, да и ещё чтобы этот выбор понравился Минобразу и прочим сотоварищам? Нонсенс, коллеги. Тут консенсус не будет достигнут никогда. У Глагола нету шансов ни сейчас, ни в ближайшем будущем. У него ведь ещё и исходники закрыты. Ану как автор помрёт, дай ему боженька долгих и счастливых лет жизни, что тогда делать будем?

Вместе с тем, я знаю человека, который идёт по пути автора Глагола. И передирает Модулу-2 под русский синтаксис. С учётом сказанного выше — эдакий господин мечтатель, который занимается собственным личностным ростом. Что меня угнетает в этом процессе — его позиция благодетеля всея человечества в лице будущих школьников, которые несомненно будут программировать на Модуле-2 с русскими ключевыми словами.

Ну хорошо. Хватит философии, будем смотреть что в сухом остатке. Итак, что я предлагаю.

Поскольку моим самым любимым языком является Оберон-2 (и его диалект Компонентный Паскаль), а любимой средой — BlackBox Component Builder, с удовольствием констатирую, что эти прекрасные для обучения программированию технологии уже используются в системе образования проектом Информатика-21. Поэтому одиночка, переводящий Модулу-2 на русский синтаксис остаётся за бортом по определению, потому что он не умеет и не хочет ни с кем объединиться (Что думаете по поводу его позиции благодетеля человечества?), и по сути занимается хорошим и правильным делом, называющимся варение в собственном соку. С чем я и поздравляю всех любителей форума rus.24bb.ru.

Наша позиция будет несколько иной. Есть много плюсов в том, чтобы одиночке-благодетелю присоединиться к проекту Информатика-21. Эти люди знают толк в обучении. Они понимают модульные языки и парадигмы грамотного программирования. Они борются против засилья коммерческих технологий в образовании. Это весьма веские плюсы. Значит с точки зрения нашего гипотетического благодетеля им просто не хватает русского синтаксиса, что и попробуем исправить.

Предлагаю одиночке-благодетелю, если он чувствует в себе силы пойти на адекватный диалог с умными людьми и попробовать их убедить в разумности обучения с национальным синтаксисом, разработать подсистему для BlackBox Component Builder, которая будет реализовывать словари русского (а также других языков) для ключевых слов языка Компонентный Паскаль. С возможностью переключаться между языками. Т.е. меню Язык -> Список языков. Учащийся выбирает свой родной язык, если он присутствует в списке, и все ключевые слова в исходнике моментально становятся на нужном языке. Это, кстати, безусловно снизит моё напряжение по поводу только русского синтаксиса, а по мнению некоторых товарищей понизит барьер вхождения будущих программистов. Быть может и так, не знаю. Не уверен.

Кроме зашитых переводов ключевых слов Компонентного Паскаля на разные языки, а также их сокращений, я был бы рад видеть в такой подсистеме возможность иметь свой собственный вариант словаря. Потому что английские слова, такие как IF, THEN, FOR, WHILE — устоявшиеся, а национальные (русские и т.д.) будут мозолить глаза пока не притрутся. Короче говоря, не верю я в то, что взгляды на вариантность перевода ключевых слов будут столь уж однозначными, всегда найдётся тот, кому не понравится перевод. Вот для них и предлагаю возможность личного варианта словарей. В то же время, хранить токены нужно так, чтобы, имея личный перевод, в общее хранилище попадал бы вариант, который можно было бы переводить на другой язык и на другой вариант словаря безо всяких трудностей.

Кроме ключевых слов, каждая программа имеет переменные, процедуры, комментарии и проч. Это всё господа русофилы тоже хотят видеть всенепременно на русском языке. Посему идея усложняется. Интеллектуальная подсистема будет строить словарь всех идентификаторов модуля в виде отдельного дерева, храниться такой словарь может, например, в одноименном с модулем файле или в отдельной папке подсистемы. Также нужен инструмент, который позволит внедрять в это дерево информацию для перевода на другие языки. Выглядеть это может так:
Код: "OBERON"
  1. MODULE Test; (* This is a test module *)
  2.  
  3. PROCEDURE Do*;
  4. BEGIN
  5. END Do;
  6.  
  7. END Test.

Выбираем русский язык, модуль становится таким:
Код: "OBERON"
  1. МОДУЛЬ Test; (* This is a test module *)
  2.  
  3. ПРОЦЕДУРА Do*;
  4. НАЧАТЬ
  5. ЗАКОНЧИТЬ Do;
  6.  
  7. ЗАКОНЧИТЬ Test.

Теперь вызываем наш гипотетический инструмент, который сканирует идентификаторы и выводит их список, в который мы вводим перевод на русский:
Код: "TEXT"
Test [Тест]
Do [Делать]
После автоподстановок из введённого списка-словаря получаем:
Код: "OBERON"
  1. МОДУЛЬ Тест; (* This is a test module *)
  2.  
  3. ПРОЦЕДУРА Делать*;
  4. НАЧАТЬ
  5. ЗАКОНЧИТЬ Делать;
  6.  
  7. ЗАКОНЧИТЬ Тест.

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

Если такой подход будет востребован, он несомненно будет развиваться и пополняться другими идеями, я лишь наметил некоторые моменты. Готов ответить на вопросы и обсудить это, но только в положительном ключе, если можно. Недостатков и у этой идеи, и у самого подхода с национализированным синтаксисом — хватает. Напомню, что Никлаусу Вирту задавали вопрос почему его языки — не с немецкими ключевыми словами. И мне не стыдно, что моё мнение в итоге совпадает с мнением уважаемого мэтра.

Конечно для реализации такой подсистемы придётся глубоко влезть и в другие подсистемы (Dev), но BlackBox видится идеальной платформой для этой цели, в ней как раз заложен потенциал для такого рода расширений. Что ещё более привлекательно с учётом того, что BlackBox обещают выпустить под упрощённой лицензией BSD.

А вопросы предвижу такие. Почему Оберон? (Потому что по многим критериям это наилучший язык для обучения, господа!) Почему BlackBox? (А потому, что это самая расширяемая система из всех, мне известных. Однако если вам хочется, можете попробовать внедрить русские ключевые слова в TurboPascal/FreePascal или Delphi, и светлой вам дороги на этом поприще, господа!)

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

А может быть в скором будущем появится такая профессия как локализатор исходников п/о под национальные особенности граждан? :) Трудно ведь предугадать последствия такой плодотворной идеи, а? ;)


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 01 авг 2013, 06:55 
Не в сети
Аватара пользователя

Сообщения: 12
Откуда: Астрахань
1. Русские ключевые слова НУЖНО использовать только на самом первом этапе ОБУЧЕНИЯ начинающих программистов. Об это пишет и Константин Поляков, и об этом мельком говорит Ткачев в одном из докладов на конференциях ИТО.
2. Лексика должна быть сменная в среде: русско-английская. Причем смена лексики должна делаться одной кнопочкой или клавишей. Программа при этом меняться не должна и перекомпилироваться не должна. Смотрите наш Semantic IDE.
3. Более того, для обучения важны понятия. а не синтаксис языка. Поэтому синтаксис тоже можно сделать сменным - опять см. наш Semantic IDE.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 01 авг 2013, 14:34 
Не в сети

Сообщения: 25
Интересная тема практически. Для начала насчёт этого:
Zorko писал(а):
..., разработать подсистему для BlackBox Component Builder, которая будет реализовывать словари русского (а также других языков) для ключевых слов языка Компонентный Паскаль. С возможностью переключаться между языками. Т.е. меню Язык -> Список языков. Учащийся выбирает свой родной язык, если он присутствует в списке, и все ключевые слова в исходнике моментально становятся на нужном языке. Это, кстати, безусловно снизит моё напряжение по поводу только русского синтаксиса, а по мнению некоторых товарищей понизит барьер вхождения будущих программистов. Быть может и так, не знаю. Не уверен.
...
- вроде Ткачёв уже говорил о такой возможности?.. и что сделано именно так, что можно добавлять словари...

Впрочем, это дело частное... вот и в СемантикИДЕ тоже оно есть. Наверное, и это можно реализовать:
Zorko писал(а):
... Короче говоря, не верю я в то, что взгляды на вариантность перевода ключевых слов будут столь уж однозначными, всегда найдётся тот, кому не понравится перевод. Вот для них и предлагаю возможность личного варианта словарей. В то же время, хранить токены нужно так, чтобы, имея личный перевод, в общее хранилище попадал бы вариант, который можно было бы переводить на другой язык и на другой вариант словаря безо всяких трудностей.
...

И мне кажется, что есть резон именно в исходном тексте пользоваться преимущественно лексикой "межнационального/международного общения". :) А вот именно "допрограммные" данные о программируемой задаче - уже на родных языках всех тех, кто с ЖЦ этой задачи связан.
Посему именно то, что кроме ключевых слов, и надо в первую очередь поддерживать на многих языках в исходном тексте. А весь синтаксис делать мультилексичным для языков спецификации. Которые ориентированы ещё на "предметные" понятия о постановке задачи и о её решении. И где от программирования только то "понятийное ядро", о коем Лаптев говорит. И то если языки императивные... ну а у дескриптивных понятия свои... которые, впрочем, тоже на различных родных языках поддерживать м.б. полезным...

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

Я это к тому, что перечисленное мною для исходных текстов именно вроде как уже есть. А вот что делать со спецификациями?.. прежде всего как они в конкретной среде разработки (на выходе у которой, допустим, исходники на том же Обероне или SL) будут соотноситься с программами?..
Для затравки вот такие примеры. В первом случае как раз была описана работа пользователя на языке типа СЛ, только с русской лексикой. Сооответственно и действия тут юзерские, и величины, коими человек оперирует... посему и национальность лексики (русскость в данном варианте) вроде как уместна... :)
Во втором случае уже и не с компом работаем... хотя отдельные устройства из фигурирующих вполне м.б. компьютеризованы. Но главное тут - что исполнитель не единственный. Так что надо работу распределять... Определённый подход к моделированию этого и предложен... И здесь тоже вариантность лексики уместна, но главное - сам смысл модели совместно протекающих процессов...
Кто что думает?..


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 01 авг 2013, 14:43 
Не в сети

Сообщения: 25
Да, вот ещё язык с русским синтаксисом именно в этой статье. Тут была своя задача... может, тоже есть над чем подумать?..


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 23 май 2014, 03:00 
Не в сети

Сообщения: 25
Моё личное ИМХО, что в школе уже нужно ЯП на английском изучать.
Вот в детском саду, то да! :) Для детского сада есть интересные ЯП, вообще без буквенного языка, всё на иконках. Встречал как-то, что-то типа ЛОГО. Там прям спрайтовый движок. И все команды просты: маленькая черепашка нарисована - значит уменьшить спрайт, большая - увеличить, черепашка держит штемпель - отрисовать спрайт на холсте. Так-же команды повернуться, двинуться. Обработки некоторых событий. Общий сфетофор, что-то вроде бродкаста.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB