shoo это не доказательство а результат собственного опыта по использованию русских слов в именах переменных ) который убедительно (для меня лично )) доказывает что полное написание русских слов намного длиннее, а абревиатуры и сокращения на русском горздо менее читаемы, чем на английском. Возможно тут играет роль что сокращения чужого языка проще воспринимать как термины, поскольку с ними нет других привычных ассоциаций, но факт остаётся фактом - EM_EXGETSEL нагляднее ) AlexCab тут где-то пробегал проект мультязыкового компилятора, которому можно указать предпочитаемый язык ключевых слов, там даже украинский был ) Имхо это лучше поскольку позволяет быстро всё перенастроить как хочется, но с именами переменных и функций всё равно проблемы будут, хотя можно обязать программера указывать им перевод на все поддерживаемые компиляторм языки ))
AlexCab Каковы преимущества в этом плане перед C++? Это возможно и на С++, не обязательно делать новый язык Код (Text): class C { void *p_; size_t s_; public: C(void *pv, size_t ofs, size_t size) : p_((char*)pv + ofs), s_(size){} С *operator = (void const *pv) { memcpy(p_, pv, s_); return this; } // Другие операторы ... }; Пример использования: Код (Text): void *v1, *v3; size_t v2; C(v3, v2, 16) = v1; Компилятор, кстати, сгенерирует для этого выражения более эффективный код, чем тот асмовский, что Вы привели.
на самом деле причины наглядности этого сокращения более просты: 1.оно составлено в соответствии с известной нам системой 2.оно встречалось и употреблялось нами несколько чаще, чем Плч_смщ_фнкч_окн 3.в программе с ключевыми словами из английского языка константы и переменные на английском языке смотрятся более естественно - точно так же, как в языке с ключевыми словами из русского языка более естественно смотрятся наименования переменных и констант на русском языке. менее красиво выглядит смешивание языков, поэтому не могу согласиться, что вот это хорошо: . причем для этого совсем не нужно что-либо сочинять - фасм позволяет использовать нац. символы в именах переменных и констант. та же ситуация возникает и при вызове API из программ на подобных языках. причем перевод мнемоник инструкций процессора или названий API функций не только объемный труд, но и посягательство на копирайт, и вряд ли имеет смысл, так как даже в случае реализации отрезает пользователя от существующей документации, сниппетов и пр., а вести "двойную бухгалтерию" крайне накладно. но изобретение подобных языков интересно не только с точки зрения программирования, но и с точки зрения лингвистики, осмысленного обучения программированию детей и пр. естественно, это нужно делать так, чтобы наглядность действительно проглядывалась. экономические программы вроде 1С имеют русскоязычный скриптовый язык потому, что людям, которые оперируют проводками, платежками, фамилиями, должностями и мыслят по-русски (не только бухгалтерам), удобнее видеть и ключевые слова на русском - опять же из соображений несмешения языков. ведь проще заменить if на если, чем изучать английские аналоги ВСЕХ бухгалтерских терминов, или пользоваться такими монстрами, как zvit, sklad или familija (это еще даже и не монстры вовсе причем, главная болезнь таких языков - пословный перевод. разве можно догадаться, что это за фраза на языке 1С: Код (Text): ДЛЯ 7 ПО 17 ЦИКЛ ? как будто нельзя было перевести FOR ... TO как ОТ ... ДО. в общем, в этом вопросе множество нерешенных проблем, которые никогда не будут решены, если не пытаться их решать
Был Веселовский "Мастер" или как его там, была Рапира (для школьников), автокод "Наири", кажется, что-то для "Мир" и "Проминь" (не помню, за давностью) - все они, к счастью, сдохли.
Английский язык более структурирован и технически эффективен чем русский. Простой пример: "Он пошёл". "Она пошла". Какую смысловую нагрузку несёт вариация глагола в этих предложениях? Мало того, что никакой (дублируется ф-ция местоимения), так ещё и вариация эта "неструктурная". В английском, конечно, тоже есть подобные "ляпы" (неправильные глагоды и т.п.), но их намного меньше чем в славянских языках.
Не ринимайте близко к серцу, за время пока я пишу на РС/Б у меня сложился такой стиль именования. Сначала я использовал полные слова например "Смещение 0 дсл", затем сокращённые версии "Смещн 0 дсл", сейчас это для данных три символа на слово через подчёркивание, для подпрограмм четыре например "Смщ_стр 0 дсл" - Смещение_строки, "ФУНКЦИЯ Плчт_смщн_стрк" - Получить_смещение_строки. Это чёрт возьми правда)) Тагже как это делают во всех языках - сокращения. Апсолютно прав, когдато я хотел перейти с асм на С, открыл исходник, посмотрел, и закрыл Скорей всего так, но повторюсь, это дело из тех дел когда нечего делать Нельзя изменить только ключевые слова ("ЦИКЛ","ФУНКЦИЯ"...), но они коротки и совпадают по смыслу с прочими языками программирования, ну а имена пожно задавать любые ("Плч_смщ_фнкч_окн" - имя асм макроса). Это так! Чем я и занимаюсь (пока незкончина даже первая версия, это пока почти голая иделя). Дело привычки Не считаю что язык (разговорный) в программиронии так уж и важен (если конечно проэкт не интернациональный), я выбрал руский изза привычки (на асм писал имена и коментарии на нём). Нечто подобное только на асм есть в пред верии (РС/А - полностью построен на макроссах FASMа). Немагу не согласится Насчёт этого врядли, ситаксис получился чертовски сложным В русском больше слов и понятий, а заначит и возможностей (Для описания или именования, например). И под конец вопрос по существу Будет в следуйщей версии (уже реалезовано, сейчас как раз идёт работа над поддержкой библиотеками объектов(наподобии DLL)), для инетересующихся могу выложить мануал к след версии.
AlexCab я бы, например, не хотел бы видеть новый язык, который построен на грамматике С заменой английских ключевых слов на русские - несмотря на свою популярность и возможности, лингвистически С, мягко скажем, далек от идеала тем более, "просто аналог С" не выживет однозначно. очевидно, ниша для такого языка - верхний язык программирования какой-нибудь системы, доступный пользователю, какой-либо целевой язык, обучение программированию для тех, кто еще (или уже) не знаком с английским языком, и т.п. в разработке грамматики такого языка нужно обратить внимание на существующие языки в равной степени и взять из каждого лучшее - ведь это новый язык, на котором еще нет кандалов обратной совместимости, поэтому не следует сразу влезать в чужие кандалы
Как я понял весь язык полностью основан на макросах асма? В принципе, это интересно, но а как на счет собственного парсера, компилятора? Для начала, транслировать код PC/A в промежуточный код, например, в ассемблер, потом уже компилировать, линковать fasm'ом? или как оно сделано?
Barbos Неплохой метод. У моего IDE такой же принцип: с псевдо-языка - генератор кода на FASM. Ну и далее, FASM-ом, естественно.
AsmGuru62 можно и удлинить путь. например ACK генерит с неск яву п-код, который может быть сразу проитерпретирован. Есть рантайм тоже в п-коде (вообще все здорово на нет похоже, но на 20 лет раньше и в 100 раз худее). Далее всю эту петрушку можно соптимизировать (несколько оптимайзеров) и/или перегнать в асм (АТТ) или сразу в бинарник (поддержка 386 есть, а РЕ - нету). Вобщем интересная штука (компилер ансиС (есть еще пас, модула2, оккам, чтототамеще и, конечно, васик) -> п-код ~ 160Kb, пипхол и перегощик в асм - по ~50. качество оптимизации - среднее). Дока ко всему есть и довольно неплохая - дока по п-коду с описанием работы интерпрера == 88 стр мелким (5) шрифтом. Сам-же новый парсер хоть на русском, хоть на марийском в коко намутить - пара дней. Ну, неделя. Главное продуманная и нужная концепция (#31).
Не судюба Да основная концепция позаимствована у СИ но РС/Б далеко не аналог СИ. Уточню весь язык РС/А это, предадущая версия (http://rs-b.nm.ru/Rs_a.htm), у РС/Б свой транслятор РС/Б --> ASM, ну а асемблерный листинг компилируеся FASMом (http://rs-b.nm.ru/Dn_ld.htm).
Обдумываю след. версию, вот набросал структуру программы и несколько заметок(в атаче), основная идея модульность конструкции программы, то есть приложение состоит из самостоятельных, взаимодействующих модулей, имеющих определённый интерфейс, но по сути являющимися BlackBox, что-то типа COM но проще. Ваше мнение по поводу такого подхода? PS.Тема в HEAP, не стесняемся в выражении мысли!