OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 22 Сентябрь, 2018 23:28

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




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 10:26 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2185
Откуда: Красноярск
Обращаю внимание на свежую сборку Блэкбокса, в которой были исправлены пара огрех, проявляющихся при работе с юникодными идентификаторами.
http://blackboxframework.org/unstable/m ... c1.581.zip
http://blackboxframework.org/unstable/m ... -setup.exe

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

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

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

Небольшой пример ниже.
Код:
MODULE ПередачаПример;
   
   IMPORT Log, Dialog, StdCmds, ПередачаПоследовательная;
   
   VAR
      соединение: ПередачаПоследовательная.Соединение;
      списокПортов*: Dialog.List;
   
   PROCEDURE ПробныйСтарт*(порт, скорость: INTEGER);
   BEGIN
      ПередачаПоследовательная.отладка := TRUE;
      NEW(соединение);
      соединение.Связаться(порт, скорость)
   END ПробныйСтарт;
   
   PROCEDURE Отправить*;
   BEGIN
      IF соединение.ПроверитьПорт("ECHOWHO ") THEN
         Log.String("Отправка прошла"); Log.Ln
      ELSE
         Log.String("Порт не годится"); Log.Ln
      END;
   END Отправить;
   
   PROCEDURE Отключить*;
   BEGIN
      соединение.Отключить
   END Отключить;
   
   PROCEDURE ВыбратьПорт*;
   BEGIN
      ПередачаПоследовательная.СписокПортов(списокПортов);
      Dialog.UpdateList(списокПортов);
      StdCmds.OpenToolDialog("Передача/Rsrc/ВыборПорта", "Выбор порта")
   END ВыбратьПорт;
   
END ПередачаПример.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 11:40 

Зарегистрирован: Воскресенье, 03 Февраль, 2008 12:50
Сообщения: 227
Это хорошо, что "пилите" юникодизацию.

Иван Денисов писал(а):
дополнительный уровень абстракции, отделяя вызовы ваших модулей в коде от вызовов модулей каркаса

Хм... А смысл какой в таком отделении?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 12:04 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 325
Откуда: Россия, Стерлитамак
Иван Денисов писал(а):
Небольшой пример ниже.

Вот в 1с сильно напрягает переключение клавы (особенно где одно слово можно так написать), уж или все на англицком или на русском.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 12:58 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Иван Денисов" писал(а):
Обращаю внимание на свежую сборку Блэкбокса,

Ваня! Моя подстанция стоит на ул. Ивана Денисова! Чуешь чем пахнет?)))
Качаю, и начинаю переделывать))

kemiisto писал(а):
Хм... А смысл какой в таком отделении?

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

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

Так что, Ваня, радуй чаще такими новостями. Тут один товарищ (не будем поминать всуе :D ) говорил о фрагментации оберонов, на самом деле, имхо, это и не очень-то проблема.
А вот глубокая адаптация, локализация, позволяющие сохранить семантику и неразрывность с главным направлением -- вот это действительно важная задача.
И не надо бояться опять уйти в "автономку" из-за русского языка. В конце-концов: чем английский лучше русского? У нас есть и мировые философы, и великие литераторы, и учёные имеющие авторитет во всём мире. Не думаю, что сначала они свои труды писали на английском. Что за ложный стыд? Хочется напомнить, всё тот же "Буран". Взлетел, вышел на орбиту, сел. Всё это в отечестве родном, не где-нибудь. Много там инженеров знало английский, немецкий, французский?

Да, переключать клавиатуру -- это напряг. Но всё же -- эта сборка БОЛЬШОЙ шаг вперёд!
И кстати, гоуланг сейчас практически лишился своей одной приятной фишки)))
Сейчас специально проверил в питоне -- точняк. Так такого нет изначально)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 15:38 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Скачал. От счастья сижу переименовываю подсистемы и файлы своей программульки на русский язык.
Первые ожидаемые последствия: сразу встал вопрос, а как адекватно назвать по русски модуль Global?)))
Вот ведь та ещё задача))) Бедные переводчики))
Есть модуль с типовым безразмерным напряжением на чтение. Называется TpiUr. Прямая калька на русский -- ТпиUч просто ужасна. Поэтому прямая транслитерация тут явно не катит.
Пришлось остановиться на варианте ТпиНапр_чт. Просто мозг _ПО_ДРУГОМУ_ воспринимает такую конструкцию!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 15:41 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 325
Откуда: Россия, Стерлитамак
prospero78 писал(а):
Вот честно, если бы операторы ещё можно было подвести под русский язык -- вот это вообще был бы мощнейший ход.
...
Да, переключать клавиатуру -- это напряг.

Ну так и я говорю, что "Даёшь операторы на русском" ), чтобы не переключать клаву (а то и в голове контексты какие)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 16:04 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
В качестве мелкого приятного бонуса: в этой сборке ВИЖУ как правильно отображаются True Type шрифты.
Уря! Вместо надоевшего Arail настроил Consolas. Моноширинный, различает "О" и "0", ровные строки :D
Это прогресс, коллеги!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 16:46 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 219
"Хочется напомнить, всё тот же "Буран". Взлетел, вышел на орбиту, сел. Всё это в отечестве родном, не где-нибудь. Много там инженеров знало английский, немецкий, французский?"

Вы представить себе не можете сколько (;. Упреждая ответ - существенно больше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Четверг, 21 Июль, 2016 17:46 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Artyemov писал(а):
"Хочется напомнить, всё тот же "Буран". Взлетел, вышел на орбиту, сел. Всё это в отечестве родном, не где-нибудь. Много там инженеров знало английский, немецкий, французский?"

Вы представить себе не можете сколько (;. Упреждая ответ - существенно больше.

Пожалуй, да. Люди были грамотные. Имел в виду в контексте ключевых слов и идентификаторов на русском языке.
Речь идёт не только про научных сотрудников, но и инженеров-техников, токарей, слесарей, наладчиков.

З.Ы. У меня куча модулей с названием на подобии GuiWin101. Долго думал как назвать подсистему, так как прямая калька Гуя (Гуи) как-то убога. И ничего более разумного, как "Гип" не придумал. А зачем изобретать велосипед?? Вот таким образом можно легко уйти от избыточных заимствований))

З.Ы.2 Рабочее время закончилось, сижу на работе. Меня просто прёт)))) Комментарий в начале каждого модуля теперь просто лишний.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 10:59 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 219
"…инженеров-техников, токарей, слесарей, наладчиков." - хоть вывернись, а инженеров в списке - "пустое множество".
Эти (из спика) с иностранной документацией сталкиваться и не должны были, и тем более с ключевыми словами и идентификаторами на русском языке.

А нет никаких "…избыточных заимствований…"
"Гип" - да, неадекватное, впрочем, как и "Gui", сокращение, а вот "ГИП" ("GUI") то, что надо.
Разницу чуете: "Гип" - имя собственное, с большой буквы; "ГИП" (или "Г_И_П") - аббревиатура.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 11:10 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Я прекрасно понимаю, что правильно "ГИП".
Но вы попробуйте в БлэкБоксе в подсистеме "ГИП" положить модуль "Окно405". ;)
Вот поэтому приходится идти на компромисс в виде "Гип".

Написание в форме "Г_И_П" всё также проблему не решит.

Оффтоп. Сейчас переписываю типизированные физические измерения с русским языком и вижу, безобидный, но косяк: в методе типизированного измерения "Обновить" есть лишний супервызов метода-предка. Лишний потому, что в телеизмерении и так обновляется локальная копия значения телеизмерения. Попросту говоря, удаляю лишнее телодвижение))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 11:26 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 219
"…модуль "Окно405"…"
Буду откровенным - так себе названьице, из разряда:
"- Бортмеханник, приборы?!
- Восемь!!!
- Что восемь?
- А что приборы?"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 11:38 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Отличное название! Предложите лучше ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 11:53 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 219
405 - это что? Следовательно, пусть "Окно_того_что_означает_405" - ну это прям вот с колёс. А может и не "окно".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 11:54 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Artyemov писал(а):
405 - это что? Следовательно, пусть "Окно_того_что_означает_405" - ну это прям вот с колёс. А может и не "окно".

Это номер окна))) Очевидно же. "Окно № 405".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 11:58 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 219
Вот ни разу не очевидно (;
И что, перед ним было 404 (окна)? т.е. модуля?

Upd: не, конечно можно допустить, что (по аналогии с офисными зданиями 5-й оф. на 4-ом этаже) 5е окно в 4й подсистеме (:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 12:39 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Вот видите))
Вы ПРАВИЛЬНО ПРЕДПОЛОЖИЛИ!!! ))) Это действительно сборочная панель устройств на 4 секции шин № 5. Или ,в соответствии с диспетчерским наименованием -- № 405.
Вполне логичное название.

Наблюдашка: в ходе переписывания столкнулся с изменённой семантикой IN параметров. Приходится заменять на VAR. В-принципе, ничего страшного, кроме того, что совместимость обратная поломатая. Смысл в IN теперь остаётся только для полей типа, которые объявлены на чтение/запись. Методы объекта вызывать нельзя.

З.Ы. Ваня!!! Не работает контекстный просмотр интерфейса модуля!! Это трабла!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 13:09 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2185
Откуда: Красноярск
prospero78 писал(а):
З.Ы. Ваня!!! Не работает контекстный просмотр интерфейса модуля!! Это трабла!!

Буду проверять. Рад, что ты подключился к тестированию RC версии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 13:42 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 219
"Окно № 405" и "сборочная панель устройств на 4 секции шин № 5. Или ,в соответствии с диспетчерским наименованием -- № 405." синонимы-ы-ы-ы-ы (;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникодные идентификаторы
СообщениеДобавлено: Пятница, 22 Июль, 2016 14:26 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Artyemov писал(а):
"Окно № 405" и "сборочная панель устройств на 4 секции шин № 5. Или ,в соответствии с диспетчерским наименованием -- № 405." синонимы-ы-ы-ы-ы (;

Да. Потому что на сборочную панель выходят органы управления яч. 10 кВ 405, линейный блок релейно-защитной аппаратуры, а в окне ещё отображается информация по отходящей кабельной линии яч. 405 из подсистемы коммерческого учёта электроэнергии. Это уже явно не сборочная панель. Самое простое и доступное слово для обозначения этого зоопарка -- "Окно". И номер 405, по номеру отходящей кабельной линии. Что не так-то? Это явно лучше ломано-сокращённого енглишь-эрзаца GuiWin405. Или что лучше: "CtrB405" или "УпрЯч405"? "Box" и "ячейка" явно разные по смыслу. А использовать слово "cell" не стал, так как кроме как ассоциации "power cell" и "table cell" лично у меня ассоциации не возникает. Около пяти названий есть (например, ШР -- шинный разъединитель), которые адекватно ооочень сложно написать по английски. "ГипОкно405" -- это цветочки. Понятные цветочки.


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

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB