User Tag List

Страница 52 из 91 ПерваяПервая ... 484950515253545556 ... ПоследняяПоследняя
Показано с 511 по 520 из 907

Тема: Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию

  1. #511

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    ты же прекрасно знаешь, что не существует платформы .NET, и что сборки .NET не эмулируются, правда?
    Что же тогда .NET если не платформа? Фреймворк? Набор классов?

    И я не говорил, что сборки эмулируются. Программная платформа .NET эмулируется поверх аппаратной (Windows, Linux, Mac etc). И даже после трансляции в натив приходится таскать с собой всю платформу - её классы, метаинформацию, нужную для их работы, и т.д.

    Ещё непонятно:
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    VM у явы, дотнет с рождения JIT
    А я считал, что .NET это тоже VM, а у JVM тоже есть JIT-компилятор. И вот приходится блуждать в таких высказываниях людей, которых я считаю опытными дотнетовцами и джавистами.

    В общем, что ни говори, подход Slim Binaries выглядит технологически совершеннее. Но по факту ещё долго будут доминировать плохие реализации древнего пи-кода. Придуманного, кстати, проф. Виртом для его Паскаля.

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

  3. #512

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Программная платформа .NET эмулируется поверх аппаратной (Windows, Linux, Mac etc).
    Олег, Windows и Linux - это программные платформы. Аппаратные - это ARM, x86, x64. На аппаратной платформе исполняются ОС, в которые может быть установлен набор библиотек и специальная среда исполнения, которая компилит сборки .NET в нативный исполняемый код целевой аппаратной платформы.
    Некоторые программно-аппаратные платформы, например, носимые устройства, имеют производительность, недостаточную для комфортного запуска .NET приложений с предкомпиляцией впервые исполняемого кода. Для решения этой проблемы был придуман .NET Native. И не более.

    - - - Добавлено - - -

    По поводу VM - не VM. Как сейчас дела у Java обстоят, я не в курсе, но .NET никогда не эмулировал IL-код сборок на целевой платформе, он его всегда компилировал (JIT-компилятором) в нативный код и исполнял непосредственно на процессоре. За это в .NET отвечает CLR - Common Language Runtime (программная среда исполнения .NET-кода).
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  4. #513

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Что же тогда .NET если не платформа? Фреймворк? Набор классов?
    в .net штатно можно работать с памятью, указатели, запрос памяти у операциоки итд, т.е. после jit будет не JNI шлюзы а очень часто обычный call
    тобиш результат дотнета это не процес в какой то виртуальном окружении, а обычный процесс ну с библиотечками разными, ну проверок больше чем хотелось бы

    на C#
    Код:
    class Program
        {
            [DllImport("kernel32.dll")]
            static extern IntPtr GetConsoleWindow();
    
            [DllImport("user32.dll")]
            static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    
            const int SW_HIDE = 0;
            const int SW_SHOW = 5;
    
            static void Main(string[] args)
            {
                var handle = GetConsoleWindow();
                ShowWindow(handle, SW_HIDE);
                Console.Read();
            }
        }
    листинг на ассемблере
    Код:
                var handle = GetConsoleWindow();
    00000000  push        ebp 
    00000001  mov         ebp,esp 
    00000003  sub         esp,14h 
    00000006  xor         eax,eax 
    00000008  mov         dword ptr [ebp-0Ch],eax 
    0000000b  mov         dword ptr [ebp-10h],eax 
    0000000e  mov         dword ptr [ebp-14h],eax 
    00000011  mov         dword ptr [ebp-4],ecx 
    00000014  cmp         dword ptr ds:[0215C730h],0 
    0000001b  je          00000022 
    0000001d  call        5DD39FEF 
    00000022  xor         edx,edx 
    00000024  mov         dword ptr [ebp-8],edx 
    00000027  call        FFFFF8B0 
    0000002c  mov         dword ptr [ebp-0Ch],eax 
    0000002f  mov         eax,dword ptr [ebp-0Ch] 
    00000032  mov         dword ptr [ebp-8],eax 
                ShowWindow(handle, SW_HIDE);
    00000035  mov         ecx,dword ptr [ebp-8] 
    00000038  xor         edx,edx 
    0000003a  call        FFFFF8BC 
    0000003f  mov         dword ptr [ebp-10h],eax 
    00000042  nop 
                Console.Read();
    00000043  call        5D1EF8EC 
    00000048  mov         dword ptr [ebp-14h],eax 
    0000004b  nop 
            }
    если пошагать, то вызов нативных методов как раз в ядро винды уходят после линковки

  5. #514

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У нас тут со Smalovsky случился приватный разговор, в котором от утверждает, что:
    Цитата Сообщение от Smalovsky
    Оберон уже не в моде. Сейчас все следят за Component Pascal и Oxygene.
    На что я хочу ответить публично, вдруг кто-то тоже так думает.

    Oxygene - наследник Delphi и наследует его традиции, в т.ч. и сложность. Это большой современный язык, на который оказали влияние C# и другие новые языки. То есть шаг в сторону усложнения. И попытка "из коробки" дать юзеру мощный инструмент для разработки под актуальные платформы.

    Компонентный Паскаль - напротив, очень маленький и простой язык. С поддержкой новых платформ у него туго. Фактически есть всего два компилятора КП - BlackBox Component Builder (в код x86-32) и Gardens Point Component Pascal (в байт-код JVM и .NET). Если хочется современных фич и плюшек, 64-битности, то упс. Впрочем, наш Оберон-клуб в этом смысле впереди планеты всей, и у нас есть транслятор КП в Си, сделанный фирмой Oberon microsystems на базе того же Ofront. Пользуйтесь. Если разберётесь.

    Дайте угадаю. Вы считаете, что Оберон - это такой старый архаичный язык, который умер 30 лет назад. А КП - это что-то современное. Спешу обрадовать. Знаете чем отличается Component Pascal от Oberon-2 ? Я не поленюсь перечислить. Атрибутами процедур NEW/ABSTRACT/LIMITED/EXTENSIBLE, модификаторами параметров IN/OUT, дополнительной операцией $ для строк, парочкой новых типов, функцией BITS() и ВСЁ. Извините, если чего упустил. Компонентный Паскаль - это очень слегка прилизанный Оберон-2. Подчёркиваю: очень слегка.

    Кстати, я в трансляторе Ofront+ использую фичи из КП.

    Можно ли программировать на КП для Z80? Можно. На подмножестве. Транслятор КП в Си добавляет слишком много мета-информации к модулям, это нужно для фишек, к которым привыкли юзеры C#, таким как: узнать на лету типы и поля структуры и т.п. Так что для Z80 видится разумным использовать не КП, а именно тот самый Oberon-2 с некоторыми фичами из КП, реализованный в трансляторе Ofront+.

    Чтобы ещё раз подчеркнуть минимальность различий КП и Оберона-2 я покажу вам два исходника, которые написаны так, что собираются как компилятором GPCP (Gardens Point Component Pascal) для JavaME, так и транслятором ZXDev/Ofront+ для Спектрума:

    https://github.com/Oleg-N-Cher/Dash/...d/Labirint.Mod
    https://github.com/Oleg-N-Cher/DarkW.../DarkWoods.Mod
    Последний раз редактировалось Oleg N. Cher; 12.08.2016 в 18:55.

  6. #515

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я вклинюсь в разговор. Оберон на xilinx 2016г
    http://www.astrobe.com/RISC5/default.htm
    и поддержка виндовс 10

  7. #516

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Reobne давно критикует XDev за то, что для сборки нужно писать батники, а для него это неподъёмный барьер. ;-) Посему наконец предприняты шаги для упрощения написания этих самых нехороших батников. Я исхожу из того, что хранить настройки проекта всё равно где-то нужно, поэтому мы будем хранить их в удобных для редактирования текстовых файлах, т.е. в батниках. ;-) Но упрощённых. Теперь у нас есть много опций, которые мы можем задавать, не опасаясь запутаться в тонкостях вызова SDCC и линковки. Конечно всё это ещё нужно тестировать. Но зато:

    • поддерживаются многомодульные проекты;
    • поддерживается хранение символьных файлов в папке /Obj (без отдельной папки /Sym);
    • поддерживается хранение модулей в папке проекта (без отдельной папки /Mod).

    Читать дальше...

  8. #517

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,337
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Именно! Спасибо, что пытаешься понять меня, но всё-таки не только "писать батники", но и "думать про батники", и "помнить о батниках". Я хочу вообще о них забыть как о страшном сне. Пусть будет форма, вызываемая из меню среды ZX-dev, где всё что нужно для проекта можно установить. Пусть эта форма меняеться от версии к версии ZX-dev, а не:
    Вот ZX-dev. А это новые версии ZX-dev-а. А это фишки программирования ZX-dev, и новые фишки для новых версий ZX-dev. А это батник, который в тёмном чулане хранится, со своими фишками, и новыми фишками для новых версий ZX-dev. А вот и грабли, которые в старых фишках батника и в новых фишках батника, и по дороге к чулану, и в фишках проекта, и в новых фишках проекта, для очередной версии ZX-Dev. А вот и зашуганый кот, который приходит програмить в ZX-dev, которого бьют по лбу грабли в чулане, при поиске чулана, при узнавании что чулан существует, при узнавании, что у батников свои фишки, при узнавании про новые версии ZX-dev, с новыми фишками и новыми граблями. А это старый пёс без хвоста, который за шиворот треплет кота, за то что тот морщится и мяукает, когда его по лбу бьют все эти грабли. А вот и доильница строгая, которая бранит трусость всех котов мира, которые не идут читать форум, и узнать наконец про правила, как избегать некоторых из граблей.

  9. #518

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как же ты хотел, дарагой? Если таки не веришь мне про грабли, то возьми, что ли, Дельфи 3 и попробуй им собрать проект для Дельфи 5. Но там контора солидная была, а ZXDev - самопал. Однако ты верно заметил, фишек много! Да... ;-)

    - - - Добавлено - - -

    Вот такое годится? Учти, это не избавляет от необходимости понимать логику опций SDCC. По крайней мере, для продвинутых применений. Но для быстрого старта такого меню конечно с головой, практически все поля можно оставлять дефолтными.

    Нажмите на изображение для увеличения. 

Название:	ZXDevSetup.png 
Просмотров:	241 
Размер:	6.4 Кб 
ID:	58024

    P.S. В SDCC появилась возможность задавать для ф-ций список регистров, которые они гарантированно не портят. Я только заметил. Выглядит так:
    Код:
    extern void Laser2_PTBL (signed char col, signed char row, unsigned char spn) __preserves_regs(b, c, d, e, iyl, iyh);
    Безкрайнее поле для оптимизации всего, чего придётся. ;-)

  10. #519

    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,131
    Спасибо Благодарностей отдано 
    55
    Спасибо Благодарностей получено 
    257
    Поблагодарили
    195 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а среда под какие ОСи?

  11. #520

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Под Windows 32/64 бит. От XP и до 10'ки. На последней не тестился, но должен работать.

    Транслятор Оберона в Си - Ofront+ (сама суть XDev) для командной строки работает под Linux 32/64 и Windows 32/64 бит. Наверно легко собрать и под какой-нить ARM/Raspberry Pi (я не пробовал).

    То есть берёшь транслятор командной строки, какой-нить подходящий текстовый редактор, дёргаешь библиотеки из ZXDev, пишешь свои bash-скрипты для сборки и вызова Ofront+/SDCC и юзаешь. Так я себе это представляю.

    А правду говорят, Raydac, что ты там визуальные среды разработки на базе языка Дракон у себя в блоге критикуешь? Кошка на усах принесла. ;-)

    Reobne, погоди, доделаю, отпишусь. В связи с очень плохим знанием BlackBox API и его средств построения форм, мне постоянно приходится доставать глупыми вопросами Ивана Кузьмицкого. Вот такой я не гордый. ;-)

    Процесс визуальной разработки в BlackBox имеет свою собственную красоту, но сильно отличается от Delphi'шного.

    - - - Добавлено - - -

    Да и форумы читать приходится, прикинь? ;-)

    Reobne, я давно хотел составить FAQ по разным тонкостям ZXDev, но не для себя же мне его писать? Где люди, которые задают вопросы? Я пока видел только критиканство в стиле "фи, это не Си, не асм и не Паскаль".

    А не делал поддержку мастера для сохранения настроек не потому, что очень ленился, просто не сформировалось понимание как именно ему надлежит выглядеть. Да и сейчас нет. Например, ещё не придумал как защитить написанные вручную батники от переписывания автоматически сгенерированными в результате нажатия на кнопку Save. Ну и не спрашивай, где будут храниться настройки. ;-) Сам скажу. В Project/Rsrc/Strings.odc, но, правда, прозрачно для юзера, т.е. он не должен вникать во внутреннюю структуру этого файла, хоть он и текстовый.

    .c-файлы будут тереться вообще (кроме главного для многомодульных проектов) процедурой уборки (Clean), так что знание языка Си для работы в ZXDev не требуется, достаточно минимального знания ZX-Basic.

    - - - Добавлено - - -

    И ещё не придумал где хранить название подсистемы. Ведь файла свойств проекта может и не быть. В батнике? В каком? В отдельном или в тех же compile.bat/build.bat? Но если мы будем знать название подсистемы, мы можем обойтись и без батников. Директивой (*$ZXDev*) прямо в тексте модуля? Но тогда придётся в тексте каждого модуля. А без знания, какой подсистемой собирается проект, откуда мы знаем какие символьные файлы использовать? И где именно они хранятся. В общем, одни сплошные вопросы, Reobne. А ты вместо того, чтобы помочь, испугался и убежал. ;-)

Страница 52 из 91 ПерваяПервая ... 484950515253545556 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. мощная игрушка
    от ZEman в разделе Игры
    Ответов: 128
    Последнее: 23.03.2024, 17:05
  2. Ответов: 5
    Последнее: 20.06.2011, 03:18
  3. Видеоконтроллер из пяти микросхем
    от zx-kit в разделе Изображение
    Ответов: 20
    Последнее: 31.03.2011, 14:48

Метки этой темы

Ваши права

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