суббота, 8 февраля 2020 г.

Прошу прощения

    Не смотря на то, что я почти закончил версию 0.2(осталось доделать только каналы, на подобии того как они сделаны в go), я все больше сталкиваюсь с тем что различные вещи начинают меня смущать:
  • Мне не хватает нормального ООП.
  • Мне не нравится что данными из модулей можно манипулировать. Я сам это часто использую, но почти всегда это связанно с компенсацией того, что в язые нет полноценного ООП.
  • Хотелось бы чтобы требования групп проверялись во время компиляции, а из-за особенностей языка это не возможно.
  • Я постоянно упираюсь в особенности языка Си. Мне постоянно хочется вернуться на LLVM IR.
  • Мне не хватает гибкости cine, постоянно приходится делать какие то builtIn вещи в компиляторе или использовать код на Си.
  • Мне не нравится работа с ошибками в cine.
  • Хотя изначально я делал язык в том числе ради производительности и во многих местах где надо было выбрать производительность или удобство, я выбирал производительность, сейчас бы я принял другие решения. С годами мне удобство стало важнее. Не говоря о том, что можно не выбирать ведь по сути 95% времени программы работает 5% кода и эти 5% просто можно оптимизировать (если есть подходящие инструменты).
    Подумав я понял, что бессмысленно продолжать это безумие. И решил писать новый язык с нуля.
    Прошу прощения за то, что отнял время у всех тех кто уже начал изучать язык.
    Через некоторое время я удалю этот блог и git аккаунт.
    Но напоследок мне захотелось узнать производительность программ написанных на cine.

понедельник, 13 января 2020 г.

Пауза

    В статьях которые я пишу для этого блога, я старался в начале давать информацию о простых вещах, затем постепенно переходить к более сложным. Статья которая должна быть в место этой статьи, рассказывала бы о том, что очень сильно измениться в версии 0.2, поэтому нет смысла писать такую статью, но и писать следующие статьи без указанной статьи - бессмысленно. Поэтому я до выхода версии 0.2 (планирую выпустить до 5 февраля), не буду писать статьи. Если вы один из тех кто активно начал изучать язык и у вас есть вопросы, вы можете написать мне на почту - 0.cine.developer@gmail.com, или в телеграмм taetricus.13.

среда, 8 января 2020 г.

Функциональный типы

    Функциональный тип - тип данных значением которого является функция.

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

суббота, 4 января 2020 г.

Операторы break, continue, return

    Оператор break прекращает работу операторов for, parse, mif, case. Чтобы прервать работу одного из выше указанных операторов, нужно что бы break находился в коде принадлежащем прерываемому оператору. Если написать просто break, то прервётся работа оператора который был объявлен самым последним, если нужно прервать работу нескольких операторов, то после break нужно указать количество  прерываемых операторов, то есть если написать break 1, то это тоже самое что и просто break. Чтобы прервать все операторы которым принадлежит break, можно просто написать break all.

пятница, 3 января 2020 г.

Циклы


    Цикл - повторение одного и того же кода несколько раз. Для реализации цикла в cine используется два оператора - for и parse.