РМ>Не морочь себе голову ИМХО. Есть уже интерпритатор готовый? Прикурчивай по минимуму и начинай тестировать. Если важно это дело с прототипами, то оно всплывет. Попроси народ накидать нетривиальных примеров использования javascript и пробуй.
Посмотрел я на SEE engine (ECMAScript) и понял лучше бы его автор и не писал.
Байткода нет. GC фактически тоже нет. Мрак.
В общем делаю downgrade с-smile до уровня JS
РМ>Я правда не очень понимаю, как ты собираешься его прикручивать. ДОМ-то твой не настоящий, а что за javascript без ДОМа?
Ложится один в один практически. обертки просто надо написать.
c-smile — компилируемый поэтому comptibility прослойки пишутся на нем и транслируются в байткод.
Т.е. можно выбирать программно IE flawor / Gecko flawor.
Здравствуйте, yxiie, Вы писали:
Y>Здравствуйте, c-smile, Вы писали:
Y>ты заметь, что в JavaScript нет явных определений class. Y>именно через prototype это эмулируется
В Веб Программировании народ воспринимает JS как данность и снаружи.
Я же смотрю на это дело изнутри. С точки зрения имплементации.
Так вот с точки зрения имплементации лишний prototype в имплементации.
сажает производительнось значительно. Без него все прекрасно ложится и пртототипирование
и эмуляция ООП и т.д.
Вот я и думаю кому это было нужно — замедлять производительность?
Чей-то злой умысел или как?
Здравствуйте, c-smile, Вы писали:
CS>c-smile — компилируемый поэтому comptibility прослойки пишутся на нем и транслируются в байткод. CS>Т.е. можно выбирать программно IE flawor / Gecko flawor.
Да теперь то уж и просто по спецификации можно по идее...
Здравствуйте, c-smile, Вы писали: CS>Ага! Ну ка, ну ка.... подробности?
Многое выкладывать здесь немогу, поскольку по этому проекту идет оформление патентов, но в кратце могу сказать, что мы пересматриваем в первую очередь подход к интернет безопасности и удобство пользования интернетом в целом (не только браузинг).
BFA>>Было бы интересно пообщаться. CS>Интересно пришла ли мне пора общаться с ангелами или нет?
Мощные маркетинговые решения и великолепное финансовое положение говорят за это
CS>Имхо имечко вы себе выбрали оченно двусмысленное, особенно для запада.
В общем да... Но по нашим тестам плюсов именно такого имени намного больше, чем минусов.
CS>Особенно angel-jobs.com звучит просто караул!
Великолепные перспективы. Начнете с младшего ангела. Большие перспективы карьерного роста — можете дорасти до архангела
BFA>>АСЯ: 103577986 CS>Кто такая "АСЯ" ?
icq.com
pototype сделан для того, чтобы каждый объект не держал в себе копию методов, ведь при копировании такого объекта:
a.some=function () {...}
будут копироваться и методы. а если их много? очень много? вот для этого и придумали pototype.
так что не надо думать, что ты умнее ECMA они придумывали стандарт не исходя из каких=то эфимерных целей, а исходя из практической реализации, так что pototype думаю придется делать однозначно
Здравствуйте, B.F.AngelLab, Вы писали:
BFA>Великолепные перспективы. Начнете с младшего ангела. Большие перспективы карьерного роста — можете дорасти до архангела
Здравствуйте, c-smile, Вы писали:
CS>Я заметил как ты понимаешь. Давно. CS>Сходи например сюда: http://c-smile.sourceforge.net/
не знаю, что я там должен был увидеть, но я посмотрел
скриптовый язык симпатичный, но итнересует скорость работы вирт.машины, в сравнении скажем с perl, lua, python. тесты делели?
и еще один момент интересует — он что, правда public domain?
Здравствуйте, yxiie, Вы писали:
Y>Здравствуйте, c-smile, Вы писали:
Y>pototype сделан для того, чтобы каждый объект не держал в себе копию методов, ведь при копировании такого объекта: Y>a.some=function () {...} Y>будут копироваться и методы. а если их много? очень много? вот для этого и придумали pototype.
В моем варианте instances тоже не содержат методов:
function MyObject() { }
MyObject.myClassMethod = function() { alert("ku-ku"); } // цепляем метод к "классу"
var a = new MyObject();
a.myClassMethod(); // выдаст alert(ku-ku)
JavaScript для того чтобы достичь точно того же использует:
function MyObject() { }
MyObject.prototype.myClassMethod = function() { alert("ku-ku"); }
var a = new MyObject();
a.myClassMethod(); // выдаст alert(ku-ku)
Зачем нужен prototype?
Y>так что не надо думать, что ты умнее ECMA они придумывали стандарт не исходя из каких=то эфимерных целей, а исходя из практической реализации, так что pototype думаю придется делать однозначно
Мда...
Вопрос не в том делать или нет. "Каждый солдат должен знать свой маневр" что бы достичь результата самым эффективным образом. Вот мне и интересно — в чем смысл такого решения.
Для справки JavaScript родился в Нетскейп. Автор (основной?): Вальдемар Хорват (Waldemar Horvat)
К сожалению не могу найти его e-mail. Все которые в инете — дохлые.
А ECMA как например Госстандарт России сама(само) ничего не придумывает.
Здравствуйте, yxiie, Вы писали:
Y>скриптовый язык симпатичный, но итнересует скорость работы вирт.машины, в сравнении скажем с perl, lua, python. тесты делели?
Нет. Некогда было. Теоретически одно из самых быстрых решений.
Y>и еще один момент интересует — он что, правда public domain?
блин, я уже устал
в предидущем посту я объяснил. ладно, попробую показать на пальцах...
если идет обращение к полю или методу и объект его не содержит — идет поиск в свойстве prototype, таким образом как-бы достигается реализация таких вещей как class и object.
это класс:
function MyClass() {
this.field=4;
}
MyClass.prototype.method=function () {
trace(this.field);
}
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, yxiie, Вы писали:
Y>>скриптовый язык симпатичный, но итнересует скорость работы вирт.машины, в сравнении скажем с perl, lua, python. тесты делели?
CS>Нет. Некогда было. Теоретически одно из самых быстрых решений.
практика показывает, что теория часто сильно отличается от практики
тесты посмотреть было бы очень интересно.
я помню тоже начинал изучение С++ с написания JavaScript-подобного интерпретатора, только я еще извращался, прикрутил классам перегрузку операторов, препроцессор
но это не важно, важно то, что скорость исполнения по тестам оказалась во много раз ниже того же пхп 4.0.3
так что советую сделать тесты, чтобы серьезно попуститься (ну или очень воспрять духом)
и что примечательно — не нашел вообще никакой доки, хоть это пожалуй вполне свойственно public domain вещам
Здравствуйте, c-smile, Вы писали:
CS>На самом деле c-smile это практически JavaScript v.2.0 CS>Нормальные классы, наследование и пр.
CS>См. например http://www.mozilla.org/js/language/evolvingJS.pdf
CS>Единcтвенно что не имплементировано в нем так это ограничители типов JS 2.0:
CS>var num:Number = 22;
меня больше интересует виртуальная машина (если она действительно хорошая).
там на сайте написано, что он легко интегрируется в С++ программы. насколько это так? (легко)
дело в том, что у меня уже есть своя архитектура, со встроенными типами, рефлексией и.т.д., а вот нормальную вирт. машину с продвинутой оптимизацией писать как-то влом..., поэтому пока скрипты и не прикручиваю.
Здравствуйте, yxiie, Вы писали:
Y>меня больше интересует виртуальная машина (если она действительно хорошая). Y>там на сайте написано, что он легко интегрируется в С++ программы. насколько это так? (легко) Y>дело в том, что у меня уже есть своя архитектура, со встроенными типами, рефлексией и.т.д., а вот нормальную вирт. машину с продвинутой оптимизацией писать как-то влом..., поэтому пока скрипты и не прикручиваю.
С PHP веселая песня вообще-то. У него нет garbage collector. Вообще.
Т.е. VM создается на момент исполнения запроса и уходит вся скопом вместе с аллоцированной памятью. Что не для каждй задачи подходит. Но зато действительно шустро — malloc это просто mem += len;
Ты разберись что тебе надо сначала.
Если принципиально эффективность то можно и JavaVM (не javascript) прикрутить — исходников в инете море. Рекомендую JamVM