Описание
языка УТКА
Язык программирования «УТКА» является предельно простым (и, соответственно, слабым) подростковым объектно-ориентированным утиным языком программирования, предназначенным для изучения ключевых понятий современного программирования.
В множестве слов имеется операция конкатенации (составление двух слов в одно), она обозначается знаком +.
В множестве битов имеются операции:
Команда «имя = значение;» создаёт обозначение, например, команда
x = 5;
создаёт обозначение (x: 5) и после этой команды имена x и 5 взаимозаменяемы.
{имя1: значение1, имя2: значение2, … имяN: значениеN}
Имена не должны совпадать, а значения – произвольные объекты.
single = {x:},
pair = {x:, y:}.
Подстановка в пустые места после двоеточия произвольных объектов даёт уже полноценный объект, зависящий от подставленного значения. Эта зависимость называется конструктором объекта и обозначается тем же словом, что и класс:
single(объект) = {x: объект}.
pair(объект1, объект2) = {x: объект1,y: объект2}.
show, If, while, function, math, sin, cos, abs, tan, atan, atan2, exp, pow, random, round, sqrt, draw, system, line, rect, circle, triangle, fillrect, filltriangle, fillcircle, clear, Set, addu, hasu, delete, clearu, start, stop.
Примитивные объекты (примитивы)
Числом мы называем вещественные числа, слово – это произвольный упорядоченный набор символов, биты – это множество из двух символов {0, 1}, когда речь идёт о битах, символ 0 иногда обозначают через false, а символ 1 – через true.Вычисления
В множестве чисел имеются следующие операции:Название операции | Обозначение |
---|---|
Сложение | + |
Умножение | * |
Вычитание | - |
Деление | / |
Для целых чисел остаток от деления | % |
В множестве слов имеется операция конкатенации (составление двух слов в одно), она обозначается знаком +.
В множестве битов имеются операции:
Название операции | Обозначение |
---|---|
И | && |
ИЛИ | || |
Отрицание | ! |
Операция | Результат |
---|---|
1 && 1 | 1 |
1 && 0 | 0 |
0 && 1 | 0 |
0 && 0 | 0 |
Операция | Результат |
---|---|
1 || 1 | 1 |
1 || 0 | 1 |
0 || 1 | 1 |
0 || 0 | 0 |
Операция | Результат |
---|---|
! 1 | 0 |
! 0 | 1 |
Обозначения
Обозначение – это пара (имя: значение), где имя – слово, а значение – произвольный объект. Пока мы определили только примитивные объекты.Команда «имя = значение;» создаёт обозначение, например, команда
x = 5;
создаёт обозначение (x: 5) и после этой команды имена x и 5 взаимозаменяемы.
Объект
К числу объектов отнесём также конечные множества обозначений, записанных в фигурных скобках:{имя1: значение1, имя2: значение2, … имяN: значениеN}
Имена не должны совпадать, а значения – произвольные объекты.
Оператор show()
Оператор show() выводит в консоль значение выражения в скобках.Классы
Классы – это объекты, в которых на все значения обозначений заданы. Простейшие классы:single = {x:},
pair = {x:, y:}.
Подстановка в пустые места после двоеточия произвольных объектов даёт уже полноценный объект, зависящий от подставленного значения. Эта зависимость называется конструктором объекта и обозначается тем же словом, что и класс:
single(объект) = {x: объект}.
pair(объект1, объект2) = {x: объект1,y: объект2}.
Встроенные объекты
Язык УТКА содержит некоторое количество встроенных объектов, вот полный список:Объекты | Свойства и методы |
---|---|
show() | Функция вывода в консоль значения выражения в скобках |
math | sin(x) - синус x, |
cos(x) - косинус x, | |
abs(х) - модуль x, | |
tan(х) - тангенс x, | |
asin(х) - арксинус x, | |
acos(х) - арккосинус x, | |
atan(х) - арктангенс x, | |
atan2(y, x) - угол между осью x и направлением на точку (x, y), | |
pow(y, x) - возведение в степень yx, | |
random() - датчик случайных чисел в интервале (0, 1), | |
round(х) - округление числа x до ближайшуго целого, 0.5 округляется в большую сторону, | |
exp(х) - экспонента ex, | |
sqrt(x) - квадратный корень числа x, | |
draw | system(width, color) - рисование системы координат на всю графическую панель, |
line(matrix, width, color) - отрезок с концами в столбцах матрицы , | |
rect(matrix, width, color) - прямоугольник, | |
circle(vector, radius, width, color) - окружность, | |
triangle(matrix3, width, color) - треугольник, | |
fillrect(matrix, color) - закрашенный прямоугольник, | |
filltriangle(matrix3, color) - закрашенный треугольник, | |
fillcircle(vector, radius, color) - круг, | |
clear() - очистить графическую панель, | |
Любая коллекция | коллекция = Set(); - создание пустой коллекции, |
sss.addu() - добавление объекта, | |
sss.foreachu(){} - выполнения кода для всех элементов множества, | |
sss.hasu() - определение, есть ли конкретный объект в коллекции?, | |
sss.deleteu() - удаление объекта, | |
sss.clearu() - удаление всех объектов, | |
timer | Id = start(fun, ms) - запуск анимации, т.е. выполнение функции fun через каждые ms милисекунд. Id – идентификатор анимации, |
stop(Id) - остановка анимации. |
Зарезервированные термины
Все слова, используемые в качестве обозначений встроенных объектов или их свойств и методов, а также стандартных операторов, являются зарезервированными, и их не следует использовать для других целей. Вот полный список таких зарезервированных терминов:show, If, while, function, math, sin, cos, abs, tan, atan, atan2, exp, pow, random, round, sqrt, draw, system, line, rect, circle, triangle, fillrect, filltriangle, fillcircle, clear, Set, addu, hasu, delete, clearu, start, stop.