Здравствуйте товарищи. У меня есть просьба к людям которые разбираются в терминах (программирование) и граматике. Мной недавно был закончен перевод основной документации по Seccia Programming Language на русский язык, но поскольку я любитель в этом деле, в переводе обязательно найдутся какието ошибки. Я не программист и не считаю себя человеком с уникальной логикой и знающим на отлично русский язык, потому прошу всех кто может помочь в поиске ошибок в документе. Не охота позорится с "этим" переводом перед его французким создателей да и перед остальным миром вообще , так как этот перевод будет "висеть" на основной странице проекта. Помощь приму в любой форме (то-есть, вы можете просто указать какой термин нужно подправить\заменить, или в каком абзаце неправильное слово, либо можете скачать переведенный мной документ и его уже редактировать). Файл в формате .odt, читается без проблем Опеноффисом, на крайняк можно открыть Абивордом(у меня открывал его с "грешками"), или любой другой программой поддерживающей данный формат. Сама ссылка http://zalil.ru/33695450 на переведенный файл. Здесь ссылка на оригинал (на выбор англ. франц. и португ. языки), под надписью "Seccia Programming Language (PDF)" MaximTG
А эта среда работоспособна? Вроде же она сейчас на очень ранней стадии разработки. Закон Мерфи: "Если вы уверены, что ваш поступок встретит всеобщее одобрение, кому-то он обязательно не понравится".
Лично я бы исправил список возможностей на страице проекта на gcup
Полностью объектно-ориентированный язык программирования, с возможностью наследования и полиморфизмом. **Так лучше ИМХО **Второй пункт вообще не понял. Изменять не стал. Отсутствие зависимости от MFC. **Независимость - не кошерно)) Большое количество интегрированных объектов. **Мощных, интегрированных... что-то одно лучше убрать. Я решил, что мощных. Альфа-канал и неограниченное количество свободных окон. **Поправил)) Наличие многопоточности. **Так читабельнее Интеграция с DirectX. **ИМХО так лучше Режим пошаговой отладки. **Тут все хорошо Защищенный интерпретатор. Ваш код (и все переменные) зашифрованы, функции и параметры переводятся в числовой формат. **Разбил на два предложения, изменил последнее Возможность делать 2D игры с Direct3D спрайтами в оконном или полноэкранном режиме. **ИМХО
Сообщение отредактировал ctpz - Пятница, 24 Августа 2012, 16:37
Burlachenko, по уму надо бы в исходник заглянуть, но понадеялся на вашу совместную работу, работал уже с файлом МистерИкса. И да, ему же:
Quote (МистерИкс)
Мне это интересно в первую очередь самому, так как не исключено, что когда-нибудь стану работать корректором ;)
Неблагодарное занятие, но действительно немного интересное
Дальше всё идёт по порядку, как было в файле, чтобы было легче отслеживать. И да, в современном машинном письме, насколько я знаю, принято ставить пробел перед скобкой, Burlachenko пробегись по тексту, причеши. Швырял отредактированное зачастую большими предложениями, чтобы было понятнее место расположения ошибки (выделял её красным).
Язык имеет очень легкую типологию – целые числа, числа с плавающей точкой и символьные строки (текст), учитывает регистр и наделен простым синтаксисом.
Здесь text ссылается на объект File (чтение и запись в файлы). В таком виде переменная не ссылается на объект, следовательно, переменная нулевая (не имеет значения).
Теперь переменная text действительно указывает на новый объект File.
Для этого типа переменных невозможно назначить ссылки с помощью символа '=', в отличие от примера ниже:
Перед тем как мы продолжим, давайте определим термины, чтобы у нас было четкое понимание слов и выражений, используемых в остальной части этого руководства:
Ссылка (Reference): ссылка на экземпляр, содержащийся в переменной (цифровой адрес кодируется в 4 или 8 байтах, в зависимости от операционной системы (32 или 64 бит).
Для объектов Integer, Float, String и UniString процесс слабо отличается, поскольку невозможно создать экземпляры таких объектов без их объявлений по одной простой причине: переменная не возвращает ссылку на экземпляр
В приведенном выше примере мы имеем две переменные Integer, обрабатываемые языком, и, следовательно, два разных экземпляра объекта Integer.
Здесь мы сначала определим значение a, потом значение b (путем добавлением 5 к значению a). Наконец, мы добавляем одну единицу к значению b - получится 10+5+1, то есть 16.
Что до констант, если таковые содержатся в объекте, то в этом случае всего лишь пишется:
По правилам имена констант записываются в верхнем регистре, а части переменных - в нижнем регистре с приставкой 'm_'.
После того как мы задали наш новый объект и его части переменных, мы собираемся задать его функции. Заметим, что каждая функция имеет свои переменные - это локальные переменные, в отличие от частей переменных (сокращение для переменных, которые являются членами объекта). Функция (также называемая в некоторых языках методом) определяется с помощью ключевого слова function:
В дополнение к параметрам функции могут возвращать данные.
Примечание: как правило, объявленные переменные расположены перед кодом.
Но на практике вторая функция может быть функцией от другого объекта, как показано в следующем примере:
Для того чтобы избежать ненужной детализации, параметры могут быть необязательными.
Если параметр имеет значение по умолчанию, все параметры справа должны быть опциональны (то есть должны иметь указанное значение по умолчанию).
Примечание: для символов строки знак "+" используется для объединения.
перемещает биты влево перемещает биты вправо(ну, это просто кошмар)
Побитовые операторы подчиняются следующим правилам:
Приложение - это просто объект с именем Application.
Вы поняли, что Constructor будет первой функцией, вызванной вашим приложением.
Это бесполезно и нецелесообразно, поэтому активируйте такой метод только в случае крайней необходимости.
Давайте вернемся к объекту Application и добавим событие, связанное с нашим объектом Box под видом сообщения.
В итоге у нас есть событие OnChange в объекте Box и OnChange сообщение в объект Application. Очевидный вопрос: что из них вызывается? (а зачем так строка соскочила?)
До сих пор мы прошлись только по переменным, обрабатываемым языком с помощью ключевого слова new. Когда речь идет о "ручной" обработке экземпляров, необходимо новое ключевое слово: intercept.
Это ключевое слово не может быть применено к переменным, обрабатываемымязыком автоматически, потому что, в таком случае, перехваты также осуществляются автоматически.
массив, содержащий все игрушки
Внимание: массивы предназначены только для хранения ссылок на экземпляры.
Мы видели, что можно иметь часть переменной, уже включенную в базовый объект. В этом случае две переменных не конфликтуют. Но то же самое не относится к функциям, потому что функция, которая уже присутствует в базе объекта, становится виртуальной, если она также представлена в наследованном объекте.
С этого момента функция GetVolume присутствует в двух производных объектах от объекта Toy: в Ball и Cube.
Здесь мы подсчитаем количество дней в базе дат на основе 30-дневного месяца. Число 30 неточно.
Для дальнейшего упрощения мы можем добавить две константы, которые позволят узнать состав пиццы на основе собранных ингредиентов.
Теперь маленький нюанс: код не позволяет узнать конкретно, Неаполитанская ли у вас пицца, но он будет сообщать вам о наличии в пицце ингредиентов "Неаполитанской" и, возможно, о некоторых дополнительных ингредиентах.
Редактор отображает не только члены выбранного объекта, но и части их базовых объектов. Для того чтобы их визуально различать, слева от имени отображается другой значок.
14. СУБПРИЛОЖЕНИЯ
Приложение может быть скомпилировано в виде Субприложения: DLL файла с данным ему расширением .sub.
Субприложения являются самостоятельными: и повторно используемые в других приложениях, и похожие на расширения C++.
Чтобы использовать Субприложение с программным обеспечением, необходимо скопировать соответствующий файл в папку SubApplications перед началом работы в SECCIA. Субприложение может быть доступно из списка объектов категории Plugins.
Существуют некоторые ограничения по использованию Субприложений. Их имена всегда начинаются с префикса Sub_. Для вызова функций и событий можно использовать только объекты Integer, Float, String и UniString, так как не предоставляется возможности для доступа к объектам приложения (чтение или запись) внешне. Наследование также невозможно. И в заключение, к Субприложениюнельзя получить доступ для управления из диалогового окна редактора.
Вызываться могут только функции и события объекта Субприложения, если они соответствуют следующим правилам:
- Функции должны быть объявлены без ключевого слова hidden. - Параметры должны быть одного из перечисленных типов: Integer, Float, String или UniString.
Функции и события расширений могут использовать только Integer, Float, String и UniString объекты, возможность получить доступ к объектам приложения извне (для чтения или записи) отсутствует.
В отличие от Субприложений, контроль над расширениями может быть доступен из диалогового окна редактора. Именно в таком случае, расширение производится от объекта Control.
Во время компиляции исполняемого файла или в тестовом режиме язык SECCIA позволяет исключать отдельные строки кода, что выполняется очень просто с помощью одного из нижепредставленных специальных ключевых слов.
Но здесь речь идёт уже не о чувствительности к регистру. Чувствительность к регистру используется для устанавливания различий между типами элементов.
Для быстрой идентификации события мы должны использовать префикс 'On'.
Локальная переменная может иметь такое же имя, как у части переменной, не создавая при этом конфликтов. Часть переменной, которая использует функции, становится в некоторых случаях недоступной.
Burlachenko, надеюсь, этими нашими совокупными усилиями мы таки избавим тебя от мирового позора
burlachenko, раз уж ты переводом занимаешься, может еще чтонить переведешь(после сеции, разумеется)), как бы есть замашки на определенный перевод, но как я не пытался знаний моих в англ не хватает, перевод для языка "lua" пример могу кинуть в личку, статья пока еще не полностью написана, но пишется нашими англоязычными братьями)
Сообщение отредактировал arrow25 - Суббота, 25 Августа 2012, 00:54