User Tag List

Страница 10 из 54 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 531

Тема: ZX Like Pascal

  1. #91

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

    По умолчанию

    Это все тянет на проект по сложности не уступающи zx like pascal

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

  3. #92

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

    По умолчанию

    На гораздо сложнее тянет.

  4. #93

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Можно было бы. Только тогда надо забыть о пользовательских процедурах на ассемблере, иначе мне придется еще писать и кросс-ассемблер.
    Есть ещё третий вариант - выводить не ассемблерный код, а уже скомпилированный, но в виде релоцируемого объектного модуля. Разумней всего в формате .rel от SDCC.
    Тогда к нему можно будет прилинковывать ассемблерные вставки, собранные SDCC-шным же ассемблером.

    Но вообще нет ничего странного в том, чтобы получать на выходе компилятора асмовый исходник. Более того, практически все компиляторы, которые я встречал, работали именно так. Вот прямо начиная с HITech C для CP/M и заканчивая gcc и clang. Просто у современных компиляторов этап ассемблирования скрыт.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  5. #94

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

    По умолчанию

    Я, по мере доработки транслятора в Си, Ofront+, иногда ловлю себя на мысли, что сам бы так не написал. Да, увы, наши человеческие возможности ограничены. Кто-то развит лучше нас в какую-то свою сторону. Конечно TP сложнее, так и мощнее ведь.

    Кроме того, я призываю не ограничиваться TP. Если в TP что-то плохо, нужно иметь смелость отказаться от этого, даже в ущерб совместимости, хотя бы в виде компромисса (ключики -oldSyntax, -newSyntax). Если в Паскале есть проблемы (лишние begin'ы), я не останавливаюсь на Паскале, а иду дальше. Если в Обероне есть проблемы (мало возможностей), я не останавливаюсь на Обероне, а иду дальше. Даже такой сравнительно простой проект как транслятор Оберона в Си (а есть мнение, что Оберон - почти Hello World в мире языков программирования) требует действительно большого ментального напряжения. Что уж говорить про компиляторы с более сложных языков.

  6. #95

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Andrew771, а что с ORG? Если его надо менять, то батником не обойтись. Хочется одну вещь попробовать сделать, но адрес мне другой нужен. Удобно, если в паскалевском исходнике уже указано куда компилировать, а не менять в ASM каждый раз.
    Ты имеешь в виду первоначальный адрес паскалевской программы или чтобы можно было в любом месте вставить ORG несколько раз? Если хочешь вставить в свои асмовские процедуры после последнего END Паскаля, то смело можешь вставлять, кросс-ассемблер правильно скомпилирует. А если внутри паскалевского кода, то зачем? Сделать мне не трудно.

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

    Цитата Сообщение от AzAtom Посмотреть сообщение
    И ещё пожелание менять расширение. Т.е., из "program.prg" делать "program.asm".
    Это - пережиток от первой версии, когда быстро набросал, всё руки не доходят.

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

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    От Олега Комлева, соавтора XDev:
    Сообщение от Saferoll
    Сообщение для Андрея Шарина (Andrew771)
    В версии ZX Like Pascal v.0.908 такая же ошибка, как в реализации FOR для MSX-BASIC на Ямахе: есть проверка попадания на границу, но нет проверки на первоначальное нахождение нач.значения за границей. Поэтому любой цикл FOR выполняется хотя бы 1 раз, даже если начальное значение заведомо превышает конечное (например, "for a:=247 to 0 do write(a,' ');" напечатает 247).
    Это уже не буду делать, т.к. ухудшит быстродействие. Пусть будет на совести программиста ошибочный счетчик. У меня много где нет "защиты от дурака" - например, проверки выхода за границы массивов, строк. Проверка границ спрайтов - опционально по флагу. Просто, если делать проверки, ухудшит быстродействие.

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

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    В нативном компиляторе прям на самом Спеке смысла вообще не вижу. Ты хочешь сделать хороший компилятор или поиграться? ;-)
    Больше второе - поиграться. Особенно хочется создать самокомпилируемый компилятор. В ZX Like Pascal для этого не хватает всего лишь малость - процедуры с параметрами и локальными переменными. Тогда можно будет сделать нативный ZX Like Pascal на ZX Like Pascalе.

  7. #96

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Если хочешь вставить в свои асмовские процедуры после последнего END Паскаля, то смело можешь вставлять, кросс-ассемблер правильно скомпилирует.
    После твоего компилятора получается ASM с первой командой "org 23900", вот чтобы его менять можно было из исходного PRG файла. Например, чтобы до первого begin поставить директиву {$ORG xxxxx} и чтобы это потом оказалось в ASM файле. А в середине паскалевской программы даже не знаю, надо ли это...

  8. #97

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    После твоего компилятора получается ASM с первой командой "org 23900", вот чтобы его менять можно было из исходного PRG файла.
    ок, приделаю в следующей версии 0.909.

  9. #98

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Но вообще нет ничего странного в том, чтобы получать на выходе компилятора асмовый исходник. Более того, практически все компиляторы, которые я встречал, работали именно так. Вот прямо начиная с HITech C для CP/M и заканчивая gcc и clang. Просто у современных компиляторов этап ассемблирования скрыт.
    Вообще для двух последних, если я все верно помню, высказывание не является действительностью. Ни тот ни другой ассемблер не используют и не генерируют, причем давно. Оба генерируют некий промежуточный код, который унифицирован для всех используемых платформ. На его основе генерируется сразу компилированный код, без промежуточной трансляции в текст или еще какие промежуточные представления.

  10. #99

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Q-Master Посмотреть сообщение
    Вообще для двух последних, если я все верно помню, высказывание не является действительностью. Ни тот ни другой ассемблер не используют и не генерируют, причем давно.

    Код:
    $ sudo mv /usr/bin/as /usr/bin/as1
    $ gcc a.c 
    gcc: error trying to exec 'as': execvp: No such file or directory
    Оба генерируют некий промежуточный код, который унифицирован для всех используемых платформ.
    Ну да, именно так компиляторы и работают. Ещё Hitech C так работал. Там первым этапом был синтаксический разбор и преобразование в какой-то промежуточный код, вторым - запуск аллокатора регистров и всякого сопутствующего для получения ассемблерного исходника.
    У clang так вообще два таких преобразования происходит. Сперва в LLVM, потом, когда станет нужно - в асм. Но у него это "стало нужно" может и после окончательной линковки уже случиться.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  11. #100

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, из мануала:
    Random(x) - Случайное число от 0 до x включительно. x может быть также арифметическим выражением.
    Может, правильнее выдавать не включительно, как делает тот же турбопаскаль от борланда? Тогда будет меньше проблем с переносом кода оттуда, например.

    Процедуры допустимы только без параметров и локальных переменных.
    Ждём их поддержки. По крайней мере, переменные цикла должны быть локальными, чтобы исключить повторное использование имени.

Страница 10 из 54 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

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