OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 21:12

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




Начать новую тему Ответить на тему  [ Сообщений: 188 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 10  След.
Автор Сообщение
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 18:17 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Сергей Губанов писал(а):
Ещё думал про объявления массивов:

Вектор = МАССИВ 3 ИЗ ЧИСЛО;
Матрица = МАССИВ 3, 3 ИЗ ЧИСЛО;

Это выглядит уродливо.

Надо идтить до конца.
Код:
ТИП ЧИСЛО(род.:ЧИСЛА,... МН ЧИСЛА, род.:ЧИСЕЛ,..) = ...
Вектор = МАССИВ 3 ИЗ ЧИСЕЛ;

можно даже навернуть
Код:
ТИП ОКНО(ПАРАДИГМА: ЧИСЛО) = ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевый слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 18:56 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Info21 писал(а):
соединил с И21-ной черепашкой.

Попробовал, работает!!!
Очень мелкие замечания.
1) В модуле Edit появились накладки: м - это МОДУЛЬ или МАССИВ?
2) Некоторые сокращения (в моем варианте Edit'а) для команд черепашки теперь совпадают с сокращениями для ключевых слов. Ну, это нетрудно развести.
3) С падежами и родами, думаю, можно несколько минимизировать проблему, например, разрешить только ЦЕЛ. ВЕЩ, ПЕРЕМЕННЫЕ,...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевый слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 19:40 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
А.П. писал(а):
м - это МОДУЛЬ или МАССИВ?

МАССИВ. Модули лучше, видимо, через пункт меню создавать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 20:36 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Ещё к вопросу о...
Может такая вот шняга (как назвал её автор :mrgreen: ) лучшая замена русскоязычным идентификаторам, с которыми возникают проблемы при переходе к 1.6. И компилятор трогать не надо. Надо только механизм доработать на замену не словарных слов транслитом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 20:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Борис Рюмшин писал(а):
.. Может такая вот шняга (как назвал её автор :mrgreen: ) лучшая замена русскоязычным идентификаторам, с которыми возникают проблемы при переходе к 1.6. И компилятор трогать не надо. ...
А правда, почему нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 21:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Info21 писал(а):
Борис Рюмшин писал(а):
.. И компилятор трогать не надо. ...
А правда, почему нет.
Только скорость компиляции может заметно упасть. Впрочем, для учебных задач это не важно.


Последний раз редактировалось Info21 Среда, 11 Март, 2009 21:04, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 21:03 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Сергей Губанов писал(а):
Ещё думал про объявления массивов:

Вектор = МАССИВ 3 ИЗ ЧИСЛО;
Матрица = МАССИВ 3, 3 ИЗ ЧИСЛО;

Это выглядит уродливо.

А если объявлять массивы так:

Вектор = МАССИВ(ЧИСЛО, 3);
Матрица = МАССИВ(ЧИСЛО, 3, 3)

то вроде выглядит нормально.

Не кидайтесь сразу помидорами из-за ввода дополнительных идентификаторов.

Может так:
Вектор = МАССИВ ДЛИНОЙ 3 ИЗ ЭЛЕМЕНТОВ ЧИСЛО
или
Матрица = МАССИВ ДЛИНОЙ 3, 3 ИЗ ЭЛЕМЕНТОВ ЧИСЛО

два дополнительных слова несколько уточняют смысл и не надо менять падеж.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 21:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Димыч писал(а):
Может так:
Вектор = МАССИВ ДЛИНОЙ 3 ИЗ ЭЛЕМЕНТОВ ЧИСЛО
из, F5 --> ИЗ_ЭЛЕМЕНТОВ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Среда, 11 Март, 2009 22:50 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Борис Рюмшин писал(а):
.. И компилятор трогать не надо. ...
Info21 писал(а):
Только скорость компиляции может заметно упасть. Впрочем, для учебных задач это не важно.
Не забывайте, что есть не только ошибки компиляции, но и выполнения - окно трэпа, выделение участка исходника при щелчке по синим ромбикам, метаинформация...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 06:54 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Димыч писал(а):
Может так:
Вектор = МАССИВ ДЛИНОЙ 3 ИЗ ЭЛЕМЕНТОВ ЧИСЛО
или
Матрица = МАССИВ ДЛИНОЙ 3, 3 ИЗ ЭЛЕМЕНТОВ ЧИСЛО

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

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

В свете сказанного предлагаю оставить упрощенный вариант описания массива:
а : МАССИВ 3, 5 ЦЕЛ; б : МАССИВ 10 ВЕЩ; в : МАССИВ 23 ЛИТЕР; х : МАССИВ 102 БАЙТ;
Слово ИЗ некоторое время еще проговариваем, подразумеваем, но не пишем. Окончаниями русских названий типов не заморачиваемся, их просто отбрасываем. Грубовато по отношению к великому и могучему, но ведь и язык строим не вполне естественный :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 10:06 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
х : МАССИВ ИЗ 102 БАЙТ;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 10:16 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Александр Ильин писал(а):
х : МАССИВ ИЗ 102 БАЙТ;
То есть обратный перевод должен быть МАССИВ_ИЗ --> ARRAY, и БАЙТ --> OF BYTE?
Аналогично ЦЕЛЫХ --> OF INTEGER и т.д.?

Кстати, БАЙТ или БАЙТОВ? Или подразумевается сокращение? Если сокращение, то оно обудет путаться с конструкцией VAR b: BYTE?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 10:35 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Немного оффтопа, но к месту :)
А.П. писал(а):
Номер клетки - это номер элемента массива, его индекс.
Номер или индекс? На заре своей программисткой деятельности, изрядно позапутавшись в различных способах нумерации элементов, я в конце концов принял для себя соглашение:
Цитата:
Номер и индекс -- это не одно и то же. Номера начинаются с единицы, а индексы с нуля.
Таким образом в слове "ПРИВЕТ" буква "Т" имеет шестой номер, но индекс у неё равен 5. Это, может быть, не общепринятое соглашение, но никогда не даёт мне запутаться. Если локальная переменная в программе названа "i" или там "j", "k", то это индекс, если "n", "num" -- номер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 11:14 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Info21 писал(а):
Кстати, БАЙТ или БАЙТОВ? Или подразумевается сокращение? Если сокращение, то оно обудет путаться с конструкцией VAR b: BYTE?
Я слово "байт" склоняю так: байт, байта, байту, байт, байтом, о байте. "Байтов" у меня нету, но правильно ли это - не поручусь.

ПЕРЕМЕННЫЕ
б: БАЙТ;
м: МАССИВ ИЗ 2 БАЙТ;

При переводе, наверное, придётся делать перестановку слов: МАССИВ ИЗ 2 БАЙТ -> ARRAY OF 2 BYTE -> ARRAY 2 OF BYTE.
С другой стороны, можно ввести "БАЙТОВ" = "OF BYTE" и "ЦЕЛЫХ" = "OF INTEGER", в то время как "БАЙТ" = "BYTE" и "ЦЕЛОЕ" = "INTEGER".
А вообще, интересно получится: МАССИВ ИЗ 1 БАЙТОВ -- массив из одних байтов : ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевый слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 11:38 

Зарегистрирован: Среда, 04 Февраль, 2009 19:03
Сообщения: 25
Сергей Губанов писал(а):
Info21 писал(а):
как будто пыль со стекла стерли.

Да, как прояснение. Название придумал для языка: Ясносказ. Начал писать транслятор этого хозяйства на C# с использованием русских идентификаторов. Через несколько дней стал совершенно по другому смотреть на код. Функции стал называть с маленькой буквы, так как они вызываются в середине "предложения", и заглавные буквы там не к месту. Отказался от верБлюЖачей нотации в_пользу_символов_подчёркивания (хотя при написании английскими буквами верБлюЖачесть никакого диссонанса не вызывает).

http://rus.24bb.ru/viewtopic.php?pid=211#p211 - может вот эта вещь будет интересна - преревод делал Зуев для компилятора Си Интерстрон
Код:
// Заголовочный файл для русификации служебных слов Си++
// Его имя должно быть c_rus.h или си.h
// !!! Модификация 2008 года: Русские ключевые слова Си++. Версия от 20 мая 2008 г.
// Cоставлен для проекта http://rus.24bb.ru - Языки программирования с русским синтаксисом
// Версия от 20 мая 2008 г.
// Финальная тестовая версия 0.9
// Разработан на основе идей:
//  * Проект C11 (Е. Зуев, Интерстрон)
//  * Графический язык "Дракон" Графит-ФлОкс - Владимир ПАРОНДЖАНОВ
//  * Язык программирования Глагол
////////////////////////////////////////////////////////////////////////
//  При модификации учитывалось что:
//  * На понимание алгоритма, уходит гораздо больше времени, чем на на понимание команд
//  (см. Язык Дракон)
//  * Писать программы необходимо на том языке на котором думаешь
//  ** отсюда надо писать русские *.h файлы для библиотек и править переводы их
//  справочных систем
//  * Много синонимов - меньше слов для переменных, функций пользователя
//  * Не надо изобретать правила к которым потом за уши притягивается практика
//  ** сокращений надо избегать но не любой ценой (лог, цел)
//  ** синонимов надо избегать но не любой ценой (правда, да, ложь, нет)
///////////////////////////////////////////////////////////////////////////// 
//  // ИЗМЕНЕНО -

#define   И        and // ИЗМЕНЕНО
#define и_присв        and_eq
//#define ассем        asm 
#define ассемблер       asm        // альтернативное
#define авто        auto       //ИЗМЕНЕНО
//#define автом        auto   
//#define автоматич       auto       // альтернативное
//#define автоматический    auto    // альтернативное
//#define автоматическая    auto    // альтернативное
//#define автоматическое    auto    // альтернативное
//#define   автоматические    auto    // альтернативное
#define   бит_и        bitand
#define лог         bool       // альтернативное
//#define логич        bool       // альтернативное
//#define логический       bool    // альтернативное
//#define логическая       bool    // альтернативное
//#define логическое       bool    // альтернативное
//#define логические       bool    // альтернативное
#define прервать       break
#define вариант        case
#define перехват       catch
#define символ        char        //ИЗМЕНЕНО
//#define сим           char
//#define симв        char    // альтернативное
//#define символьный       char    // альтернативное
//#define символьная       char    // альтернативное
//#define символьное       char    // альтернативное
//#define символьные       char    // альтернативное
#define класс        class
#define бит_не        compl
#define конст        const
#define константа       const    // альтернативное
//#define константный       const    // альтернативное
//#define константная       const    // альтернативное
//#define константное       const    // альтернативное
//#define константные       const    // альтернативное
#define конст_прив       const_cast

#define продолжить       continue //ИЗМЕНЕНО
#define повторить       continue //ИЗМЕНЕНО

//#define итерация       continue
#define проч        default
#define прочие        default    // альтернативное
#define прочее        default    // альтернативное
#define удалить        delete
#define цикл        do
#define выполнить       do // ИЗМЕНЕНО
//#define двойн        double
//#define двойной        double    // альтернативное
//#define двойная        double    // альтернативное
//#define двойное        double    // альтернативное
//#define двойные        double    // альтернативное
//#define двойн_точн       double    // альтернативное
#define двойной_точности   double    // альтернативное
#define дин_прив       dynamic_cast
#define иначе        else
//#define перечисл       enum
#define перечисление    enum    // альтернативное
//#define явн           explicit
#define явная        explicit   // альтернативное
//#define явный        explicit   // альтернативное
#define внеш        extern
//#define внешний        extern    // альтернативное
//#define внешняя        extern    // альтернативное
//#define внешнее        extern    // альтернативное
//#define внешние        extern    // альтернативное
#define ложь        false
#define НЕТ           false       // ИЗМЕНЕНО
#define веществ        float  // ИЗМЕНЕНО
//#define плав        float
//#define плавающий       float    // альтернативное
//#define плавающая       float    // альтернативное
//#define плавающее       float    // альтернативное
//#define плавающие       float    // альтернативное
#define для           for
//Необходимо другое слово!!
//#define друж        friend
//#define друг        friend    // альтернативное
//#define дружеств       friend    // альтернативное
#define дружественный    friend    // альтернативное
//#define дружественная    friend    // альтернативное
//#define дружественные    friend    // альтернативное
#define переход        goto
#define если        if
#define подставл       inline
//#define подставляемая    inline    // альтернативное
//#define подставляемые    inline    // альтернативное
#define цел           int
//#define целый        int       // альтернативное
//#define целая        int       // альтернативное
#define целое        int       // альтернативное
#define целые        int       // альтернативное
#define большое        long
//#define длин        long
//#define длинный        long    // альтернативное
//#define длинная        long    // альтернативное
//#define длинное        long    // альтернативное
//#define длинные        long    // альтернативное
#define меняется        mutable     // ИЗМЕНЕНО   
//#define изменч        mutable
//#define изменчивый       mutable    // альтернативное
//#define изменчивая       mutable    // альтернативное
//#define изменчивое       mutable    // альтернативное
//#define изменчивые       mutable    // альтернативное
#define область_имён    namespace   //ИЗМЕНЕНО
#define область_имен    namespace   //ИЗМЕНЕНО
//#define область        namespace
#define создать        new       //ИЗМЕНЕНО
#define НЕ           not
//#define лог_не       not
#define не_равно       not_eq
#define операция       operator
#define ИЛИ           or        // ИЗМЕНЕНО
//#define лог_или        or
#define или_присв       or_eq


#define для_себя        private  // ИЗМЕНЕНО
//#define себе        private
//#define скрытый        private    // альтернативное
//#define скрытая        private    // альтернативное
//#define скрытое        private    // альтернативное
//#define скрытые        private    // альтернативное
#define закрытый        protected // ИЗМЕНЕНО
#define для_своих        protected // ИЗМЕНЕНО
//#define своим        protected
//#define защищ        protected   // альтернативное
//#define защищенный       protected   // альтернативное
//#define защищенная       protected   // альтернативное
//#define защищенное       protected   // альтернативное
//#define защищенные       protected   // альтернативное
#define общий        public    // ИЗМЕНЕНО
#define для_всех        public // ИЗМЕНЕНО
//#define всем        public
//#define доступный       public    // альтернативное
//#define доступная       public    // альтернативное
//#define доступное       public    // альтернативное
//#define доступные       public    // альтернативное

#define регистр        register    // ИЗМЕНЕНО
//#define рег           register
//#define регистровый       register   // альтернативное
//#define регистровая       register   // альтернативное
//#define регистровое       register   // альтернативное
//#define регистровые       register   // альтернативное
#define тип_прив       reinterpret_cast
#define возврат        return
#define кор           short
//#define короткий       short    // альтернативное
//#define короткая       short    // альтернативное
//#define короткое       short    // альтернативное
//#define короткие       short    // альтернативное
#define со_знаком       signed
//#define знаковый       signed    // альтернативное
//#define знаковая       signed    // альтернативное
//#define знаковое       signed    // альтернативное
//#define знаковые       signed    // альтернативное
#define размер        sizeof
#define стат        static
#define статич        static
//#define статический       static    // альтернативное
//#define статическая       static    // альтернативное
//#define статическое       static    // альтернативное
//#define статические       static    // альтернативное
#define стат_прив       static_cast
//#define структ        struct
#define структура       struct    // альтернативное
#define выбор        switch
#define шаблон        template
#define этот        this
#define исключение       throw
#define контроль       try
#define тип           typedef
#define есть_тип       typeid
#define имя_типа       typename
//#define совмещ        union
#define совмещение       union    // альтернативное
#define без_знака       unsigned
//#define беззнаковый       unsigned   // альтернативное
//#define беззнаковая       unsigned   // альтернативное
//#define беззнаковое       unsigned   // альтернативное
//#define беззнаковые       unsigned   // альтернативное
//#define использ        using
#define использовать    using    // альтернативное
#define вирт        virtual
#define виртуальный       virtual    // альтернативное
//#define виртуальная       virtual    // альтернативное
//#define виртуальное       virtual    // альтернативное
//#define виртуальные       virtual    // альтернативное

#define пусто        void  //ИЗМЕНЕНО
//#define пуст        void
//#define пустой        void    // альтернативное
//#define пустая        void    // альтернативное
//#define пустое        void    // альтернативное
//#define пустые        void    // альтернативное
#define ненадеж        volatile
#define ненадежный       volatile   // альтернативное
#define ненадежная       volatile   // альтернативное
#define ненадежное       volatile   // альтернативное
#define ненадежные       volatile   // альтернативное
#define шсим        wchar_t
#define широкий_симв    wchar_t    // альтернативное
#define широкая_симв    wchar_t    // альтернативное
#define широкое_симв    wchar_t    // альтернативное
#define широкие_симв    wchar_t    // альтернативное
#define пока        while
#define ИЛИ_НЕ        xor         // ИЗМЕНЕНО
//#define искл_или       xor
#define искл_присв       xor_eq
///////////////////////////////////////////////////////
// РУСИФИКАЦИЯ ФЦНКЦИЙ БИБЛИОТЕК - НЕ СОРТИРОВАННЫЕ
#define начало main

/////////////////////////////////////////////////////////////////////////////
/// ПРЕПРОЦЕССОР - ПОКА НЕ ПЕРЕВЕДЁН
// #define #макрос #опред #определить
// В данном случае предпочтение было отдано существительным, в первую
// очередь, потому, что это позволило избежать сокращений и получить краткие и
// выразительные названия.
// Заметим, что "макрос" - корректная форма единственного числа для данного понятия.
// Именно такой перевод английского macro был принят в отечественной
// профессиональной литературе, начиная с 70-х гг. (см., например, М.Кемпбел-Келли,
// "Введение в макросы": Пер. с англ./ Под ред. Э.З.Любимского.- М.: Сов. Радио,
// 1978). Общеупотребительный в устной речи (иногда проникающий и в печатные
// тексты) вульгаризм "макро" возник только в последнее время.
// defined есть Если директива #ifdef переводится как
// #если_есть, то некоторую ее модификацию естественно перевести
// аналогично. Пример: #если ( есть М1 || есть М2 ) …
// #elif #инес #иначе_если #ин_если #ин_ес
// Перевод директивы #elif как #инес выглядит наиболее кратко и вместе с тем
// читабельно. Кроме того, именно так традиционно переводится служебное слово
// elif в тех языках программирования, в которых оно имеется (например, в Алгол-68).
// #else #иначе Было бы странно, если бы директивы #if и #else были бы переведены как-либо
// иначе, имея ввиду одноименные служебные слова самого языка.
// #endif #конес #конец_если #кон_если #конесли #илсе
// Директива #endif переведена как #конес,- в духе #если и #инес.
// "Стильный" перевод как #илсе - перевернутой начальной директивы, сам
// по себе очень привлекательный (и используемый, в частности, для
// аналогичного служебного слова в Алголе-68), был отвергнут, так как в данном случае
// он противоречил бы общему стилю данных предложений.
// #error #ошибка
// #if #если
// #ifdef #если_есть #еслиесть #если_опред
// #ifndef #если_нет #еслинет #если_не_опред
// Предлагаемый перевод #ifdef
// #ifndef как, соответственно,
// #если_есть и #если_нет,представляется наиболее точным из возможных: директива "срабатывает", если
// ранее уже было (еще не было) определение макроса с указанным именем.
// #include #вставка #вставить #внести Здесь также использовано
// существительное; быть может, перевод #вставить так же нагляден и точен, но
// для единообразия (чтобы директивы определения макроса, его отмены и
// использования представлялись существительными) была выбрана указанная форма.
// #line #строка
// #pragma #прагмат #прагма Практически единственный возможный перевод. Вариант #опция, в принципе,
// тоже допустим, но он несет оттенок жаргона, используемого в устной речи. К предложенному варианту перевода
// полностью относится комментарий для директивы #макрос (имея ввиду распространенность вульгарного перевода
// "прагма").
// #undef #отмена #отмен #отменить
// Предпочтение было отдано
// существительным; см. #define.
// __DATE__ __ДАТА__
// __FILE__ __ФАЙЛ__
// __LINE__ __СТРОКА__
// __TIME__ __ВРЕМЯ__
// __cplusplus __сиплюсплюс
// __STDC__ __СТАНДСИ__ __СТДСИ__
// Имена предопределенных макросов либо имеют совершенно однозначный и краткий
// перевод, либо представляют собой неудобопроизносимые сокращения,
// возникшие исторически по произволу создателей языков Си и Си++.
// Поэтому не следует надеяться исправить дело, пытаясь ввести для них
// некие "красивые" эквиваленты на русском языке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевый слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 11:40 

Зарегистрирован: Среда, 04 Февраль, 2009 19:03
Сообщения: 25
Сергей Губанов писал(а):
Info21 писал(а):
как будто пыль со стекла стерли.

Да, как прояснение. Название придумал для языка: Ясносказ. Начал писать транслятор этого хозяйства на C# с использованием русских идентификаторов. Через несколько дней стал совершенно по другому смотреть на код. Функции стал называть с маленькой буквы, так как они вызываются в середине "предложения", и заглавные буквы там не к месту. Отказался от верБлюЖачей нотации в_пользу_символов_подчёркивания (хотя при написании английскими буквами верБлюЖачесть никакого диссонанса не вызывает).

http://rus.24bb.ru/viewtopic.php?pid=447#p447 - вот человек по моему делает нечто подобное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 11:44 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
А тут так тихо было........

Русский орфографический словарь Российской академии наук.
Отв. ред. В. В. Лопатин.
© Электронная версия, «ГРАМОТА.РУ», 2001–2007.

байт, -а, р. мн. -ов, счетн. ф. байт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 11:46 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Александр Ильин писал(а):
... Я слово "байт" склоняю так ... но правильно ли это - не поручусь.
Счетная форма всё-таки, выходит, байт, а не байтов.

Александр Ильин писал(а):
... При переводе, наверное, придётся делать перестановку слов ...
Боюсь, этак можно нагромоздить барьер для перехода от родноязычных ключевых слов к английским. Видимо, надо всё же стремиться к соответствию 1:1.

Хотя в разделе объявлений вариации с падежами по большому счету вряд ли могут породить злокачественные проблемы, особенно если продумать работу F5 и алгоритмы перевода. Но хочется попроще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 12:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
>> Видимо, надо всё же стремиться к соответствию 1:1.

Сначала надо придумать грамматику инвариантную относительно склонения по падежам (перед Виртом такой задачи не стояло). Только в этой грамматике будет возможно соответствие 1:1.

----------

Кроме объявления массивов склонение по падежам может возникать ещё в отношениях IS, IN. Надо над их "инвариантными" аналогами подумать.

-----

Кстати, вместо DIV можно бы использовать просто ":".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ключевые слова на родном языке
СообщениеДобавлено: Четверг, 12 Март, 2009 12:05 

Зарегистрирован: Среда, 04 Февраль, 2009 19:03
Сообщения: 25
Сергей Губанов писал(а):
Я как раз последние несколько дней размышлял над переводом служебных слов. Сообщаю до чего доразмышлялся (вдруг вам понравится?):

ЕСЛИ * СДЕЛАТЬ * {АЕСЛИ * СДЕЛАТЬ *} [ ИНАЧЕ * ] СДЕЛАНО
ПОКА * ВЫПОЛНЯТЬ * {АПОКА * ВЫПОЛНЯТЬ *} ВЫПОЛНЕНО
ПОВТОРЯТЬ * ОСТАНОВ *

PROCEDURE BEGIN [ RETURN ] END --> ЗАДАЧА РЕШЕНИЕ [ ОТВЕТ ] РЕШЕНО
BOOLEAN, TRUE, FALSE --> УТВЕРЖДЕНИЕ, ДА, НЕТ

MODULE [ IMPORT ] [ BEGIN ] [ CLOSE ] END --> МОДУЛЬ [ ИМПОРТ ] [ ЗАГРУЗКА ] [ ВЫГРУЗКА ] КОНЕЦ

Сергей Губанов писал(а):
Я как раз последние несколько дней размышлял над переводом служебных слов. Сообщаю до чего доразмышлялся (вдруг вам понравится?):

ЕСЛИ * СДЕЛАТЬ * {АЕСЛИ * СДЕЛАТЬ *} [ ИНАЧЕ * ] СДЕЛАНО
ПОКА * ВЫПОЛНЯТЬ * {АПОКА * ВЫПОЛНЯТЬ *} ВЫПОЛНЕНО
ПОВТОРЯТЬ * ОСТАНОВ *

PROCEDURE BEGIN [ RETURN ] END --> ЗАДАЧА РЕШЕНИЕ [ ОТВЕТ ] РЕШЕНО
BOOLEAN, TRUE, FALSE --> УТВЕРЖДЕНИЕ, ДА, НЕТ

MODULE [ IMPORT ] [ BEGIN ] [ CLOSE ] END --> МОДУЛЬ [ ИМПОРТ ] [ ЗАГРУЗКА ] [ ВЫГРУЗКА ] КОНЕЦ


Проблема с разными вариантами перевода о которых много спорят - на самом деле уникальная возможность сделать СИНОНИМЫ для некоторых операторов!!

Пример:
BOOLEAN, TRUE, FALSE --> ЛОГИЧЕСКИЕ (для описания переменных), ДА, НЕТ + синонимы -> ПРАВДА, ЛОЖЬ !!

По моему весьма желательно чтобы все (или почти все) переводы языков программирования на русский соответствовали единому стандарту. Т.е. чтобы в оператор PRINT (Бэйсик), printf (Си), Write (паскаль), MsgBox(VB) - в русских переводах обозначались ОДНИМ словом например "Сообщение", но уж не как не "печать" которое и в английском является рудиментом от эпохи матричных принтеров. Это значительно упростит обучение и работу в дальнейшем и станет сильной стороной ЯП с русскими операторами!!

Основа по моему д.б. 1С(широко распространён) и Зуевский перевод Си для проекта С11. Отличия от этих терминов по моему должны быть хотя бы обоснованы.


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

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


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

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


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

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