Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47 Сообщений: 313 Откуда: Село Лютенька
Рейтинг сообщения:0
Хочу написать компилятор для своего языка программирования на FASM. Допустим, я сейчас пишу под Windows, а если потребуется перенести его на Linux, значит всё придётся переписывать(под терминал, оболочку и т.д.)? Как те же gcc всякие стали кроссплатформенными, также всё переписывали под каждую ОСь? Возникла идея: под каждую операционную систему свой модуль лепить, для ввода/вывода, потом при компиляции выбирать один из модулей, в зависимости от того, на какую систему мы компилируем код
_________________ "Умный может зарабатывать триста рублей, а проживать три тысячи"
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47 Сообщений: 313 Откуда: Село Лютенька
Рейтинг сообщения:0
Тень, должны. Переформулирую немного: мой компилятор(скорее интерпретатор) должен запускаться в терминалах этих операционных систем, и как я понял, необходимо будет переписать всю ту часть, которая будет отвечать за запуск этого компилятора. Тоже самое и с генерацией исполняемого файла. Просто я подумал, может есть какая-то кроссплатформенная штука, которая позволит всё это дело делать во всех ОС. Сейчас вопрос: кроссплатформенные компиляторы(например для Си++) только потому-что их переписывали под разные системы? JMS.Hard, у меня всё таки компилятор для уже существующих ОС, а не для самопала какого-то, поэтому разница есть
_________________ "Умный может зарабатывать триста рублей, а проживать три тысячи"
Тень, должны. Переформулирую немного: мой компилятор(скорее интерпретатор) должен запускаться в терминалах этих операционных систем, и как я понял, необходимо будет переписать всю ту часть, которая будет отвечать за запуск этого компилятора. Тоже самое и с генерацией исполняемого файла. Просто я подумал, может есть какая-то кроссплатформенная штука, которая позволит всё это дело делать во всех ОС. Сейчас вопрос: кроссплатформенные компиляторы(например для Си++) только потому-что их переписывали под разные системы? JMS.Hard, у меня всё таки компилятор для уже существующих ОС, а не для самопала какого-то, поэтому разница есть
Всё верно понятно. Почти весь транслятор от конкретной платформы не зависит (а если зависимости есть -- скажем, разрядность машинного слова, -- их, в общем-то, несложно реализовать переносимым образом прямо "на месте"), но ввод-вывод может зависеть очень сильно. Если пишется на языке высокого уровня, скажем, на це/це++, (почти) все зависящие от платформы вещи спрятаны внутрь библиотеки, но на ассемблере придётся делать отдельные модули под каждую платформу. В первом приближении -- реализовать аналоги сишных функций fopen, fread и т.д.
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47 Сообщений: 313 Откуда: Село Лютенька
Рейтинг сообщения:0
теперь точно понял, спасибо. Буду пробовать, сначала на Windows, потом на Linux. Если интересно, я собираюсь написать компилятор, ну, для начала хотя бы интерпретатор Forth, только со своими фишками. Хочу использовать его для программирования микроконтроллеров, различного рода программ и игр для компуктера, вот. Если вы не против, я буду здесь задавать свои будущие вопросы, ну а пока меня интересует ещё одна вещь: недавно пробовал написать загрузчик, и нигде не нашёл, как сменить шрифт, чтобы писать кириллицей. Как я понял, для начала нужно включить графический режим, а дальше уже не понимаю.. Объясните пожалуйста
_________________ "Умный может зарабатывать триста рублей, а проживать три тысячи"
ассемблер на кирилице - так себе затея, учитывая последующий порт в Форт и эксплуатацию на всём чём можно, наверняка включая даже без киррилицовые окружения.
TovarishAleksey писал(а):
для начала нужно включить графический режим,
раз ты пишешь в Вин - то он уже включён. Но добраться до него ты сможешь только через абстракции ОС.
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47 Сообщений: 313 Откуда: Село Лютенька
Рейтинг сообщения:0
1.Фунтик, загрузчик ОС. 2.Как сменить шрифт в этом загрузчике. 3.Форт здесь не причём, просто давно как-то пытался сделать на русском чтоб было, а никакой информации по этому не нашёл. 4.Знаю, напрямую с видеопамятью работать в вин нельзя. 5."До этого" понимаю не всё, но кое-что всё таки понимаю
_________________ "Умный может зарабатывать триста рублей, а проживать три тысячи"
Загрузчик - это то, что загружает. При чём тут шрифт?
TovarishAleksey писал(а):
3.Форт здесь не причём, просто давно как-то пытался сделать на русском чтоб было, а никакой информации по этому не нашёл.
что бы что было на русском?
TovarishAleksey писал(а):
4.Знаю, напрямую с видеопамятью работать в вин нельзя.
и?
TovarishAleksey писал(а):
5."До этого" понимаю не всё, но кое-что всё таки понимаю
но изъясняешься так косноязычно, что не понимают тебя. Приучись каждую произносимую (печатаемую) фразу строить так, что б человек, прочитавший её понял о чём речь. И половина (у тебя - 75%) вопросов отпадут уже в моменте продумывания своей фразы.
... мой компилятор(скорее интерпретатор) должен запускаться в терминалах ...
Tак компилятор или интерпретатор ?
И ежели интерпретатор, то как Вы представляете интерпретатор ассемблерных мнемоник, да ещё в "терминалах" ?
Или у Вас эмулируется некая архитектура, а не реальная "платформа" ?
Или должен запускаться некий Ваш кросс-ассемблер, а то, что он накомпилирует из мнемоник в числовые коды, должно будет запускать-ся на чём-то ещё ?
Ну в общем при "fuzzy"-вопросах невозможно дать ответ, ибо возникает множество уточняющих вопросов к вопрошающему ...
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47 Сообщений: 313 Откуда: Село Лютенька
Рейтинг сообщения:0
1.ПК на процессоре AMD. 2.Мой загрузчик также выводит всякий текст, без которого не обойтись. 3.Что бы этот самый текст был на русском. 4.Ну вот и всё, речь всё равно не про вин. 5.Очень извиняюсь за это. Когда дело касается вопросов, я никак не понимаю как правильно сформулировать то или иное предложение, постоянно что-то меняю, и как бы я не старался, получается всё равно коряво. Если не трудно, поправляйте меня
Петренко, компилятор. Интерпретатор не для ассемблера, а для моего языка программирования. Платформа реальная, но пока это не имеет значения. То что он накомпилирует, должно запускаться на нескольких ОС, но как уже стало ясно из ответа SII, надо писать модули, чтоб достичь этой цели
_________________ "Умный может зарабатывать триста рублей, а проживать три тысячи"
вроде в первом сообщении написано - свой язык какой-то. Вряд ли это будет повторением ассемблерных мнемоник... Хотя непонятно - компилятор или интерпретатор по сути будет. А это диаметрально меняет направление разработки кросса...
Добавлено after 6 minutes 4 seconds:
TovarishAleksey писал(а):
1.ПК на процессоре AMD.
т.е. ПК на х86 илии там 64... Насколько я понимаю при включенной в BIOSe системе CSM (а для AMD актуально) - всё просто. На начальный сектоор харда (или с чего вы там грузитесь) кладёте аббревиатуру загручика и понеслось. В случае с EFI загрузчиком - чуть по другому. Определённая метка раздела и так далее, читатьт спецификации в обоих случаях (сюда столько переписывать толку нет). Для перехода на кириллицу - загружаете в видеоадаптер нужный вам шрифт и используете его. В простых видеорежимах это не сильно сложно. Но по объёму писательства - напряжёт так, что проще будет английский выучить.
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47 Сообщений: 313 Откуда: Село Лютенька
Рейтинг сообщения:0
Язык не очень сложный, по этому сильно ничего не изменится, будет это компилятор, ну или же интерпретатор. В любом случае придётся писать лексер
Добавлено after 2 minutes 49 seconds: Фунтик, чуть понял. Это я давно вычитал, просто не видел нормальной документации по этому, никто будто и не прикручивал кириллицу. Видел у КолибриОС русский язык в загрузчике, почитаю исходный код, может и обнаружится
_________________ "Умный может зарабатывать триста рублей, а проживать три тысячи"
Язык не очень сложный, по этому сильно ничего не изменится, будет это компилятор, ну или же интерпретатор.
Это разные вещи. Совсем. Абсолютно. Интерпретатор выполняется в конкретной среде и вынужден взаимодействовать с этой средой (ОС, например) по полной программе (ввод/вывод файлов, текста, графики, ввод с клавиатуры, реакция на мышь...). Компилятору нужно только чтение из файла и запись в файл от окружающей среды, ну и там и памяти попросить чутка. Ему даже плевать, как отправленные в stdout сообщения будут/не будут обрабатываться. И, опять таки, компилятору пофиг что обрабатывать - компилить на ПК программу под телефонный Андроид - вполне уместная тема. Интерпретатор программ под Андроид не будет работать вне Андроидного окружения (пусть даже эмуляции).
Цитата:
просто не видел нормальной документации по этому, никто будто и не прикручивал кириллицу.
в основном это происходило в доинтернетную эру, поэтому в интернете немного. По х86 в своё время много почерпнул из "Питер Абель. Ассемблер и программирование для IBM PC.". До сих пор в библиотечке стоит. Но времена уходят - написанный по старозаветным загрузчик скоро, с окончательным приходом EFI, уйдёт в былое. А тут и сам кусками изучал, систематизированных знаний нет. Зато в интернете - всё есть.
По х86 в своё время много почерпнул из "Питер Абель. Ассемблер и программирование для IBM PC."
А вот когда я ПК ковырял, её ещё не было, появилась позже. Помню, заставил-таки флопики работать, пользуясь документацией к советским микросхемам -- они ж клоны буржуйских. Но наполовину-таки методом научного тыка приходилось -- а использовать функции BIOS, есно, религия не позволяла А вот MCGA тогда так и не осилил (правда, не очень-то и пытался).
Но времена уходят - написанный по старозаветным загрузчик скоро, с окончательным приходом EFI, уйдёт в былое. А тут и сам кусками изучал, систематизированных знаний нет. Зато в интернете - всё есть.
Ну, в виртмашинах, вероятно, поддержка классического BIOS сохраняться будет и дальше.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения