Scriptol: различия между версиями

Содержимое удалено Содержимое добавлено
м замена категории на шаблон для работы полки, removed: Категория:Языки программирования с помощью AWB
Строка 20:
=== Интерпретация программы Scriptol ===
Команда: <br />
si [опции] исходный файл
 
Если обнаружены ошибки, они отображаются, и программа не выполняется.
 
Опции интерпретатора:
Строка 33:
=== Компиляция программы Scriptol в PHP ===
Под Windows, команда: <br />
solp [Опции] исходный файл
 
Если файл уже существует, программа непосредственно запускается, иначе она компилируется, и если нет ошибки, то выполняется.
Пока исходник имеет ошибки, команда "solp исходный файл" компилирует его снова. Если исходный файл является HTML-страница, то не выполняется после компиляции.
 
Под Linux, команда для компиляции:
Строка 43:
php -q sourcefile.php
 
Параметры компилятора Scriptol-PHP:
 
none: запустить Scriptol-файл, скомпилировать его при необходимости.
Строка 58:
=== Компиляция программы Scriptol в исполняемый файл ===
Команда: <br />
solc [опции] mainfile
 
Основной файл является тот, который имеет main() функцию. Зависимость рассчитываются компилятор, который знает, что компилировать или нет.
 
Опции Scriptol-C++ компилятора:
 
none: компиляции только то, что должны быть скоспилировано.
Строка 80:
== Особенности языка ==
 
Дизайн языка Scriptol был сделан со строгими методами, а не эмпирически, добавляя особенности время от времени, когда это необходимо. Были определены семь правил дизайна и ничего не включалось в язык, если не удовлетворяло всем правилам. Я решил, как первое правило, что язык должен быть простым и естественным, второе, синтаксис должен подавить все причины ошибок программиста.
 
Scriptol может быть определен как:
Строка 96:
* выражения закончиваются концом строки.
* a same operator for ranges, slices, splices... -один и тотже оператор для диапазонов, slice, splice ...
* похожий синтаксис для всех структур.
 
Чувствительный к регистру:
* Вы не можете использовать любое слово как в нижнем и верхнем регистре.
* Ключевое слово должно быть в нижнем регистре.
* Идентификаторы чувствительны к регистру, но вы не можете переопределить идентификатор с другим регистром.
 
Идентификаторы:
* размером до 255 символов или менее в соответствии с целевым языком.
* нижний или верхний регистр.
* начинаются с буквы, продолжаются с буквы, подчеркивания и цифр.
 
Числа:
* целое - 32 бита. (Как "int" в C).
* натуральное - 64-битные без знака.
* вещественное - 64-битные числа с плавающей точкой. ("double" в С).
 
Тип:
* типы с использованием методов.
 
Сборщик мусора:
* автоматическое управление памятью, нет необходимости выделения и освобождения памяти.
 
Объектно-ориентированное:
Строка 124:
* единичное наследовани.
* перегрузка методов (только в Scriptol C++ на данный момент).
* конструкторы. Нет деструкторов.
 
XML-ориентированный:
* XML-документы могут быть включены в скрипт Scriptol. XML является структурой данных языка.
* экземпляры XML-документов.
 
=== Чистый синтаксис ===
Строка 137:
{
printf("%d\n", x);
}
 
 
Scriptol синтаксис:
Строка 164 ⟶ 163 :
/if
 
===Типы данных===
 
В 1970-х годах, С и Паскаль изобрели типы, которые были связаны с аппаратнами ограничениями: char, long, short, char *, float и т.д...
Строка 171 ⟶ 170 :
 
=== Выражение ===
Выражение заканчивается точкой с запятой или концом строки.
 
Когда выражение превышает длину строки, продолжается со следующей строки при условии, что выражение заканчивается запятой или оператором. Нет символа продолжающего выражение со следующей строки.
 
Несколько операторов на одной строке, разделяются точкой с запятой. Это предусмотрено в основном, чтобы оставить свободу для программистов, но может быть полезно, если Вы вставите Scriptol кода в HTML-страницы и редактор объединяющий строки!
 
=== Комментарий ===
Строка 181 ⟶ 180 :
Одна строка комментария начинается с символа «`», текст пропускается до конца строки.
«``» делает комментарий стойким в сгенерированном коде, когда скрипт Scriptol компилируется в другой язык, такой как C++ или PHP.
 
` это строка комментария
Строка 187 ⟶ 186 :
`` это стойкий комментарий
 
Комментарий «//» с языка С++ также признается строкой комментария.
 
Несколько линий комментария начинается с «/*» и заканчивается «*/». В прилагаемом примере текст пропускается.
 
Пример:
 
/*
Строка 206 ⟶ 205 :
{
if(x[i] == test) std::cout << test << " found" << std::endl;
}
 
могут быть заменены одним и ясным Scriptol выражением.
Строка 213 ⟶ 212 :
 
=== Символы ===
Язык Scriptol не использует символ для вещей, которые концептуально отличается.
 
* "+" "-" "*" "/" арифметические операторы которые Вы знаете.
Строка 243 ⟶ 242 :
=== Идентификаторы и ключевые слова ===
Идентификаторы это имена переменных, функций или объектов. Они начинаются с буквы, а затем буквы, знак подчеркивания и цифры.
 
Они не чувствительны к регистру, но вы не можете дать двум различным объектам имена, один в верхнем регистре, а другой в нижнем регистре.
Строка 254 ⟶ 253 :
print x + (y / 2)
 
Текстовым редактором, включенных в архив установочного пакета, или любым другим текстовым редактора, введите:
 
print "Hello world"
Сохраните его в файл hello.sol.
 
Выберите команду "interpreter" или "interpret" в меню "Tools", "Hello world" будет отображено.
 
Если вы работаете в командной строки Windows (MS-DOS в Windows или консоли под Unix), просто введите:
 
si hello или
solp hello
 
Вы также можете построить и запустить исполняемый файл командами:
 
solc -bre hello построить hello.exe или hello под Unix
Строка 274 ⟶ 273 :
 
== Внедрение кода Scriptol в HTML страницу ==
Для внедрения Scriptol кода в HTML-документ, он должен быть обрамлен в следующие теги:
 
<?sol
Строка 280 ⟶ 279 :
?>
 
Если вы используете HTML редактор, который не признает эти маркеры, используйте вместо них:
 
<script language="scriptol">
Строка 286 ⟶ 285 :
</script>
 
Возможные варианты: 'scriptol', "scriptol" или scriptol.
 
Внутри этих маркеров, последняя строка сценария должна заканчиваться точкой с запятой или конецом строки (до символа ?>).
 
Простейший способ использовать сценарий Scriptol является вызов его из страниц PHP, который содержит include заявление:
Пример:
 
<?php
Строка 301 ⟶ 300 :
sol -w count.sol
 
Тестирование HTML страниц
 
Если у вас установлен сервер Apache или Xitami или Windows Server на компьютере, и настроен PHP расширения, ваш код будет обрабатываться по Сети, один раз, как составленый на PHP.
Otherwise you have to redirect the output of the script into a html file, "test.html" for example, with two commands that produce mypage.php, and execute the PHP code: В противном случае вы должны перенаправить вывод скрипта в HTML-файл, "test.html", например двумя командами, которые создают mypage.php, и выполняют код PHP:
 
solp -w mypage php mypage.php > test.html
Строка 316 ⟶ 315 :
If x = 5
print "equal"
/if
 
 
Внедрение альтернативны "else": если условие ложно, еще один список выражений может быть обработаны.
Строка 325 ⟶ 323 :
else
print "not equal"
/if
 
 
===Однострочная структура===
Строка 332 ⟶ 329 :
Когда тело структуры является лишь одним выражением, синтаксис может быть сокращен до одной строки.
 
If x = 5 print x
 
 
Если выражение не является командой, такой как "print", "break", "continue" и т.д..., ключевое слово "let" не требуется.
 
If x = 5 let y + 1
 
 
===Компзитный If===
Строка 351 ⟶ 346 :
/if
 
==For In==
 
 
===Общий синтаксис===
Строка 360 ⟶ 354 :
for int x in 0 .. 10
print x
/for
 
 
===Однострочная структура===
Строка 367 ⟶ 360 :
Если тело структура только один оператор, используется упрощенный синтаксис.
 
for int x in 0 .. 10 print x
 
 
===For в списке===
Строка 375 ⟶ 367 :
 
text hello = "hello"
for text t in hello print t
 
 
array a = { 1, 2, 3 }
Строка 388 ⟶ 379 :
print x
x + 1
/while
 
 
Чтобы инкрементировать переменную x, Scriptol использует выражение X + 1.
Это не работает в C и других языках.
 
 
===Бесконечный цикл в С===
Строка 416 ⟶ 405 :
x += 1;
}
 
 
==Обход==
 
 
===Общий синтаксис===
Строка 428 ⟶ 415 :
a[] * a[]
print a[]
/scan
 
 
текущий элемент обозначается пустым.
Строка 437 ⟶ 423 :
scan a, b
print a[] + b[]
/scan
 
===Обход функцией===
Строка 443 ⟶ 429 :
Вы можете применить предопределенную функций. Аргумент функции бедет элемент массива.
 
array a = {1,2,3,4 }
 
void fun(number x)
print x * x
return
 
scan a by fun
 
scan a by fun
 
Если вы используете несколько массивов, число аргумента функция должна быть числом массива.
Строка 467 ⟶ 452 :
... some statements ...
return speed
/class
 
 
===XML===
Строка 481 ⟶ 465 :
Clara, Charly, Corinna, Cyril, Cecilia
/passengers
/xml
 
 
===Использование XML===
Строка 508 ⟶ 491 :
myCar.load("document.xml") ` loading an external xml document
 
Car.load("document.xml") ` you can use directly the xml class itself
 
 
===Итератор===
Строка 521 ⟶ 503 :
let demo.inc()
 
 
[[Категория:Языки программирования]]
 
[[Категория:{{Темы|Языки программирования]]}}