User Tag List

Страница 9 из 18 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 320

Тема: Библиотеки-модули-программы...

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    RAM.ChangeLog - смена страницы памяти на заданную логическую
    Не очень удачное название функции.

    Список модулей хороший.
    Цитата Сообщение от GriV
    Теперь, нажал я резет. Надоел мне вьюер, я захотел текст понабирать - и всё то же самое - загрузился только МОЙ индивидуальный код и все остальные модули подхватились сами.
    Ну вот опять.

    Не надо нажимать RESET.

    Надо выйти из вьюера. Динамический компоновщик и модули останутся в памяти.

    Загрузить текстовый редактор. Он будет использовать модули уже находящиеся в памяти.

    Есть что-нибудь против такого подхода?
    Цитата Сообщение от GriV
    2) возможность расширения - отсутствует, это готовый код - только при перекомпиляции; возможность подмены библиотек - 100% за счёт модульной организации;
    Возможность расширения - за счёт добавления модулей.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Ну вот опять.

    Не надо нажимать RESET.

    Надо выйти из вьюера. Динамический компоновщик и модули останутся в памяти.

    Загрузить текстовый редактор. Он будет использовать модули уже находящиеся в памяти.

    Есть что-нибудь против такого подхода?
    Уже использованный один раз модули надо будет подгружать ещё раз или держать отдельную партию где то в памяти. Фишка в том, что уже "вставленные" в программу модули не получится отделить от программы - это такое свойство модульной структуры.
    Всё-таки я тебе рекомендую посмотреть и разобраться досконально со структурой модулей. С моей точки зрения такой подход совместим только с отдельно фунциклирующей ОСью, а никак не самостоятельные приложения.
    Впрочем здесь нет ограничений на решения, ежели boot.b будет настолько "умным" то возможен и такой вариант - он грузит контейнер модуля в вырхнюю память, а в нижнюю копирует его присоединяет к программе и поехали...

    Цитата Сообщение от captain cobalt
    Возможность расширения - за счёт добавления модулей.
    Ты здесь чего-то недопонимаешь, опять же наверное из-за модулей. Ты можешь расширять программу только когда ты её пишешь - модули же уже написанные и откомпилированные программы (пусть и в особом контейнере). Чтобы чего-нибудь там расширить придётся грузить ассемблер (или ЯВУ если угодно) править программу и включать в неё указание на эти модули. Технология динамической подгрузки здесь не канает, потому что уже запущенное приложение не должно нуждаться ни в одной библиотеке и работать самостоятельно.
    Если же утверждается обратное, то ещё раз - это уже будет не бут-линковщик и целая ОСь.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  4. #3

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2Vitamin> какие уже (в настоящее время) есть вещи так или иначе связанные с модульной организацией (полный список, включая документацию). Что нужно чтобы сие стало "скорее живым, нежели мёртвым"?
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  5. #4

    Регистрация
    04.09.2006
    Адрес
    Краснодар
    Сообщений
    58
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Не надо нажимать RESET.
    Надо выйти из вьюера. Динамический компоновщик и модули останутся в памяти.
    После чего, например, запустить qc, скопировав им полностью какую-нибудь дискету на другую. Или создать рам-диск в памяти. Или запустить аласм, который всосёт в себя пару десятков исходников, разместив их в страницах, да и сам откушает страниц вдоволь.

    Загрузить текстовый редактор. Он будет использовать модули уже находящиеся в памяти.
    Если от них останутся следы. Иначе, он снова полезет на диск, и будет ёрзать башкой, как раненный (из скромности умолчу, куда именно).

    Кстати, заодно придумайте поиск модулей по страницам и проверку их целостности, и сообщите затраты машинного времени на это.
    Последний раз редактировалось yoko_ono; 17.10.2006 в 01:52.

  6. #5

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yoko_ono
    Уважаемый captain cobalt, скажите, вы вживую видели 'подход библиотек Амиги'? Я что-то сомневаюсь...
    Выше 'подход библиотек Амиги' был проклассифицирован 'в терминах винды'.

    Никто из амижников не оспорил.
    Цитата Сообщение от yoko_ono
    Вы вон давеча ажно драйвер памяти аласма записали в ООП или куда там. Признайтесь, вы даже его в глаза не видели?!
    Конечно же видели.

    Вызов драйвера напрямую - это оптимизация, основанная на том, что в каждый момент времени существует лишь один драйвер.
    Цитата Сообщение от yoko_ono
    Вы в жизни не видели процессоры архитектуры 68к, вам мало 15 32-битных регистров? Это вам не х86, где каждый регистр на вес золота.
    Больше регистров - это хорошо.
    Для однопоточного программирования это очень хорошо.

    Но существуют ещё языки параллельного программирования, которые, при надлежащих компиляторах, могут с пользой применять хоть миллион регистров. Впрочем, это не имеет отношения к спеку.
    Цитата Сообщение от yoko_ono
    Кроме того, извольте продемонстрировать тормоза вызовов библиотек амиги, не будьте голословным!
    Например так:
    Все тормоза перечислены.
    Цитата Сообщение от yoko_ono
    А ничего, что с любой линковкой в рунтайм будут тормоза не с компиляцией, а каждый раз - с загрузкой и линковкой?
    На всякий случай повторю, что предлагаю заменить тормоза загрузки на тормоза компоновки. Модуль загружается один раз, и много раз компонуется.
    Цитата Сообщение от yoko_ono
    Поверьте, никакой миграции не будет.
    Вот вы лично готовы использовать вашу эту динамическую компоновку, и в каком именно программном продукте для Спектрума?
    Никаких новых программных продуктов сразу не будет.
    Для начала предлагается адаптировать существующий софт, как то ALASM, BGE, PT. Классические игры Exolon, Earth Shaker, добавить по вкусу.
    Цитата Сообщение от yoko_ono
    Раз вы так в этом уверены, то вы ни разу не проводили дизассемблирование чужих программ.
    Проводили.

    И даже можно провести параллель.

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

    Точно так же и с библиотеками.
    Одну библиотеку ещё можно использовать без документации. Десяток библиотек - никто не будет.
    Цитата Сообщение от yoko_ono
    Есть два основных выхода:
    1. ...
    2. ...
    Готовы ли Вы лично взяться за написание подобного ассемблера для Спектрума?
    Подобный ассемблер уже пишется несколько месяцев. Вялотекущими темпами, как и всё на спеке. Здесь были изложены отдельные идеи из проектной документации. Когда (если) он выйдет, обнаружится что все знают как им пользоваться.

    Но. Сначала компиляция в динамически компонуемые модули, и только потом (необязательно) то что процитировано.
    Цитата Сообщение от yoko_ono
    Скажите, а что вы будете использовать, если вы захотите написать 50fps вьювер, игрушку с выводом спрайтов через стек и кучей 256b-aligned таблиц, мультиколорную или чанковую дему, наконец?
    В некоторой степени это возможно.
    Это всё примеры на динамическую кодогенерацию.

    Можно дать модулю побольше памяти - и пусть он в неё разворачивает процедуры и вызывает их.

    Здесь начинается гибкость против скорости. Гибкость может быть очень полезной штукой на практике. Скорость же в стиле "демо на посмотреть один раз" может имет гораздо меньшее значение. Ибо "пиксели Спектрума никого не плющат".
    Цитата Сообщение от yoko_ono
    Это технология чтения аргументов, 'вшитых' в машинный код, т.е. неизменяемых. И опять же, чтения в регистры, а не использования. Для комфортного их использования (несколько раз и в нужные моменты) их придётся переложить в память, по IX/IY ли, в абсолютную ли (по адресу). Немаловажно и то, что такие аргументы (вшитые в код) затрудняют отладку программы (не ясно, сколько таких аргументов идёт после CALL и когда они кончаются и начинается дальше код, к тому же дизассемблер воспримет их как код, выдав бессмысленные команды).
    Всё правильно.
    Речь только про то, чтобы предусмотреть для них синтаксис для объявления в сигнатуре.
    Цитата Сообщение от yoko_ono
    После чего, например, запустить qc, скопировав им полностью какую-нибудь дискету на другую. Или создать рам-диск в памяти. Или запустить аласм, который всосёт в себя пару десятков исходников, разместив их в страницах, да и сам откушает страниц вдоволь.
    Ну и в чём проблема.
    Ненужные библиотеки можно выкинуть из памяти.
    Если совсем припёрло, можно и динамический компоновщик выкинуть.
    Получится точно такой же qc\alasm, но перезагружаться опять через RESET.
    Цитата Сообщение от yoko_ono
    Если от них останутся следы. Иначе, он снова полезет на диск, и будет ёрзать башкой, как раненный (из скромности умолчу, куда именно).

    Кстати, заодно придумайте поиск модулей по страницам и проверку их целостности, и сообщите затраты машинного времени на это.
    Не предусмотрено такого механизма.

    Есть модули - программа работает. Убиты модули - программа не работает; RESET; загрузка модулей с диска.
    Цитата Сообщение от yoko_ono
    Кстати, уважаемый captain cobalt, раз уж вы замечены в бытности 'одептом ООП', зачитайте вот это:
    Хорошо.
    Я не против.

    А как насчёт ООП на спеке?

  7. #6

    Регистрация
    01.03.2005
    Адрес
    Russia, Krasnodar
    Сообщений
    433
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Все тормоза перечислены.
    Не видел, уточните! Напрасно голосновно заявляете - вам девушка привела кучу примеров, так что дерзайте - сравнивайте с амигой ваш писизм дальше. Только не забудьте на арм процессор (лучше тогда на ппц) сделать спек, чтоб шот как то работал с вашим писизмом и оопами и прочими попами
    http://amigasc.nm.ru

    Free coder and hardwareman
    Amiga addicted

  8. #7

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    Фишка в том, что уже "вставленные" в программу модули не получится отделить от программы - это такое свойство модульной структуры.
    Модули не "вставляются" в программу.
    Программа загружается поверх библиотечных модулей.
    Когда программа завершается, модули остаются и не трогаются.
    Теперь поверх них можно загрузить другую программу.

    Заменим слово "модули" на слово "ОС".
    ОС "вставляется" в программу? Нет.
    ОС можно отделить от программы? Можно.
    Тогда зачем нужно "свойство модульной структуры"?
    Цитата Сообщение от GriV
    Чтобы чего-нибудь там расширить придётся грузить ассемблер (или ЯВУ если угодно) править программу и включать в неё указание на эти модули. Технология динамической подгрузки здесь не канает, потому что уже запущенное приложение не должно нуждаться ни в одной библиотеке и работать самостоятельно.
    Это опять "дух процедурного программирования".

    Функциональностью не обязательно пользоваться явно.

    Если некий модуль загружен в память, а программа умеет использовать абстрактную функциональность, конкретной реализацией является этот модуль, то программа должна использовать этот модуль. А конкретный набор модулей будет конфигурируемым.

  9. #8

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Что есть токенизация?
    Перевод из plain text в "формат ассемблера".

    Ни один из широко используемых спековых ассемблеров не использует plain text для исходников.
    Цитата Сообщение от Vitamin
    Дополнительный проход некой утилитой? А ее нету.
    Такая утилита есть.
    Для каждого ассемблера своя.
    Цитата Сообщение от Vitamin
    Смотри на вещи шире. Предполагаемый подход твоей хотелки не отрицает.
    Вижу, что не отрицает.
    Цитата Сообщение от Vitamin
    Как??? Как программа на этапе выполнения может расширить свой функционал за счет дополнительных модулей, если она про них ни сном ни духом???
    Это опять "дух процедурного программирования".

    Рассмотрим на примере Linux.
    У него есть загружаемые модули ядра.
    Загрузим такой модуль. Смонтируем.
    Всё. Теперь любая программа может пользовать функциональность модуля через стандартный файловый ввод-вывод, хотя о самом модуле "ни сном ни духом".

    Теперь обобщим на произвольный программный интерфейс (не только файловый).
    Понятно?

  10. #9

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Перевод из plain text в "формат ассемблера".
    Ни один из широко используемых спековых ассемблеров не использует plain text для исходников.
    Зато как минимум один ассемблер использует существующие наработки. Лучше синица в руке, чем утка под кроватью %)

    Цитата Сообщение от captain cobalt
    Такая утилита есть.
    Для каждого ассемблера своя.
    Уж тогда возложить на эту утилиту генерацию таблиц для создания релоцируемого кода. Иначе никак.

    Цитата Сообщение от captain cobalt
    Это опять "дух процедурного программирования".

    Рассмотрим на примере Linux.
    У него есть загружаемые модули ядра.
    Загрузим такой модуль. Смонтируем.
    Всё. Теперь любая программа может пользовать функциональность модуля через стандартный файловый ввод-вывод, хотя о самом модуле "ни сном ни духом".
    Теперь обобщим на произвольный программный интерфейс (не только файловый).
    Понятно?
    Ну вот... Попался... Я если честно, чтото не припомню полиморфизма в ядре линукса. Для того чтобы удостовериться, даже спросил у человека, который разрабатывал эти модули- нету там неявного вызова!!! Нечто похожее есть только при регистрации файлового интерфейса спецустройств, да и то, ядро о твоем модулей и знать не знает пока ты явно не постучишься к обслуживаемому им устройству. Я уже не говорю про простые модули, которые в ядре просто висят и обращение к ним идет по конкретным именам функций, которые должны быть уникальны во всем адресном пространстве!

  11. #10

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "Монтирование" с точки зрения ядра Linux это что?

Страница 9 из 18 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 9
    Последнее: 10.11.2024, 08:26
  2. Управление эмулятором из zx-программы
    от Spectre в разделе Эмуляторы
    Ответов: 42
    Последнее: 29.08.2006, 12:58
  3. Кто может помочь в создании программы
    от Лебедев в разделе Люди
    Ответов: 9
    Последнее: 22.07.2006, 09:41
  4. Программы для модемов
    от p@lex в разделе Софт
    Ответов: 21
    Последнее: 11.02.2006, 21:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •