crypt of decay - вдогон [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

вдогон [Dec. 4th, 2017|12:00 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
если быть совсем уж точным, то UFCS, конечно, можно сделать и без static typing (но это будет хак в VM, потому что обычно в языках с динамической типизацией поля объекта разрешается создавать налету). а вот виртуальная машина для statically typed code — значительно проще и быстрее. потому, очевидно, что все проверки типов можно сделать во время компиляции, и генерировать простой тупой код, который больше не пытается валидировать данные (кроме деления на ноль, увы). так что при прочих равных statically typed по скорости завсегда выиграет.

а на чём удобней говноскриптить — вопрос скорее метафизический. потому что для мелкого кода относительно пофигу, а для большого статика удобней (если есть нормальные шаблоны).
Linkmeow!

Comments:
From:(Anonymous)
Date:December 6th, 2017 - 11:35 am
(Link)
вопрос странный, но тем не менее
1) зачем вообще этот скриптовый движок и что он умеет лучше ди? почему не писать сразу на ди?
2) зачем каждый раз писать примерно один и тот же скриптовый движок, который умеет примерно в некторое подмножество ди? вот я понимаю был бы лисп, с дээсэле на дээсэле, или пролог какой-нибудь, а тут читаю и не врубаюсь
From:(Anonymous)
Date:December 6th, 2017 - 11:36 am
(Link)
* с дээсэлем
[User Picture]
From:[info]ketmar
Date:December 6th, 2017 - 11:46 am
(Link)
1. затем же, примерно, зачем обычно в игры скриптовые движки и монтируют: чтобы менять логику без перекомпиляции бинаря. и даже без перезапуска игры.

2. лисп у меня тоже есть, поищи тут где‐то пониже. но мне лениво переключать мозг между лиспом и дишечкой, поэтому я часто делаю свои скриптовые языки подмножеством дишечки. поскольку я параллельно обычно пилю и движок, и скрипты — так тупо удобней.

расширеный ответ на «1»: потому что мне захотелось напилить компилятор без AST. у меня есть на него некие смутные будущие планы. но пилить его в пустоту, с надеждой на материализацию будущих планов — неудобно. как минимум, он не обкатается в «обстановке, приближеной к боевой». а поскольку из более‐менее завершённых проектов, куда его можно впихнуть, под рукой оказался кнайтмар — то и впихую в кнайтмар.

tl;dr: есть Планы На Двигатель Такого Типа. пока в слова не очень оформляемые (скорее всего, я потом разберу двигатель на части, и соберу из них чуть‐чуть другой). но для двигателя нужен testbed, поэтому взял что под рукой было. тестить его на игровых скриптах интересней, чем писать просто некие абстрактные тесты компилятора.