Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2015, 23:37   #21
Avatar-Z
Пользователь
 
Аватар для Avatar-Z
 
Регистрация: 03.09.2015
Сообщений: 63
По умолчанию

Цикл WHILE в языке SCOL

Схема записи такая:
while <условие> do <инструкции>

Код:
while <условие> do
(
    инструкция_1;
    инструкция_2;
    инструкция_3;

    инструкция_n;
);
Если условие ложно (false) изначально, то блок инструкций ни разу не выполнится.

Пример:

Код:
fun main ()=
    _showconsole;

    let 10 -> counter in
    while (counter >= 0) do
    (
        _fooId counter;
        // не забывайте увеличивать или уменьшать счетчик, иначе цикл может стать бесконечным
        set counter = counter-1
    );
    0;;
Цикл FOR в языке SCOL

SCOL пока ещё не поддерживает цикл for.
Однако, в нестандартной библиотеке Syspack можно найти функции, имитирующие некоторые варианты цикла for:
forI
forList
forTab

Переключатель SWITCH в SCOL

switch / case пока не поддерживается в SCOL.
Вы можете использовать что-то вроде этого:

Код:
if <условие_1> then
    ...
else if <условие_2> then
    ...
else if <условие_N> then
    ...
else
    ...;
Avatar-Z вне форума Ответить с цитированием
Старый 28.11.2015, 00:22   #22
Avatar-Z
Пользователь
 
Аватар для Avatar-Z
 
Регистрация: 03.09.2015
Сообщений: 63
По умолчанию

[В вики-учебнике по SCOL есть ещё некоторые сведения об этом языке программирования, но их я уже объединю с переводом из основного учебника.

Единственное, что ещё оттуда (из вики) отдельно переведу - это способ подсветки синтаксиса конкретно для языка SCOL в программе Notepad++.]



Делаем из Notepad++ подобие среды разработки для программирования на SCOL

Все инструкции привожу для Notepad++ версии 6.8.5 (операционная система Window 8 x64)

Подсветка синтаксиса

Открываем папку, находящуюся по этому пути:
C:\Users\имя_пользователя\AppData\R oaming\Notepad++

Создайте файл userDefineLang.xml (если такого нет по умолчанию). Создаётся файл очень просто - создаёте обычный текстовый документ, потом меняете название и сразу же прописываете расширение .xml

Открываем файл и вписываем туда следующий код (делю его на две части, так как в одном сообщении не помещается):

Код:
<NotepadPlus>
    <UserLang name="Scol" ext="pkg" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">03/* 04*/ 00// 01 02</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1"></Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">fun typeof typedef var struct proto defcom defcomvar ;;</Keywords>
            <Keywords name="Keywords2">set let -&gt; &lt;- mutate in</Keywords>
            <Keywords name="Keywords3">if else then while do</Keywords>
            <Keywords name="Keywords4"></Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00&apos; 01 02&apos; 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
Avatar-Z вне форума Ответить с цитированием
Старый 28.11.2015, 00:27   #23
Avatar-Z
Пользователь
 
Аватар для Avatar-Z
 
Регистрация: 03.09.2015
Сообщений: 63
По умолчанию

Код:
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="FF8040" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="800000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>
Всё. Открываем Notepad++, в меню Синтаксисы находим Scol, и выбираем его. Теперь все программы на SCOL будут отображаться с правильной подсветкой:

Avatar-Z вне форума Ответить с цитированием
Старый 28.11.2015, 00:50   #24
Avatar-Z
Пользователь
 
Аватар для Avatar-Z
 
Регистрация: 03.09.2015
Сообщений: 63
По умолчанию

Автозавершение кода

Скачиваем файл scol_api_notepadpp.7z и распаковываем файл scol.xml в папку, находящуюся по этому пути:
C:\Program Files (x86)\Notepad++\plugins\APIs
Если Windows 32-х битная, то путь должен быть таким:
C:\Program Files \Notepad++\plugins\APIs

Открываем Notepad++. Выбираем в меню Опции > Настройки...
В открывшемся окне выберем вкладку Автозавершение:



И настроим так, как удобно для работы.

Теперь при выборе синтаксиса Scol наш Notepad++ будет подсказывать нам варианты функций (и слов), название которых мы ещё не полностью ввели:

Avatar-Z вне форума Ответить с цитированием
Старый 28.11.2015, 12:03   #25
Avatar-Z
Пользователь
 
Аватар для Avatar-Z
 
Регистрация: 03.09.2015
Сообщений: 63
По умолчанию

Отображение списка функций

Ещё одной возможностью, облегчающей программирование на языке SCOL с помощью Notepad++, является отображение списка функций, задействованных в нашем коде.

Для этого делаем вот что:

1. Заходим снова в папку, находящуюся по этому пути:
C:\Users\имя_пользователя\AppData\R oaming\Notepad++

2. Открываем файл functionList.xml

3. В секцию associationMap добавляем пункт:
Код:
<association userDefinedLangName="Scol" id="scol_function"/>


4. В конец того же файла, перед тегом </parsers> вставляем следующий код:
Код:
<parser id="scol_function" displayName="Scol_source" commentExpr="((/\*.*?\*)/|(//.*?$))">
                <function
                    mainExpr="^[\t ]*fun[\s]+\w+\(" 
                    displayMode="$functionName">
                    <functionName>
                        <nameExpr expr="(?!(if|whille))[\w_]+[\s]*\("/>
                        <nameExpr expr="(?!(if|while))[\w_]+"/>
                    </functionName>
                </function>
            </parser>


5. Сохраняем файл и закрываем.

6. Открываем Notepad++, записываем какой-либо код на SCOL, и в меню Вид ставим галочку перед командой Список функций.

Справа увидим список функций:

Avatar-Z вне форума Ответить с цитированием
Старый 06.12.2015, 23:20   #26
Avatar-Z
Пользователь
 
Аватар для Avatar-Z
 
Регистрация: 03.09.2015
Сообщений: 63
По умолчанию

Продолжаю переводить основной учебник по языку SCOL

Но сначала поясню пару моментов. Процитирую свои наблюдения, записанные некоторое время назад и прокомментирую.

Цитата:
Сообщение от Avatar-Z Посмотреть сообщение

1. Итак, язык SCOL был создан французской компанией Cryo Networks. Расшифровывается аббревиатура языка так: Standard Cryo On Line. Деятельность компании направлена исключительно на разработку и публикацию онлайн-приложений, в том числе [или только?] многопользовательских 3D-игр, в числе которых такие как Deo Gratias, FireTeam,Treasure Hunt 2001, Mankind и Scotland Yard.

Пока не могу сказать с уверенностью, но похоже, что компания приказала долго жить, так как на их официальном сайте http://cryo-networks.com новости последний раз обновлялись где-то в сентябре прошлого (2014) года. Может это и не так, но ссылка на виртуальную машину с языком SCOL у них больше не работает. Точнее внешние ссылки, ведущие на загрузку машины с их сайта приводят к надписи, что информация not found. Но язык, а соответственно и виртуальная машина постоянно обновляется и выкладывается сюда http://www.scolring.org/rsc/scol_plugin.exe

А это скорее всего означает, что у языка теперь другие хозяева, либо I-maginer (компания-разработчик движка OpenSpace3D), либо свободное сообщество почитателей языка, либо кто-то ещё.
Компания Cryo Networks действительно почила где-то в начале 2000-х, вроде в 2002 году. После этого язык SCOL cтал распространяться под одной из лицензий Open Source, но, если не ошибаюсь - пока SCOL получил свободную лицензию, между разработчиками происходили какие-то трения. В общем, если кому интересно, вначале указанной страницы читаем (на французском) историю "освобождения" SCOL http://www.irizone.net/irizone5/scol...?article=libre

В настоящее время язык SCOL развивается благодаря компании I-maginer, в стенах которой также разрабатывается и 3D-движок OpenSpace3D.
Цитата:
Сообщение от Avatar-Z Посмотреть сообщение

2. На будущее (для чистового перевода). Любая программа на SCOL должна находиться там, где находится виртуальная машина SCOL.
А точнее по этому пути C:\Program Files\Scol Voyager\Partition_LockedApp При этом диск не обязательно должен быть C:\ и не обязательно системный.
Также можно расположить программу ещё в этой папке C:\Users\Имя_пользователя\Documents \Scol Voyager\Partition_LocalUsr
Здесь диск тоже не обязательно должен быть C:\ но обязательно системный

[точно не знаю, позволяет ли виртуальная машина при установке создавать дополнительный каталог не в папке Документы, а где либо ещё. Пока такой возможности не нашёл. Также не знаю, позволяет ли Windows переназначить путь папки Документы на несистемный диск.]
Наиболее правильно будет, если пользовательская программа будет находиться именно по второму пути: C:\Users\Имя_пользователя\Documents \Scol Voyager\Partition_LocalUsr
Но как понял, корневой диск может не только иметь букву, отличную от C:\, но ещё и не обязательно должен быть системным. Для этого папку Документы можно перенести на любой другой диск. Как это делается, здесь не буду рассказывать - в интернете есть полно информации по этому поводу.

Теперь перехожу к переводу учебника.

2. Hello World

2.3. Третья версия

Итак, папка с нашей программой должна находиться по этому пути: C:\Users\Имя_пользователя\Documents \Scol Voyager\Partition_LocalUsr
Вспоминаем, что называется эта папка Moya_pervaya_programma.

Для третьей версии программы "Hello World" позаботимся о том, чтобы в файле Hello_Mir.scol был такой код:

Код:
_load "Moya_pervaya_programma/Hello_Mir.pkg"
main
А в файле Hello_Mir.pkg запишем уже код основной программы:

Код:
fun _end(a,b)= _closemachine;;
fun _resize(a,t,x,y)= _SIZEtext t x-2 y-2 1 1;; 

fun main()=
	let _CRwindow _channel nil 150 150 400 300 WN_MENU|WN_MINBOX|WN_SIZEBOX "Hello World"
	-> win in
	let _CRtext _channel win 1 1 398 298 ET_VSCROLL|ET_HSCROLL "Hello World"
	-> text in
	(_CBwinDestroy win @_end nil;
	_CBwinSize win @_resize text
	);;

Последний раз редактировалось Avatar-Z; 06.12.2015 в 23:23.
Avatar-Z вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод ячейки на Русский Юнлинг Microsoft Office Excel 7 04.10.2015 20:16
OpenSpace3D - перевод хэлпа на русский Avatar-Z Софт 18 06.09.2015 23:51
Перевод программы на русский язык. shivo Фриланс 1 05.01.2011 15:20
перевод на русский Ensoph Общие вопросы Delphi 3 19.05.2008 10:09