K++ — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
м (Основы языка)
Строка 1: Строка 1:
 
__NOTOC__
 
__NOTOC__
 
[[Изображение:head.png]]
 
[[Изображение:head.png]]
 +
 +
По мере разработки платформы Диптаун, нами была осознана необходимость создания удобного и универсального средства для управления платформой. Изначально, мы хотели реализовать ее так, чтобы платформа была максимально гибкой и расширяемой; чтобы она позволяла вносить изменения практически в любую ее часть без необходимости пересмотра и переработки системы в целом. Неотъемлемой частью существующей реализации является [[виртуальная машина Gide]], которая берет на себя большую часть задач по управлению различными частями платформы и организации их взаимодействия. Gide применяется практически во всех задачах: начиная от генерации процедурных текстур и до пользовательского интерфейса; от управления аватарами и до программирования объектов виртуального пространства.
 +
 +
Однако, программирование на Gide это довольно тяжелое и утомительное занятие, как и на любом другом низкоуровневом языке. В связи с этим, было принято решение написать поверх него язык высокого уровня, который позволял бы писать программы, сочетающие в себе удобство языка высокого уровня с гибкостью Gide. В результате получился язык, документацию по которому вы сейчас читаете.
 +
 +
К++ это язык, написанный нами с нуля, на основании наших представлений о том, каким должен быть скриптовый язык. Он в полной мере интегрирован с самой платформой и написан на ее основе. Поскольку платформа Диптауна не зависит от ОС, реализация К++ так же получилась кроссплатформенной.
 +
 +
 +
Исключительными правами на язык К++ и на документацию к нему обладают его авторы. Копирование, распространение, а так же использование в других целях программ, текстов документации или любых их частей возможно только по письменному разрешению авторов.
 +
* © Дмитрий Роот, 2007 
 +
* © Дмитрий Кашицын, 2007 
 +
  
 
== Введение ==
 
== Введение ==
Строка 72: Строка 84:
 
## [[Стандартные типы данных#Целые числа|Целые числа]]
 
## [[Стандартные типы данных#Целые числа|Целые числа]]
 
## [[Стандартные типы данных#Числа с плавающей точкой|Числа с плавающей точкой]]
 
## [[Стандартные типы данных#Числа с плавающей точкой|Числа с плавающей точкой]]
## [[Стандартные типы данных#Перечисления|Перечисления]]
 
 
## [[Стандартные типы данных#Строки|Строки]]
 
## [[Стандартные типы данных#Строки|Строки]]
 
## [[Стандартные типы данных#Интервалы|Интервалы]]
 
## [[Стандартные типы данных#Интервалы|Интервалы]]
Строка 155: Строка 166:
 
# [[Идеология gide]]
 
# [[Идеология gide]]
 
# [[Виртуальная машина gide]]
 
# [[Виртуальная машина gide]]
# [[Стандартная библиотека gide]]  
+
# [[Стандартная библиотека gide]]
 
+
== stub ==
+
 
+
[00:15:28] <Korvin> - о пользе типов
+
[00:15:47] <Korvin> - о пользе спецификаторов доступа (var, const, mutable)
+
[00:15:56] <Korvin> области видимости
+
[00:15:58] <Korvin> свойства
+
[00:16:11] <Korvin> о гибкости языка: 10 способов посчитать сумму от 1 до 10
+
[00:16:19] <Korvin> операторы, методы. перегрузка
+
[00:16:53] <Korvin> Блоки. идеология, применение блоков на примере метода сортировки для Коллекции
+
[00:17:33] <Korvin> галва синтаксис языка: перечисление основных синтаксических конструкций
+
[00:17:38] <Korvin> глава исключения
+
[00:18:16] <Korvin> глава(раздел) ООП. краткий обзор догм. отличие функциональной парадигмы от ОО
+
[00:19:07] <Korvin> Глава GIDE. Идеология gide. Виртуальная машина gide (фактически копипаст соответствующей документации с комментариями)
+
[00:19:22] <Korvin> managed и unmanaged код
+
[00:19:26] <Korvin> /классы
+
[00:19:28] <Korvin> отличия
+
[00:20:11] <Korvin> расширения. применение расширений на примере метода times()
+
[00:21:12] <Korvin> стандартные объекты языка
+
[00:21:19] <Korvin> массивы, хэши
+
[00:21:31] <Korvin> строки <nowiki>''</nowiki> и ""
+
[00:21:42] <Korvin> глава Регулярные выражения
+
[00:21:45] <Korvin> краткое введение
+
[00:22:07] <Korvin> применение регулярных выражений (usecase) на примере разборов некоторого абстрактного лог файла
+

Версия 19:04, 25 сентября 2007

Head.png

По мере разработки платформы Диптаун, нами была осознана необходимость создания удобного и универсального средства для управления платформой. Изначально, мы хотели реализовать ее так, чтобы платформа была максимально гибкой и расширяемой; чтобы она позволяла вносить изменения практически в любую ее часть без необходимости пересмотра и переработки системы в целом. Неотъемлемой частью существующей реализации является виртуальная машина Gide, которая берет на себя большую часть задач по управлению различными частями платформы и организации их взаимодействия. Gide применяется практически во всех задачах: начиная от генерации процедурных текстур и до пользовательского интерфейса; от управления аватарами и до программирования объектов виртуального пространства.

Однако, программирование на Gide это довольно тяжелое и утомительное занятие, как и на любом другом низкоуровневом языке. В связи с этим, было принято решение написать поверх него язык высокого уровня, который позволял бы писать программы, сочетающие в себе удобство языка высокого уровня с гибкостью Gide. В результате получился язык, документацию по которому вы сейчас читаете.

К++ это язык, написанный нами с нуля, на основании наших представлений о том, каким должен быть скриптовый язык. Он в полной мере интегрирован с самой платформой и написан на ее основе. Поскольку платформа Диптауна не зависит от ОС, реализация К++ так же получилась кроссплатформенной.


Исключительными правами на язык К++ и на документацию к нему обладают его авторы. Копирование, распространение, а так же использование в других целях программ, текстов документации или любых их частей возможно только по письменному разрешению авторов.

  • © Дмитрий Роот, 2007
  • © Дмитрий Кашицын, 2007


Введение

  1. Предисловие
    1. Роль K++ в проекте Диптаун
    2. Почему именно K++?
    3. Для кого эта книга
    4. Стиль изложения материала
    5. Тесная взаимосвязь с gide
    6. Принятые обозначения
  2. История создания языка
  3. Идеология языка
    1. Немного теории о языках программирования
    2. Компиляторы и интерпретаторы
    3. Парадигменность
    4. Понятие о типизации
    5. Управление памятью
    6. Понятие исключения

Основы языка

  1. Введение, или краткий обзор
    1. Здравствуй, мир!
    2. Более сложный пример
    3. Использование блоков
    4. Расширение классов
  2. Переменные
    1. Понятие переменной, тип переменной
    2. Статическая типизация на примере C++
    3. Динамическая типизация на примере Ruby
    4. Полудинамическая типизация
    5. Типизация при объявлении
    6. Типизация при инициализации
    7. Нетипированные (динамические) переменные
    8. О важности инициализации переменных
  3. Константы
    1. Понятие константы
    2. Константные объекты
    3. Константные функции
  4. Замечания об эффективности кода
    1. О пользе типов
    2. О пользе спецификаторов доступа
  5. Приведение типов

Синтаксис языка

  1. Классы и объекты
    1. История развития ООП
      1. Возникновение языков программирования
      2. Появление ассемблера
      3. Концепция языка высокого уровня
      4. Структурное программирование
      5. Объектно-ориентированное программирование
    2. Понятие класса
    3. Понятие объекта
    4. Наследование
    5. Методы
      1. Статические методы
      2. Конструкторы
    6. Поля
    7. Свойства
    8. Расширения
  2. Объявление переменных и констант
  3. Выражения
    1. Арифметические операции
    2. Вызов функций
    3. Доступ к полям
    4. Операторы
  4. Стандартные типы данных
    1. Целые числа
    2. Числа с плавающей точкой
    3. Строки
    4. Интервалы
    5. Массивы и списки
    6. Хеши
    7. Указатели
  5. Функции
    1. Объявление
    2. Аргументы
      1. Типизация аргументов
      2. Инициализаторы аргументов (значения по умолчанию)
      3. Модификаторы и копирование
      4. Функции с переменным списком аргументов
    3. Возврат значения
    4. Локальные переменные
      1. Объявление
      2. Область видимости
    5. Экспортирование функций
    6. Перегрузка функций и операторов
      1. Особенности применения
      2. Применение перегрузки в расширениях
  6. Блоки
    1. Применение блоков
    2. Отличие от функций
    3. Типизация параметров
    4. Встроенные блоки
  7. Основные синтаксические конструкции
    1. Условный оператор
      1. Оператор if
      2. Оператор if-else
      3. Оператор if-elsif-else
      4. Тернарный условный оператор
    2. Оператор множественного выбора (switch)
    3. Циклы
      1. Цикл while
      2. Цикл for
      3. Цикл foreach
      4. Управление циклами
      5. Понятие бесконечного цикла
      6. Взаимозаменяемость циклических структур
  8. Обработка исключений
    1. Идеология исключений
    2. Объект исключения
    3. Генерация исключения
    4. Перехват исключений
  9. Управление пакетами
    1. Принципы организации кода
    2. Импортирование библиотек, ключевое слово import
    3. Ключевое слово package
    4. Спецификаторы доступа

Регулярные выражения

  1. История создания регулярных выражений
  2. Применение регулярных выражений
    1. Зачем нужны регулярные выражения
    2. Преимущества регулярных выражений
    3. Применение регулярных выражений на примере разбора лог файла
  3. Синтаксис регулярных выражений
    1. Классы символов
    2. Заполнители
    3. Квантификаторы

Операторы

  1. Обзор операторов
  2. Типы операторов
    1. Арифметические
    2. Логические
    3. Операторы сравнения
    4. Операторы присваивания
    5. Операторы приведения типов
    6. Оператор индексного доступа
    7. Оператор вызова функции
    8. Аксессоры и мутаторы
  3. Использование операторов
  4. Автоматически генерируемые операторы

Системная библиотека

GIDE

  1. Идеология gide
  2. Виртуальная машина gide
  3. Стандартная библиотека gide
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты