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

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

Число 1 = 1;
Число номер 2 = 2;
Сумма = Число 1 + Число номер 2;
print Сумма; print; 
function Открытие двери в поезде() {
  print "Дверь открыта"; print;
}
Открытие двери в поезде();

Неплохо, да? Но явно не дотягивает до мечты. Поэтому пришлось добавить синонимы.

synonym "равно", "=";
synonym "равна", "=";
synonym "плюс", "+";
synonym "Вывод", "print";
synonym "Функция", "function";

Число 1 равно 1;
Число номер 2 равно 2;
Сумма равна Число 1 плюс Число номер 2;
Вывод Сумма; Вывод; 
Функция Открытие двери в поезде() {
  Вывод "Дверь открыта"; Вывод;
}
Открытие двери в поезде();

Текст программы преобразился к обычному человеческому языку. Данная особенность языка позволяет начать программировать человеку без специального образования. Можно отвлечься от изучения синтаксических конструкций языка, а сосредоточиться на изучении алгоритмов программирования. Даже самый сложный алгоритм, изложенный обычным языком, становится намного понятней. А более продвинутым пользователям язык предоставляет возможность работать с массивами любой размерности и объектами.

Эта простенькая программа выглядит просто изумительно. Не правда ли?

// 
// Нахождение наибольшего общего делителя двух чисел
//
Первое число = 57;
Второе число = 1332;
while (Первое число <> 0 and Второе число <> 0)
{
  if (Первое число > Второе число)
    Первое число = Первое число % Второе число;
  else
    Второе число = Второе число % Первое число;
}
print(Первое число + Второе число);

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

function озеро() {}
озеро = "глубокое";

Описания функций можно размещать где угодно. Какое из них будет активно решается во время выполнения программы.

бухгалтер = "глупый";
if(бухгалтер = "глупый") {
  function summa() {
    return 10;
  }
} else {
  function summa() {
    return 20;
  }
}
print summa(); print;

Между словами в именах может стоять различное количество пробелов, символов табуляции или перевода строки.

Куда
будем 
перемещать
этот   стол = "на свалку";
print Куда будем перемещать этот стол; print;

Язык программирования имеет много самых различных встроенных функций. По крайней мере он может быть неплохой заменой бейсику. В настоящий момент существует только онлайн версия языка. Язык написан на PHP.

Все подробности вы можете найти на сайте Язык программирования.

Комментарии (78)


  1. vilgeforce
    06.10.2019 12:07
    +3

    Кажется, кто-то переизобрел Literate Programming


    1. n1ger
      06.10.2019 13:27

      А мне это очень похоже на 1С и 1С++.


  1. DoctorMoriarty
    06.10.2019 12:11
    +5

    По ссылке в конце статьи: "Эбал (Ebal англ.) — язык программирования нового поколения".

    По-моему, нас тонко троллят…


    1. aamonster
      06.10.2019 15:05

      Надеюсь, что да.
      С языком, похожим на естественный, довелось иметь дело (AppleScript). Более неудобного языка программирования в жизни не видел.


    1. Matisumi
      06.10.2019 16:31

      Тонко ли? Я бы сказал — неумело


      1. DjPhoeniX
        07.10.2019 03:05
        +1

        Это было настолько толсто, что стало слишком тонко…


    1. KvanTTT
      06.10.2019 23:35

      Это то, что будет делать с этим языком здоровый человек после ознакомления. Ну или что будет делать с мозгом код, написанный на таком языке.


  1. profesor08
    06.10.2019 12:28
    +2

    Ничего не изобретая.

    <?php
    
    $первоеЧисло = 123;
    $второеЧисло = 234;
    $сумма = $первоеЧисло + $второеЧисло;
    
    print $сумма;
    


    первоеЧисло = 123
    второеЧисло = 234
    сумма = первоеЧисло + второеЧисло
    
    alert(сумма)
    


    Постоянное переключение между разными раскладками это полнейшая дичь, даже для написания трех строк.


    1. tvr
      06.10.2019 15:05

      Постоянное переключение между разными раскладками это полнейшая дичь

      А если учесть ещё одинаково выглядящие символы разных алфавитов, то это не просто дичь, а снятый с предохранителя взведённый пистолет, постоянно таскаемый за поясом.


    1. ilyaska
      07.10.2019 11:20
      +1

      Потому что надо не $, а ?


  1. podivilov
    06.10.2019 12:51
    +1

    В этой задумке прекрасно всё! Остаётся единственный вопрос — зачем?


  1. fsmorygo
    06.10.2019 13:30

    А ещё у Вас лексер не справляется с вложенными комментариями.


    1. AnotherFromSirius Автор
      07.10.2019 08:14

      Отразил эту особенность языка в документации.


      1. AnotherFromSirius Автор
        07.10.2019 10:37

        Исправил.


  1. GenkaOk
    06.10.2019 13:53
    +2

    Вы изобрели язык 1С
    Первый же пример не имеет ни одного русского слова. Ссылка


  1. ar2rsoft
    06.10.2019 14:16

    Не знаю почему, но после первого же примера и вопроса "Неплохо, да?" хочется ответить "нет".
    Возможно действительно троллинг


    1. podivilov
      06.10.2019 19:32
      +4

      Знаете, мне когда было лет от силы 13-14, я на полном серьёзе продвигал в IT-сообществе идею перехода с шестнадцатеричной системы счисления на мою, альтернативную, с нескучными обоями и возможностью грабить караваны.

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

      Конечно, люди были недовольны. Я тогда не понимал ещё, отчего. Мне в то время казалось, что любая идея (в том числе и моя) имеет право на жизнь, вне зависимости от того, будет она потом где применяться или нет. В чём-то я действительно был прав — например, любая идея действительно имеет место быть.

      Но вот форсить это вовсе не обязательно. Из этой фантасмагории спустя несколько лет я извлёк важный урок — не всё, что кажется гениальным, — гениально в действительности.

      Поэтому, вполне вероятен тот факт, что автор не тролль, а просто воодушевлённый своей задумкой человек. Возможно, пока что он просто не может осознать и принять свою ошибку.


      1. Alex_ME
        07.10.2019 01:48

        Так это вы были тем малолетнем долб человеком, который форсил wct! Помню, этим были завалены сообщества в вк вроде "типичного программиста". Я не понимал, это так троллят или кто-то на полном серьезе топит за это.


        1. DjPhoeniX
          07.10.2019 03:20
          +1

          Каждый из нас когда-то был ${_тем_самым_}. Главное вовремя эволюционировать.


  1. Vlad800
    06.10.2019 14:16

    Ну, не сказал бы, что легче стало — даже читать трудно два языка одновременно. Тем более, что в школе проходят все имена переменных на латинице, и я себя так и не заставил отличать русские слова, как операторы (правда недолго пробовал, но ведь должно было быть легче?).


  1. lair
    06.10.2019 14:28

    Что из этого вышло судить вам.

    Вы бы хоть сначала цели озвучили.


    Неплохо, да?

    Плохо. Как при чтении понять, где закончился идентификатор?


    Текст программы преобразился к обычному человеческому языку.

    … который, как известно, неоднозначен и избыточен — а это ровно то, чего мы в языках программирования избегаем. Вот и пример:


    Вывод Сумма

    Это один идентфиикатор "вывод сумма" или идентификатор "Вывод", за которым идет идентификатор "Сумма"?


    (это не говоря о том, что это, на самом деле, не читается)


    Данная особенность языка позволяет начать программировать человеку без специального образования.

    Удивительно, но люди без специального образования программируют и без данной особенности. Интересно, как?


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

    Нет, нельзя. Синтаксис у вас все равно есть, и его все равно надо соблюдать.


    Эта простенькая программа выглядит просто изумительно. Не правда ли?

    Нет. Чем она лучше, чем


    while a <> 0 and b <> 0:
      if a > b:
        a = a % b
      else:
        b = b % a
    print(a + b)

    … тем, что надо постоянно переключать язык, на котором читаешь код?


    1. assembled
      06.10.2019 19:12

      В некоторых старых языках тоже позволяли пробелы в идентификаторах, и синтаксис от этого был немного запутанный. Из-за этого произошел даже знаменитый баг в программе на фортране, когда из-за поставленной точки вместо запятой (или наоборот, не помню точно) объявление цикла было принято за присваивание значения переменной.

      А, например, в Алгол-68 синтаксис более однозначный: между идентификаторами всегда либо ключевые слова, либо операторы, либо спецсимволы; а ключевые слова и операторы отличались от идентификаторров — не содержали пробелов и набирались в верхнем регистре, либо брались в кавычки, либо выделялись жирным шрифтом (например в печати).


    1. h0w4rd
      09.10.2019 03:46

      > Это один идентфиикатор «вывод сумма» или идентификатор «Вывод», за которым идет идентификатор «Сумма»?
      ЯП спокойно справляется с таким.
      Первое = 12;
      Первое число = 57;
      print(Первое);
      print(" ");
      print(Первое число);

      Вывод — «12 57»


      1. lair
        09.10.2019 11:24

        Не справляется.


        synonym "число", "=";
        Первое = 12;
        Первое число = 57;
        print(Первое);
        print(" ");
        print(Первое число);

        Синтаксическая ошибка в строке 4 на символе '='.

        И это даже без учета того, что синонимы (которые тоже идентификаторы) не могут содержать пробел:


        synonym "равно справа", "=";

        Ошибка времени выполнения в строке 1. Неверно задан синоним.


        1. AnotherFromSirius Автор
          09.10.2019 13:30

          Синонимы не идентификаторы. Синонимы — это синонимы ключевых слов или символов. В документации все описано.


          1. lair
            09.10.2019 13:57
            +1

            Синонимы не идентификаторы.

            Это называется "произвольное ограничение". В том смысле, что вы так сказали, но никакого логичного объяснения для внешнего пользователя в этом нет.


  1. selotec
    06.10.2019 15:06

    У меня дежавю, была тут уже давно статья про изобретение своего языка, и даже вроде как то похоже начиналась. Разве что не так быстро кончалась.


  1. unnutz
    06.10.2019 15:08

    Просто напрашивается...


    1. maxzhurkin
      06.10.2019 22:07
      +3

      #define типа {

      потерялось


    1. maxzhurkin
      09.10.2019 21:47

      ещё кое-где «сказал» пропущено


  1. Fen1kz
    06.10.2019 18:00
    +3

    Вот и у меня были свои мечты

    Данная особенность языка позволяет начать программировать человеку без специального образования.

    Серьезно? Вот честно признайтесь, вы хоть раз в языке своей мечты озвучивали поинт "чтобы на языке мог писать кто угодно без образования и обучения"


    Текст программы преобразился к обычному человеческому языку

    Эта штука никогда не работала. Объясните манию программировать на человеческом языке?


    Даже если представить, что появится Идеальный_Все_понимающий_компилятор_русского_языка_в_машинный_код — вот вам охота писать такие программы?


    Скажи "Здравствуй Мир"! Возьми из переменную окружения "Хост Программного Интерфейса" 
     и запусти ППГ сервер. Прикрепи к нему следующие конечные точки: 
    1) /пользователь. К нему прикрепи обработчик конечной точки:
    Сохрани пришедший идентификатор под именем Айди. Дальше сделай запрос к базе данных "Получить пользователя" "База, база, получи мне пользователя с идентификатор Айди"

    Тьфу ты, ну невозможно же. Тем не менее какая-то не здравая мечта писать программу человеческим языком живет.


    1. Vlad800
      06.10.2019 19:01

      Так такая постановка задачи — очень даже ничего!


    1. androidovshchik
      06.10.2019 19:39

      Если программу будет выполнять/интерпретировать ИИ, который понимает речь, то почему бы и нет) Тогда действительно все от мало до велика будут программистами



    1. Lelushak
      06.10.2019 20:16
      +2

      А мне нравится ваш пример. Писать, возможно, будет не слишком удобно, зато легко читать. Мы (ну, по крайней мере я) в любом случае при чтении кода в голове неявно преобразуем его во что-то подобное. Если оно будет уже так написано, то шаг с преобразованием исчезнет и немного ресурсов освободится


      1. printf
        07.10.2019 00:12

        Мне кажется, это классная идея для высокоуровневого кода. Например, какой-нибудь Jenkins job можно было бы описать:

        Клонируем репозиторий git://github.com/милые/котятки в папку "тестовые_котятки"
        В папке "тестовые_котятки":
            - Устанавливаем зависимости командой "yarn"
            - Запускаем тесты командой "yarn test"
        В случае ошибки отправляем письмо Геннадию <геннадий@милота.рф>
        с темой "Вороны клюют твои посевы, Джузеппе!"
        

        Получается словно и скрипт, и инструкция как это всё сделать руками, если Дженкинс окуклился.


        1. lostmsu
          10.10.2019 18:44

          Имхо, так кажется потому что идея DSL на нестандартном языке программирования — полное говно.


    1. sets
      06.10.2019 21:36

      "Сделай, чтобы пользователь был счастлив"


      1. OldFisher
        07.10.2019 08:55

        После чего в календаре на утро вторника появляется лоботомия.


  1. Denai
    06.10.2019 19:14

    Сумма равна Число 1 плюс Число номер 2;

    Если задать переменные «Число», «Число номер 2», «номер 2», то как эта строка отработает?


  1. DesertFlow
    06.10.2019 20:25

    Хех, это только для нас языки программирования выглядят как чужеродные конструкции, которые надо осваивать. А для англоязычных жителей все эти for, while, if самые обычные слова.


    Но попытки переводить ключевые слова на русский язык проваливаются не из-за этого. А из-за того, что синтаксис все равно приходится соблюдать. И с английскими командами это делать даже проще. Они сразу выделяются.


    А насчет программировать разговорным текстом… Это только на первый взгляд кажется, что будет так:


    массив = 1, 2, 3
    цикл массив: если элемент равен 2, то выход

    А на практике это будет:


    пусть массив будет от одного до трех. надо перебрать все элементы, и чтобы на двойке выйти. но не раньше

    Ну и как прикажете такую фразу переводить в машинный код? И каждый будет перефразировать по-своему. Пока что парсить алгоритмы, написанные разговорным языком, нереально. А если заставлять учить синтаксис… То лучше с for, if, while. Они хотя бы короткие и хорошо выделяются в тексте.


    1. Ser_Yoga
      07.10.2019 07:26

      Пока что парсить алгоритмы, написанные разговорным языком, нереально.

      А вот когда станет реально, разработкой будут заниматься аналитики, которые пишут требования.


      1. Lelushak
        07.10.2019 09:21

        Ну нет. Аналитики пишут достаточно высокоуровневые требования. Чтобы их транслировать в код таки нужен сильный (И)И


  1. maxzhurkin
    06.10.2019 20:58
    -1

    Хабр, который мы заслужили


  1. samodum
    06.10.2019 22:31

    Каждый программист хотя бы раз в своей жизни мечтал об идеальном языке программирования.

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


    1. printf
      07.10.2019 00:14
      +2

      Мне кажется, большинство программистов хотя бы раз в жизни были джуниорами, так что все сходится.


  1. GennPen
    06.10.2019 23:07

    Можно отвлечься от изучения синтаксических конструкций языка, а сосредоточиться на изучении алгоритмов программирования.
    Но даже в вашем «языке» есть синтаксическая конструкция, нарушив которую программа не скомпилируется.


  1. Alex_ME
    07.10.2019 01:52
    +1

    Я недавно столкнулся с Robot Framework, где тоже идентификаторы с пробелами и много всяких ненужных слов, так прям сил нет, какая хрень.


  1. SerafimArts
    07.10.2019 04:37
    +1

    Вот вы минусите. А у человека там судя по косвенным данным (по интерпретатору в веб-морде) — довольно большая работа проделана. Не обычный транспайлер вида "фигак-фигак", как делают новоиспечённые адепты секты "совершенных языков программирования", а примитивная виртуальная машина.


    Я бы даже на исходники взглянул. Вдруг что интересное попадётся, всё же подобная реализация требует особых знаний на этом поприще. Тем более, судя по задаче — это реализация с КЗ-грамматикой (Тип 2 по иерархии Хомского), что повышает сложность парсера и семантического анализа.


    P.S. А если там всё сделано ещё грамотно: лексер, парсер, ast, ir-код, таблица символов и прочие прелести, то вне зависимости от результата (как мы видим — довольно плачевного) — это очень круто.


    P.P.S. Хотя, может я и ошибаюсь =)


    1. AnotherFromSirius Автор
      07.10.2019 07:25

      Два LR(1) парсера. Один для лексем, другой для грамматики. Тот что для лексем не стандартный, а немного переделанный. AST. Все по науке. Исходники не будут выложены никогда. Это тайна.


      1. mayorovp
        07.10.2019 08:51

        Ну и кому в таком случае ваш язык вообще нужен?


      1. KvanTTT
        07.10.2019 14:17

        А как вы парсите heredoc строки только с помощью LR парсера?


        1. AnotherFromSirius Автор
          07.10.2019 14:40

          В языке нет heredoc строк.


        1. SerafimArts
          07.10.2019 17:59

          Ну, объективно, HEREDOC можно считывать и обычной регулярной грамматикой:


          <<<\h*(\w+)[\s\S]*?\n\h*\g{-1}

          А внутрянку считывать дополнительным проходом уже после.


    1. lair
      07.10.2019 11:41

      Большая работа — не обязательно полезная работа.


  1. loki82
    07.10.2019 07:26

    Очень похоже на 1с 7.7. Подиразбери почему уровень() метод, а наименование свойство. Подробностей не вспомню. Но там часто была путаница в этих понятия.


  1. WhiteBlackGoose
    07.10.2019 09:54
    -1

    Неплохо, но:
    1) Засуньте куда-нибудь кириллицу, ее там не должно быть
    2) Знак равенства для всех нормальных людей без образования все равно лучше чем писать "равно"
    Ну и конечно то, что он написал на php, я так понимаю, массив из 10000 элементов он будет минуту заполнять? Если да, то это бесполезный язык. Переписывайте на что-то нормальное.


    1. WhiteBlackGoose
      07.10.2019 09:57

      Я щас посчитал, python (медленный язык) 13'500'000 элементов массива в секунду. Ваш язык хотя бы четверть этой скорости осилит?


      1. androidovshchik
        07.10.2019 10:18

        Насколько знаю, медленный питон, php далеко нет, так как его реализация на плюсах сделана


        1. WhiteBlackGoose
          07.10.2019 10:33

          php вроде медленнее питона. Они оба на + реализованы. Но какая разница, если ТС писал не на +, а на нестроготипизированном интерпретируемом языке интерпретатор другого языка?


          1. androidovshchik
            07.10.2019 10:48
            -2

            спасибо за минус в карму


            1. WhiteBlackGoose
              07.10.2019 11:44

              Передаю от лица того, кто поставил вам минус: "пожалуйста". Впрочем, теперь я тоже это сделаю


          1. SerafimArts
            07.10.2019 14:50

            php вроде медленнее питона.

            Так было в бородатых 2000х. Сейчас же на алгоритмических задачках (т.е. CPU-bound) PHP может вполне конкурировать с аналогичными на C, где питону по скорости до пыха как до луны, и тормоза возникают лишь в синхронном IO.


            P.S. https://gist.github.com/dstogov/12323ad13d3240aee8f1


            PHP7-JIT (JIT=on)                  0.011
            gcc -O2 (4.9.2)                    0.013
            ...
            python-2.7.8                       1.128


            1. WhiteBlackGoose
              07.10.2019 15:11

              Презабавнейше, не знал. Но стоит заметить, что все php кроме как jit (то есть скомпилированного) где-то там внизу. Ну хотя тс может и на jit писал


              1. SerafimArts
                07.10.2019 17:52

                Но стоит заметить, что все php кроме как jit (то есть скомпилированного) где-то там внизу.

                Да, ровно после джавы. Т.е. можно считать на этом тесте самым быстрым интерпретируемым языком без JIT.


                А если учитывать что это тест от 2015го года и после 7.0 ещё были 7.1, 7.2, 7.3 релизится 7.4 и в разработке 8.0, то тем более. Там по скорости не такие значительные отличия как между 5 и 7, то тоже скорость процентов на 20 повыше будет этих результатов.


                P.S. А то что вы там внизу видите — это как бы PHP 5.0, о чём я и намекал, говоря о "бородатых 2000х", когда был PHP 4/5.


                1. WhiteBlackGoose
                  07.10.2019 18:55

                  Он может и самый быстрый, но все равно медленный для написания яп. Опять же, не рассматривая, если тс писал на jit


                  1. SerafimArts
                    07.10.2019 19:43

                    Во-первых, "на JIT" никто не пишет. Это всего лишь флаг в настройках языка.


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


                    Для начала в мире не существует ни одного языка общего назначения, который бы был медленным для "написания ЯП". Как бы ЯП — это всего лишь frontend компиляторов: Совокупность грамматики и IR-кода. А в качестве бека никто не мешает использовать какой-нибудь LLVM.


                    Если же вы хотели написать не ЯП, а "интерпретатора", то это вполне оправдано, когда разница по скорости раза в полтора два от сишной реализации не является критичной.


                    Согласен что на уровне языка не хватает возможностей прямой работы с памятью и инструкциями CPU, вроде AVX. Ну или другими узкими местами, вроде прямой работой с GPU для рендера сцен а-ля Crysis в 60 fps. Но это и не критично особо, а всякие фичи обмазываются FFI-бриджами.


                    Хотя народ упарывается, это да: https://stitcher.io/blog/php-jit


                    А если говорить про опыт, то больше всего производительности мне удалось выжимать за счёт оптимизации алгоритмов. Например, ускорение в 36 раз за счёт перехода с LL(k) с построением AST из трейса парсера на метод рекурсивного спуска с параллельным построением AST (я хрен знает как его назвать, потому что сам выдумывал и реализация ближе к парсер-комбинаторам, нежели к классическому LL):


                    Заголовок спойлера

                    image


                    1. WhiteBlackGoose
                      07.10.2019 21:02

                      Кстати я вообще не понимаю, почему я решил, что тс интерпретатор пишет. Впрочем, как неочевидно и обратное.


                      1. lair
                        07.10.2019 22:44

                        Кстати я вообще не понимаю, почему я решил, что тс интерпретатор пишет.

                        Иначе достаточно мало смысла в утверждении "Так это же PHP. Что вы хотели?"


    1. AnotherFromSirius Автор
      07.10.2019 10:21

      Массив из 1000 элементов заполняет в среднем за 0.001 сек. (сервера Google очень быстрые). В онлайн версии установлено ограничение на количество элементов массива — 1000 элементов максимум. Скорость можете сами проверить.
      a = adim(1000);
      afill(a, 10);


      1. WhiteBlackGoose
        07.10.2019 10:32

        Ну я имел ввиду цикл вообще-то, а не встроенную функцию.
        Но даже без цикла — 1'000'000 в секунду, это в 13 раз медленнее питона.


  1. hunroll
    07.10.2019 10:38

    Куда
    будем
    перемещать
    этот стол язык программирования= «на свалку»;
    print Куда будем перемещать этот стол язык программирования; print;


  1. AnotherFromSirius Автор
    07.10.2019 10:43
    -1

    Цикл за 0.01 сек.

    a = adim(1000);
    while(i <= 1000) begin i = 1; step i = i + 1; {
    a[i] = i;
    }

    Так это же PHP. Что вы хотели?


    1. Jack_Taylor
      07.10.2019 11:42
      +1

      Что вы хотели?

      Чтобы выгоды от использования языка перекрывали его недостатки.

      Какие конкретно плюсы вашего языка перекрывают минусы в виде низкой скорости выполнения, закрытого исходного кода и сложности печати (постоянно переключать раскладку) и чтения (постоянно переключать мозг)?


    1. lair
      07.10.2019 11:43

      Что вы хотели?

      Мы хотели идеальный язык программирования.


    1. WhiteBlackGoose
      07.10.2019 11:47

      Как интересно, а мне кинули, что за 0.001. Ну тогда разговор ни о чем)


    1. SerafimArts
      10.10.2019 17:58

      Так это же PHP. Что вы хотели?

      У меня на рабочем ноуте этот цикл отрабатывает за 0.01мс (0.000013 сек) без JIT, opcache и прочих приблуд. Есть подозрения, что это у вас реализация тормозит.


      Да и даже если виртуальную машину написать скорость будет ~0.0003 сек (извиняюсь за говнокод): https://gist.github.com/SerafimArts/ce7e0ca28b325e4c8794aede4ffd8a74


      1. AnotherFromSirius Автор
        10.10.2019 21:18

        Возможно и так. Мне все равно. Это прототип языка. Задача получить высокую скорость не стоит. Когда буду вылизывать ассемблерный код, тогда и буду думать как повысить производительность. Но до этого еще очень далеко…