понедельник, 30 декабря 2019 г.

Операторы ветвления

    Операторы ветвления - операторы выполняющие код в зависимости от каких либо условий. В этой статье будет рассмотрено три оператора: if, mif, case. Все три оператора используются в коде функции.

суббота, 28 декабря 2019 г.

Функции и константы встроенные в язык, синтаксический сахар, приоритеты в правилах и выражениях

    Функции встроенные в язык:
select(a, b, c)
    a, b, c - выражения. a возвращает тип Bool, если a равен true то вычисляется выражение b и его результат является результатом вызова select, если a равен false то вычисляется выражение c и его результат является результатом вызова select. Особенность select в том, что вычисляется только одно из выражений, если попытаться самому реализовать такую функцию, то при передаче a, b, c все выражения будут вычислены ещё до вызова функции.


Переменные, константы, вызов функций

    Переменная - изменяемые данные имеющее имя.
    Константа - неизменяемые данные имеющее имя.
    Чтобы объявить в коде функции переменную или константу, нужно написать имя переменной или константы, затем ":=" для переменной, ".=" для константы, а затем выражение возвращающее значение, это значение и содержит в себе данные которым будут являться переменной или константой.

среда, 25 декабря 2019 г.

вторник, 24 декабря 2019 г.

понедельник, 23 декабря 2019 г.

Код ревью

    После публикации моей статьи на habr, я начал получать огромное количество писем на разные контакты (не только в ЛС хабра) и даже на те контакты которые я нигде не указывал(но найти их не сложно). Некоторые люди начали использовать cine и писать на нём программы(просто поэкспериментировать и по изучать язык, даже не смотря на то, что туториалов ещё маловато). И вот сегодня я получаю в ЛС хабра сообщение, в котором человек написал на cine обработчик комментариев для своего сайта(тоже ради прикола). Я решил сделать код ревью его кода и написать статью для тех, кто уже начал писать на cine. Я буду приводить код человека который мне написал, а затем напишу что не так и затем код который я написал. Так же я залил на google drive оба проекта.

воскресенье, 22 декабря 2019 г.

Перечисления

    Перечисления - способ создания уникальных числовых констант. Отдельную константу я буду называть вариантом перечисления. Каждый созданный вариант имеет тип UInt64, имеет случайное значение отличное от 0, а также не бывает двух вариантов с одинаковым значением. Вспомним про магазин из предыдущей статьи. Предположим раньше магазин торговал только городскими велосипедами, а теперь решил начать торговать ещё шоссейными и горными, мы конечно можем добавить новый член типа имеющий тип [UInt8], но слайсы занимают гораздо больше места, а также медленнее работают чем числа встроенные в язык. Поэтому лучше создать новый член типа с типом UInt64 и создать для него варианты перечисления.

Типы

    Тип - описание строения некоторого вида данных используемого программой. Например: мы хотим написать программу для магазина велосипедов, которая будет анализировать: какие велосипеды есть на складе, какие привозят, какие продаются. Для того, чтобы программа работала с велосипедами, необходимо создать тип описывающий строение данных которые хранят информацию о велосипедах в нашей программе. Допустим о велосипедах нам нужна следующая информация: бренд, модель, год выпуска, цена по которой магазин купил велосипед, цена по которой магазин продаёт велосипед, размер скидки, является ли велосипед электробайком. Тип который описывает такой велосипед, выглядит следующим образом:

type Bicycle
    brand, model [UInt8]
    buyPrice, sellPrice, discount UInt16
    eBike Bool

суббота, 21 декабря 2019 г.

Правила синтаксиса cine файлов

Если сейчас вам что либо не понятно, ничего страшного, со временем всё станет на свои места.

Правила в cine файлах:
  • k и l - строки в cine файле. если l находится ниже чем k и l имеет в начале больше пробелов чем k, то l имеет отношение к k
  • если в начале строки есть пробелы, то их количество должно быть кратным 4
  • количество пробелов в начале строки должно быть не больше , чем количество пробелов в начале предыдущей строки + 4
  • символ табуляции не допускается
  • часть строки начинающаяся с "//" и до конца строки - игнорируется
  • часть строки начинающаяся с "/*" и до "*/" - игнорируется
  • пустая строка - игнорируется
  • строка начинающаяся с 0 и более пробелов, а затем "//" - игнорируется
  • строка заканчивающаяся "{" считается не завершённой и будет продолжаться до строки начинающаяся с 0 и более пробелов, а затем "}" в конце строки
  • если две части строки начинающихся и заканчивающихся символом ' " ' разделены между собой  0 и более пробелов, то последний символ ' " ' первой части, 0 и более пробелов и первый символ ' " ' второй части - игнорируются

Установка cine и fei

    Прежде чем начать изучать язык cine, установим компилятор cine и сборщик/установщик пакетов fei. В данный момент, эти инструменты поддерживают лишь 64-разрадные операционные системы семейства Linux. Если у вас нет такой системы, то её можно поставить на виртуальную машину и изучать там. В этой статье не будет инструкции по установки и настройке виртуальной машины, так как их много, какую выбрать и как ею пользоваться, без проблем можно найти в интернете. Но я покажу как установить в виртуальную машину дистрибутив Linux - Ubuntu 19.10, а потом в ней установлю cine и fei.


    Изначально я хотел написать всё текстом, но подумав я решил записать видео как это делается.