Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   ActionScript - полная лажа" или "Как не надо делать интерпретаторы" (http://www.flasher.ru/forum/showthread.php?t=36761)

Nox Noctis 13.09.2002 20:13

Цитата:

Оригинал написал(а) infinity
и отсюда следует тот упадок производительности в связи с поиском по строке-ключу
вот-вот :))
присоединяюсь к шаману... :))
...и к делимитеру :)))

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

мы ж глупые флэшеры - что с нас взять ?! :)) ну так объясни о чем речь :))

DeliMIter 13.09.2002 20:19

2Nox

А можно я его просто порву, а? Без виртуальной машины?

Nox Noctis 13.09.2002 20:35

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

Crazy 13.09.2002 20:52

Джентльмены, вы испытываете удовольствие, пытаясь убедить ламера, что он ламер? :)

Slonishe 15.09.2002 08:40

2 infiniti

Перечитал ты книжек по-моему... отдохнуть тебе надо...
Вот иди лучше пива попей, хорошая идея была :D

AnGL 15.09.2002 18:08

Поиграем в Что? Где? Когда? :)
 
Итак господа. Не претендую на большой фурор своей заметкой, но надеюсь разъяснить некоторым, какое же место занимает AS как разновидность скриптовых языков.

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

Для начала определимся в следующем, сценарные языки вовсе не признаны заменить собой системные языки типа C или Delphi. Скриптовые языки по другому еще называют языками склейки (glue languages, на компьютерном жаргоне - склейка обозначает любую интерфейсную логику, или взаимодействие технологий, компонентных блоков).

Скрипты, как правило, взаимодействуют с другими программами, либо с набором функций, предоставляемых песочницей(интерпретатором). Ларри Уолл (автор языка Perl) говорил: "Сценарий(скрипт) - это то, что вы передаете актеру, а программа - это то, что передается зрительному залу...".

Скриптовые или сценарные языки широко используются во всех сферах применения компьютерных технологий именно как "скрепляющий" элемент для увеличения функциональности и расширения программных комплексов. От проектирования самолетов до управления кофеваркой.

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

Думаю этого достаточно.
С уважением... :rolleyes:

OverLord 15.09.2002 18:44

к чему бы это? ;)

greyshaman 16.09.2002 11:46

Цитата:

Оригинал написал(а) Slonishe
2 infiniti

Перечитал ты книжек по-моему... отдохнуть тебе надо...
Вот иди лучше пива попей, хорошая идея была :D

угу белитристики :p

infinity 16.09.2002 16:13

ЧТОЖ, становится ИНТЕРЕСНО
 
Итак, по настоятельным рекомендациям Slonishe пива мы попили и продолжаем наш рассказ... :D

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

итак по теме:
сколько я не объясняю, никто читать и вникать не хочет.

ПОЧЕМУ Я СЧИТАЮ ЧТО ИНДЕКС МАССИВА ХРАНИТСЯ В СТРОКОВОМ ВИДЕ?
еще раз приведу фрагмент кода, который я писал в начале
Код:

a[1]="xxx";
trace(a["1"]);

и наоборот

a["1"]="xxx";
trace(a[1]);

это значит, что элементы a[1] и a["1"] - один и тот же элемент.
следовательно при определении индекса выражения 1 и "1"
приводятся к какому-то одному типу.
предположим, что этот тип, как вы все утверждаете - число (DWORD, или чегото там как вам угодно). если индекс приводится к числу, то не будет иметь смысла выражение
a["xxx"] а такое, как известно в АС возможно.
для тех кто в танке - сделаю вывод - внутренне индексы массива (так же как идентификаторы членов объекта да и идентификаторы любой переменной) хранятся в СТРОКОВОМ виде (в виде ПОСЛЕДОВАТЕЛЬНОСТИ символов, а не в виде бинарного значения - еще раз для тех кто в танке).

а если бы по индексации по числу индекс не преобразовывался в строку, то a[1] и a["1"] являлись бы разными элементами что на самом деле не так.

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

поэтому прежде чем писать свой ответ и обзывать меня ламером, будьте любезны почитать то, что я вам писал и попытайтесь понять. и если вы поняли что я неправ, прошу АРГУМЕНТИРОВАННО объяснить мою неправоту (пока что мне кажется я отверг все нападения в мою сторону).

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

P.S.
если все же кто-то не верит, что в памяти флеш ищет переменные по их имени (строковому), тогда объясните как же
работает eval:
Код:

var somename="something";
var namepart1="some";
var namepart2="name";
trace(eval(namepart1+namepart2)); //выведет something

Ну так что? у кого-то еще остались сомнения в том, что
в памяти флеш ищет переменные по строке.
если все же не верите, ПОДРОБНО скажите почему, и я попытаюсь объяснить

P.P.S.
Книжки не читаю - в них нету поиска, неудобно :D

2 Crazy
вот это наверно великого гуру и учителя зацепил мой топик,
что он снизошел до того, что обозвал простого смертного ламером :eek:

2 DelIMiter
насчет моей смерти я ничего не понял.
вы обладаете достаточной властью чтобы предвидеть такие события?

[subway]design 16.09.2002 17:24

Хочется поставить точку в вашем споре. Хочется, но... могу, только мои познания могут показаться не слишком авторитетными.
А решение простое:

СВФ - это "текстовый" формат. В том смысле, что Флэш Плеер
читает этот текст и на основании прочитанного делает определенные действия. Никакой работы с памятью в АС нет. Всю память распределяет Плеер по своему алгоритму.

!!! И для него нет разницы что читать - "строковый индекс" или "числовой индекс" - это все те же char'ы. Весь СВФ - это набор однобайтовых переменных. На то он и интерпретатор, чтобы читать и тормозить.

Такое мое мнение.

2 infinity - в книжках есть алфавитный указатель+содержание. Очень удобно.


Часовой пояс GMT +4, время: 16:11.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.