- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
function display(id:number, name:string)
{
print("Id = " + id + ", Name = " + name);
}
function main() {
display(1, "asd");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
function display(id:number, name:string)
{
print("Id = " + id + ", Name = " + name);
}
function main() {
display(1, "asd");
}
А ваш говно компайлер умеет так делать?
>> Output:
Id = 1., Name = asd
> Конкатенация строк внутри print, вместо высирания iolist-подобной структуры сразу в дескриптор
Функциональные звуки неодобрения
Ня понимаю, почему в 2021-м году в языках ня делают интерполяцию строк.
https://docs.python.org/3/library/py_compile.html
но в сипитоне его нет
https://play.nim-lang.org/#ix=3m54
Так как все переменные типа «const», str себя отформатирует и сконкатенирует как надо ещё на этапе конпеляции. Здорово, правда? :>
https://govnokod.ru/26864
https://wandbox.org/permlink/EFGzYyIARka89vYm
https://pastebin.com/Deb32tJR
если кому интересно
Чтобы добавит новый язык, нужно всего лишь написать переводчик его в IR. Трансляторы в нативный код из IR уже есть, их писать не надо. Оптимизатор IR кода уже есть, его писать не надо. Профит.
Но при этом в JVM нет регистров (только стек) и есть очень высокоуровневые опкоды типа invokevirtual
А есть какое-то определение асма? Почему одно мы можем им считать, а другое нет?
.pyc файлы питона это асм?
Ну и что? Что мне мешает запилить стековую машинку в железе? И кстати, там довольно жёсткие ограничения на работу с этим стеком, так что его проще считать большим банком регистров.
> invokevirtual
Не такой уж он и высокоуровневый... Да и в реальных железках часто бывают "сахарные" инструкции. Те же enter/leave на x86.
Грань проходит по наличию реальной железки, имхо. Если есть проц, который это говно исполняет -- значит мышиный код. Если нету -- значит IR или байткод.
(picojava есть)
Нету железок для исполнения IL и llvm, нет разве?
З.Ы. Но это можно реализовать, в принципе. 8, 16, 32 и 64 будут быстро работать, как и первые штук 30 регистров. А остальное уже через память и эмуляцию микрокодом.
Но, с другой стороны, эльфы тоже не грузятся без доработки напильником и тоже ссылаются на имена. Так что хер знает.
Так что нужен просто умный загрузчик, как и в случае с ельфом