K++ — различия между версиями
Korvin (обсуждение | вклад) м (→Введение) |
Korvin (обсуждение | вклад) м (→Синтаксис языка) |
||
(не показаны 22 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
__NOTOC__ | __NOTOC__ | ||
[[Изображение:head.png]] | [[Изображение:head.png]] | ||
+ | |||
+ | По мере разработки платформы Диптаун, нами была осознана необходимость создания удобного и универсального средства для управления платформой. Изначально, мы хотели реализовать ее так, чтобы платформа была максимально гибкой и расширяемой; чтобы она позволяла вносить изменения практически в любую ее часть без необходимости пересмотра и переработки системы в целом. Неотъемлемой частью существующей реализации является [[виртуальная машина Gide]], которая берет на себя большую часть задач по управлению различными частями платформы и организации их взаимодействия. Gide применяется практически во всех задачах: начиная от генерации процедурных текстур и до пользовательского интерфейса; от управления аватарами и до программирования объектов виртуального пространства. | ||
+ | |||
+ | Однако, программирование на Gide это довольно тяжелое и утомительное занятие, как и на любом другом низкоуровневом языке. В связи с этим, было принято решение написать поверх него язык высокого уровня, который позволял бы писать программы, сочетающие в себе удобство языка высокого уровня с гибкостью Gide. В результате получился язык, документацию по которому вы сейчас читаете. | ||
+ | |||
+ | К++ это язык, написанный нами с нуля, на основании наших представлений о том, каким должен быть скриптовый язык. Он в полной мере интегрирован с самой платформой и написан на ее основе. Поскольку платформа Диптауна не зависит от ОС, реализация К++ так же получилась кроссплатформенной. | ||
+ | |||
+ | |||
+ | Исключительными правами на язык К++ и на документацию к нему обладают его авторы. Копирование, распространение, а так же использование в других целях программ, текстов документации или любых их частей возможно только по письменному разрешению авторов. | ||
+ | * © Дмитрий Кашицын, 2007-2009 | ||
+ | * © Дмитрий Роот, 2007-2009 | ||
+ | |||
== Введение == | == Введение == | ||
Строка 27: | Строка 39: | ||
## [[Введение, или краткий обзор#Использование блоков|Использование блоков]] | ## [[Введение, или краткий обзор#Использование блоков|Использование блоков]] | ||
## [[Введение, или краткий обзор#Расширение классов|Расширение классов]] | ## [[Введение, или краткий обзор#Расширение классов|Расширение классов]] | ||
− | # [[Переменные]] | + | # [[Переменные]] |
## [[Переменные#Понятие переменной, тип переменной|Понятие переменной, тип переменной]] | ## [[Переменные#Понятие переменной, тип переменной|Понятие переменной, тип переменной]] | ||
## [[Переменные#Статическая типизация на примере C++|Статическая типизация на примере C++]] | ## [[Переменные#Статическая типизация на примере C++|Статическая типизация на примере C++]] | ||
Строка 40: | Строка 52: | ||
## [[Константы#Константные объекты|Константные объекты]] | ## [[Константы#Константные объекты|Константные объекты]] | ||
## [[Константы#Константные функции|Константные функции]] | ## [[Константы#Константные функции|Константные функции]] | ||
− | |||
− | |||
# [[Замечания об эффективности кода]] | # [[Замечания об эффективности кода]] | ||
## [[Замечания об эффективности кода#О пользе типов|О пользе типов]] | ## [[Замечания об эффективности кода#О пользе типов|О пользе типов]] | ||
Строка 49: | Строка 59: | ||
== Синтаксис языка == | == Синтаксис языка == | ||
+ | # [[Классы и объекты]] | ||
+ | ## [[Классы и объекты#История развития ООП|История развития ООП]] | ||
+ | ### [[Классы и объекты#Возникновение языков программирования|Возникновение языков программирования]] | ||
+ | ### [[Классы и объекты#Появление ассемблера|Появление ассемблера]] | ||
+ | ### [[Классы и объекты#Концепция языка высокого уровня|Концепция языка высокого уровня]] | ||
+ | ### [[Классы и объекты#Структурное программирование|Структурное программирование]] | ||
+ | ### [[Классы и объекты#Объектно-ориентированное программирование|Объектно-ориентированное программирование]] | ||
+ | ## [[Классы и объекты#Понятие класса|Понятие класса]] | ||
+ | ## [[Классы и объекты#Понятие объекта|Понятие объекта]] | ||
+ | ## [[Классы и объекты#Наследование|Наследование]] | ||
+ | ## [[Классы и объекты#Методы|Методы]] | ||
+ | ### [[Классы и объекты#Статические методы|Статические методы]] | ||
+ | ### [[Классы и объекты#Конструкторы|Конструкторы]] | ||
+ | ### [[Классы и объекты#Конструкторы|Абстрактные методы]] | ||
+ | ## [[Классы и объекты#Поля|Поля]] | ||
+ | ## [[Классы и объекты#Свойства|Свойства]] | ||
+ | ## [[Классы и объекты#Расширения|Расширения]] | ||
# [[Объявление переменных и констант]] | # [[Объявление переменных и констант]] | ||
# [[Выражения]] | # [[Выражения]] | ||
## [[Выражения#Арифметические операции|Арифметические операции]] | ## [[Выражения#Арифметические операции|Арифметические операции]] | ||
− | |||
## [[Выражения#Вызов функций|Вызов функций]] | ## [[Выражения#Вызов функций|Вызов функций]] | ||
− | # [[Операторы]] | + | ## [[Выражения#Доступ к полям|Доступ к полям]] |
+ | ## [[Выражения#Операторы|Операторы]] | ||
# [[Стандартные типы данных]] | # [[Стандартные типы данных]] | ||
− | ## [[Стандартные типы данных#Целые числа|Целые числа]] | + | ## [[Стандартные типы данных#Целые числа|Целые числа]] |
## [[Стандартные типы данных#Числа с плавающей точкой|Числа с плавающей точкой]] | ## [[Стандартные типы данных#Числа с плавающей точкой|Числа с плавающей точкой]] | ||
− | + | ## [[Стандартные типы данных#Строки|Строки]] | |
− | ## [[Стандартные типы данных#Строки|Строки]] | + | |
## [[Стандартные типы данных#Интервалы|Интервалы]] | ## [[Стандартные типы данных#Интервалы|Интервалы]] | ||
− | ## [[Стандартные типы данных#Массивы|Массивы]] | + | ## [[Стандартные типы данных#Массивы и списки|Массивы и списки]] |
## [[Стандартные типы данных#Хеши|Хеши]] | ## [[Стандартные типы данных#Хеши|Хеши]] | ||
## [[Стандартные типы данных#Указатели|Указатели]] | ## [[Стандартные типы данных#Указатели|Указатели]] | ||
Строка 68: | Строка 94: | ||
## [[Функции#Аргументы|Аргументы]] | ## [[Функции#Аргументы|Аргументы]] | ||
### [[Функции#Типизация аргументов|Типизация аргументов]] | ### [[Функции#Типизация аргументов|Типизация аргументов]] | ||
− | ### [[Функции#Инициализаторы аргументов (значения по умолчанию)|Инициализаторы аргументов (значения по умолчанию)]] | + | ### [[Функции#Инициализаторы аргументов (значения по умолчанию)|Инициализаторы аргументов (значения по умолчанию)]] |
### [[Функции#Модификаторы и копирование|Модификаторы и копирование]] | ### [[Функции#Модификаторы и копирование|Модификаторы и копирование]] | ||
+ | ### [[Функции#Функции с переменным списком аргументов|Функции с переменным списком аргументов]] | ||
## [[Функции#Возврат значения|Возврат значения]] | ## [[Функции#Возврат значения|Возврат значения]] | ||
## [[Функции#Локальные переменные|Локальные переменные]] | ## [[Функции#Локальные переменные|Локальные переменные]] | ||
Строка 75: | Строка 102: | ||
### [[Функции#Область видимости|Область видимости]] | ### [[Функции#Область видимости|Область видимости]] | ||
## [[Функции#Экспортирование функций|Экспортирование функций]] | ## [[Функции#Экспортирование функций|Экспортирование функций]] | ||
− | ## [[Функции#Перегрузка функций и операторов|Перегрузка функций и операторов]] | + | ## [[Функции#Перегрузка функций и операторов|Перегрузка функций и операторов]] |
+ | ### [[Функции#Особенности применения|Особенности применения]] | ||
+ | ### [[Функции#Применение перегрузки в расширениях|Применение перегрузки в расширениях]] | ||
# [[Блоки]] | # [[Блоки]] | ||
− | |||
## [[Блоки#Применение блоков|Применение блоков]] | ## [[Блоки#Применение блоков|Применение блоков]] | ||
+ | ## [[Блоки#Отличие от функций|Отличие от функций]] | ||
## [[Блоки#Типизация параметров|Типизация параметров]] | ## [[Блоки#Типизация параметров|Типизация параметров]] | ||
+ | ## [[Блоки#Встроенные блоки|Встроенные блоки]] | ||
# [[Основные синтаксические конструкции]] | # [[Основные синтаксические конструкции]] | ||
## [[Основные синтаксические конструкции#Условный оператор|Условный оператор]] | ## [[Основные синтаксические конструкции#Условный оператор|Условный оператор]] | ||
+ | ### [[Основные синтаксические конструкции#Оператор if|Оператор if]] | ||
+ | ### [[Основные синтаксические конструкции#Оператор if-else|Оператор if-else]] | ||
+ | ### [[Основные синтаксические конструкции#Оператор if-elsif-else|Оператор if-elsif-else]] | ||
+ | ### [[Основные синтаксические конструкции#Постфиксные операторы|Постфиксные операторы]] | ||
+ | ### [[Основные синтаксические конструкции#Тернарный условный оператор|Тернарный условный оператор]] | ||
## [[Основные синтаксические конструкции#Оператор множественного выбора (switch)|Оператор множественного выбора (switch)]] | ## [[Основные синтаксические конструкции#Оператор множественного выбора (switch)|Оператор множественного выбора (switch)]] | ||
## [[Основные синтаксические конструкции#Циклы|Циклы]] | ## [[Основные синтаксические конструкции#Циклы|Циклы]] | ||
− | ### [[Основные синтаксические конструкции#Цикл while|Цикл while]] | + | ### [[Основные синтаксические конструкции#Цикл while|Цикл while]] |
### [[Основные синтаксические конструкции#Цикл for|Цикл for]] | ### [[Основные синтаксические конструкции#Цикл for|Цикл for]] | ||
### [[Основные синтаксические конструкции#Цикл foreach|Цикл foreach]] | ### [[Основные синтаксические конструкции#Цикл foreach|Цикл foreach]] | ||
+ | ### [[Основные синтаксические конструкции#Управление циклами|Управление циклами]] | ||
+ | ### [[Основные синтаксические конструкции#Понятие бесконечного цикла|Понятие бесконечного цикла]] | ||
### [[Основные синтаксические конструкции#Взаимозаменяемость циклических структур|Взаимозаменяемость циклических структур]] | ### [[Основные синтаксические конструкции#Взаимозаменяемость циклических структур|Взаимозаменяемость циклических структур]] | ||
# [[Обработка исключений]] | # [[Обработка исключений]] | ||
Строка 95: | Строка 132: | ||
# [[Управление пакетами]] | # [[Управление пакетами]] | ||
## [[Управление пакетами#Принципы организации кода|Принципы организации кода]] | ## [[Управление пакетами#Принципы организации кода|Принципы организации кода]] | ||
− | ## [[Управление пакетами#Импортирование библиотек, ключевое слово import|Импортирование библиотек, ключевое слово import]] | + | ## [[Управление пакетами#Импортирование библиотек, ключевое слово import|Импортирование библиотек, ключевое слово import]] |
## [[Управление пакетами#Ключевое слово package|Ключевое слово package]] | ## [[Управление пакетами#Ключевое слово package|Ключевое слово package]] | ||
## [[Управление пакетами#Спецификаторы доступа|Спецификаторы доступа]] | ## [[Управление пакетами#Спецификаторы доступа|Спецификаторы доступа]] | ||
− | # [[ | + | # [[Пространства имен]] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Регулярные выражения == | == Регулярные выражения == | ||
Строка 123: | Строка 153: | ||
# [[Типы операторов]] | # [[Типы операторов]] | ||
## [[Типы операторов#Арифметические|Арифметические]] | ## [[Типы операторов#Арифметические|Арифметические]] | ||
− | |||
## [[Типы операторов#Операторы сравнения|Операторы сравнения]] | ## [[Типы операторов#Операторы сравнения|Операторы сравнения]] | ||
## [[Типы операторов#Операторы присваивания|Операторы присваивания]] | ## [[Типы операторов#Операторы присваивания|Операторы присваивания]] | ||
Строка 131: | Строка 160: | ||
## [[Типы операторов#Аксессоры и мутаторы|Аксессоры и мутаторы]] | ## [[Типы операторов#Аксессоры и мутаторы|Аксессоры и мутаторы]] | ||
# [[Использование операторов]] | # [[Использование операторов]] | ||
− | |||
== Системная библиотека == | == Системная библиотека == | ||
Строка 139: | Строка 167: | ||
# [[Идеология gide]] | # [[Идеология gide]] | ||
# [[Виртуальная машина gide]] | # [[Виртуальная машина gide]] | ||
− | # [[Стандартная библиотека gide]] | + | # [[Стандартная библиотека gide]] |
+ | |||
+ | |||
− | |||
− | + | [[Рабочие заметки]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Текущая версия на 14:15, 26 октября 2009
По мере разработки платформы Диптаун, нами была осознана необходимость создания удобного и универсального средства для управления платформой. Изначально, мы хотели реализовать ее так, чтобы платформа была максимально гибкой и расширяемой; чтобы она позволяла вносить изменения практически в любую ее часть без необходимости пересмотра и переработки системы в целом. Неотъемлемой частью существующей реализации является виртуальная машина Gide, которая берет на себя большую часть задач по управлению различными частями платформы и организации их взаимодействия. Gide применяется практически во всех задачах: начиная от генерации процедурных текстур и до пользовательского интерфейса; от управления аватарами и до программирования объектов виртуального пространства.
Однако, программирование на Gide это довольно тяжелое и утомительное занятие, как и на любом другом низкоуровневом языке. В связи с этим, было принято решение написать поверх него язык высокого уровня, который позволял бы писать программы, сочетающие в себе удобство языка высокого уровня с гибкостью Gide. В результате получился язык, документацию по которому вы сейчас читаете.
К++ это язык, написанный нами с нуля, на основании наших представлений о том, каким должен быть скриптовый язык. Он в полной мере интегрирован с самой платформой и написан на ее основе. Поскольку платформа Диптауна не зависит от ОС, реализация К++ так же получилась кроссплатформенной.
Исключительными правами на язык К++ и на документацию к нему обладают его авторы. Копирование, распространение, а так же использование в других целях программ, текстов документации или любых их частей возможно только по письменному разрешению авторов.
- © Дмитрий Кашицын, 2007-2009
- © Дмитрий Роот, 2007-2009
[править] Введение
[править] Основы языка
[править] Синтаксис языка
- Классы и объекты
- Объявление переменных и констант
- Выражения
- Стандартные типы данных
- Функции
- Блоки
- Основные синтаксические конструкции
- Обработка исключений
- Управление пакетами
- Пространства имен
[править] Регулярные выражения
- История создания регулярных выражений
- Применение регулярных выражений
- Синтаксис регулярных выражений
[править] Операторы
[править] Системная библиотека
[править] GIDE