kika: (Default)
[personal profile] kika
имхо, универсальный язык - это всего лишь язык, на котором можно написать свой собственный рантайм. С, С++, ассемблер - универсальные языки, а Ява или Хаскель - нет.
http://kika.livejournal.com/84936.html?thread=880072#t880072

truъ or false?

Date: 2009-06-18 04:23 pm (UTC)
From: [identity profile] kika.livejournal.com
Ну все отлично - миниява язык универсальный, а обычная ява - таки нет :-)

Date: 2009-06-18 04:29 pm (UTC)
From: [identity profile] jsn.livejournal.com
Жжош :)
Srsly, though: you're back to square one. Любой язык с ассемблерными вставками универсален, а без них -- нет, dong ma? :)

Date: 2009-06-18 04:35 pm (UTC)
From: [identity profile] kika.livejournal.com
Естественно, любой со вставками - универсален, если встроенный ассемблер не ограничен. Ну он просто равноуниверсален :-) ассемблеру. Без вставок - возможны варианты. С и без вставок позволяет написать собственный рантайм. А без передачи управления на данные - весь рантайм без стартапа :-)

Date: 2009-06-18 06:21 pm (UTC)
From: [identity profile] pzz.livejournal.com
Угу, напиши на Си без вставок setjmp()/longjmp(). Или сисколл какой-нибудь позови...

Date: 2009-06-18 04:37 pm (UTC)
From: [identity profile] kika.livejournal.com
Ну и снова - вот есть у тебя ассемблерные вставки в яве и чо? Можно написать умножение 2 на 2 очень эффективно :-) С памятью-то они тебе работать все равно не дадут, конечно можно вообще всю программу написать на ассемблере и обернуть в яву, но это как-то неинтересно обсуждать.

Date: 2009-06-18 06:09 pm (UTC)
From: [identity profile] jsn.livejournal.com
И ээ как конкретно они не дадут? Вот я вываливаюсь в raw instructions внутри ява-метода, вот там справа, на полочке, регистры, в которых vm держит whatever (включая locals), а вот там слева -- memory locations, из которых растут деревья environment-а. Jump table хелперов прямо по центру, стек аккуратно разложен под ногами. Что конкретно меня остановит?

Это будет непортабельно, но не более непортабельно, чем ассемблерные вставки на си. Это сильно не "написать всю программу на ассемблере и обернуть её в яву" -- так, на глазок, там нужно несколько дырок просверлить, типа из oref2laddr и наоборот, плюс-минус типы, ну и прочее в таком же ключе.

При этом с "неинтересно обсуждать" я согласен -- чем дальше я уточняю предложенную идею "универсальности", тем больше я согласен с комментатром ниже (про "бессмысленный термин"). Твоё "неинтересно обсуждать" -- это же "impractical", так? Ну так это сильно более слабый термин, чем "универсальный". Если бы ты сказал, что писать рантайм к яве на целиком яве impractical -- дискуссии бы не вышло :)

Я могу ещё за само понятие "C runtime", а также за safety тут спеть, но, по-моему, все уже выдохлись.

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 16th, 2026 04:26 pm
Powered by Dreamwidth Studios