Форум РадиоКот https://radiokot.ru/forum/ |
|
Вопрос программистам https://radiokot.ru/forum/viewtopic.php?f=17&t=195246 |
Страница 1 из 20 |
Автор: | TovarishAleksey [ Пт окт 18, 2024 13:18:26 ] |
Заголовок сообщения: | Вопрос программистам |
Хочу написать компилятор для своего языка программирования на FASM. Допустим, я сейчас пишу под Windows, а если потребуется перенести его на Linux, значит всё придётся переписывать(под терминал, оболочку и т.д.)? Как те же gcc всякие стали кроссплатформенными, также всё переписывали под каждую ОСь? Возникла идея: под каждую операционную систему свой модуль лепить, для ввода/вывода, потом при компиляции выбирать один из модулей, в зависимости от того, на какую систему мы компилируем код |
Автор: | petrenko [ Пт окт 18, 2024 14:24:19 ] |
Заголовок сообщения: | Re: Вопрос программистам |
/// - AWK - / ?? ![]() ![]() /// ![]() |
Автор: | TovarishAleksey [ Пт окт 18, 2024 14:37:13 ] |
Заголовок сообщения: | Re: Вопрос программистам |
не то. Мне нужно на ассемблере, чтоб и на Windows, и на Linux, и на DOS/KolibriOS |
Автор: | >TEHb< [ Пт окт 18, 2024 15:31:11 ] |
Заголовок сообщения: | Re: Вопрос программистам |
Программы на новом языке тоже должны работать на этих системах? |
Автор: | JMC.Hard [ Пт окт 18, 2024 15:44:33 ] |
Заголовок сообщения: | Re: Вопрос программистам |
не то. Мне нужно на ассемблере, чтоб и на Windows, и на Linux, и на DOS/KolibriOS Ннну, вобщем-то ассемблеру мало важно Windows, Linux или DOS ... Ему интереснее x86, RISK или ARM ... ![]() |
Автор: | TovarishAleksey [ Пт окт 18, 2024 15:49:59 ] |
Заголовок сообщения: | Re: Вопрос программистам |
Тень, должны. Переформулирую немного: мой компилятор(скорее интерпретатор) должен запускаться в терминалах этих операционных систем, и как я понял, необходимо будет переписать всю ту часть, которая будет отвечать за запуск этого компилятора. Тоже самое и с генерацией исполняемого файла. Просто я подумал, может есть какая-то кроссплатформенная штука, которая позволит всё это дело делать во всех ОС. Сейчас вопрос: кроссплатформенные компиляторы(например для Си++) только потому-что их переписывали под разные системы? JMS.Hard, у меня всё таки компилятор для уже существующих ОС, а не для самопала какого-то, поэтому разница есть |
Автор: | SII [ Пт окт 18, 2024 15:59:22 ] |
Заголовок сообщения: | Re: Вопрос программистам |
Тень, должны. Переформулирую немного: мой компилятор(скорее интерпретатор) должен запускаться в терминалах этих операционных систем, и как я понял, необходимо будет переписать всю ту часть, которая будет отвечать за запуск этого компилятора. Тоже самое и с генерацией исполняемого файла. Просто я подумал, может есть какая-то кроссплатформенная штука, которая позволит всё это дело делать во всех ОС. Сейчас вопрос: кроссплатформенные компиляторы(например для Си++) только потому-что их переписывали под разные системы? JMS.Hard, у меня всё таки компилятор для уже существующих ОС, а не для самопала какого-то, поэтому разница есть Всё верно понятно. Почти весь транслятор от конкретной платформы не зависит (а если зависимости есть -- скажем, разрядность машинного слова, -- их, в общем-то, несложно реализовать переносимым образом прямо "на месте"), но ввод-вывод может зависеть очень сильно. Если пишется на языке высокого уровня, скажем, на це/це++, (почти) все зависящие от платформы вещи спрятаны внутрь библиотеки, но на ассемблере придётся делать отдельные модули под каждую платформу. В первом приближении -- реализовать аналоги сишных функций fopen, fread и т.д. |
Автор: | TovarishAleksey [ Пт окт 18, 2024 16:14:29 ] |
Заголовок сообщения: | Re: Вопрос программистам |
теперь точно понял, спасибо. ![]() Буду пробовать, сначала на Windows, потом на Linux. Если интересно, я собираюсь написать компилятор, ну, для начала хотя бы интерпретатор Forth, только со своими фишками. Хочу использовать его для программирования микроконтроллеров, различного рода программ и игр для компуктера, вот. Если вы не против, я буду здесь задавать свои будущие вопросы, ну а пока меня интересует ещё одна вещь: недавно пробовал написать загрузчик, и нигде не нашёл, как сменить шрифт, чтобы писать кириллицей. Как я понял, для начала нужно включить графический режим, а дальше уже не понимаю.. Объясните пожалуйста |
Автор: | Фунтик [ Пт окт 18, 2024 16:22:45 ] |
Заголовок сообщения: | Re: Вопрос программистам |
TovarishAleksey писал(а): недавно пробовал написать загрузчик загрузчик чего?TovarishAleksey писал(а): как сменить шрифт на чём?TovarishAleksey писал(а): чтобы писать кириллицей ассемблер на кирилице - так себе затея, учитывая последующий порт в Форт и эксплуатацию на всём чём можно, наверняка включая даже без киррилицовые окружения.TovarishAleksey писал(а): для начала нужно включить графический режим, раз ты пишешь в Вин - то он уже включён. Но добраться до него ты сможешь только через абстракции ОС.TovarishAleksey писал(а): а дальше уже не понимаю.. ты и до этого не понимаешь.
|
Автор: | TovarishAleksey [ Пт окт 18, 2024 16:36:58 ] |
Заголовок сообщения: | Re: Вопрос программистам |
1.Фунтик, загрузчик ОС. 2.Как сменить шрифт в этом загрузчике. 3.Форт здесь не причём, просто давно как-то пытался сделать на русском чтоб было, а никакой информации по этому не нашёл. 4.Знаю, напрямую с видеопамятью работать в вин нельзя. 5."До этого" понимаю не всё, но кое-что всё таки понимаю |
Автор: | Фунтик [ Пт окт 18, 2024 16:41:42 ] |
Заголовок сообщения: | Re: Вопрос программистам |
TovarishAleksey писал(а): 1.Фунтик, загрузчик ОС. ладно, продолжим: на каком устройстве?TovarishAleksey писал(а): 2.Как сменить шрифт в этом загрузчике. Загрузчик - это то, что загружает. При чём тут шрифт?TovarishAleksey писал(а): 3.Форт здесь не причём, просто давно как-то пытался сделать на русском чтоб было, а никакой информации по этому не нашёл. что бы что было на русском?TovarishAleksey писал(а): 4.Знаю, напрямую с видеопамятью работать в вин нельзя. и?TovarishAleksey писал(а): 5."До этого" понимаю не всё, но кое-что всё таки понимаю но изъясняешься так косноязычно, что не понимают тебя. Приучись каждую произносимую (печатаемую) фразу строить так, что б человек, прочитавший её понял о чём речь. И половина (у тебя - 75%) вопросов отпадут уже в моменте продумывания своей фразы.
|
Автор: | petrenko [ Пт окт 18, 2024 16:45:35 ] |
Заголовок сообщения: | Re: Вопрос программистам |
... мой компилятор(скорее интерпретатор) должен запускаться в терминалах ... Tак компилятор или интерпретатор ? ![]() И ежели интерпретатор, то как Вы представляете интерпретатор ассемблерных мнемоник, да ещё в "терминалах" ? ![]() Или у Вас эмулируется некая архитектура, а не реальная "платформа" ? Или должен запускаться некий Ваш кросс-ассемблер, а то, что он накомпилирует из мнемоник в числовые коды, должно будет запускать-ся на чём-то ещё ? Ну в общем при "fuzzy"-вопросах невозможно дать ответ, ибо возникает множество уточняющих вопросов к вопрошающему ... |
Автор: | TovarishAleksey [ Пт окт 18, 2024 16:51:26 ] |
Заголовок сообщения: | Re: Вопрос программистам |
1.ПК на процессоре AMD. 2.Мой загрузчик также выводит всякий текст, без которого не обойтись. ![]() 3.Что бы этот самый текст был на русском. 4.Ну вот и всё, речь всё равно не про вин. 5.Очень извиняюсь за это. Когда дело касается вопросов, я никак не понимаю как правильно сформулировать то или иное предложение, постоянно что-то меняю, и как бы я не старался, получается всё равно коряво. Если не трудно, поправляйте меня ![]() Петренко, компилятор. Интерпретатор не для ассемблера, а для моего языка программирования. Платформа реальная, но пока это не имеет значения. То что он накомпилирует, должно запускаться на нескольких ОС, но как уже стало ясно из ответа SII, надо писать модули, чтоб достичь этой цели |
Автор: | Фунтик [ Пт окт 18, 2024 16:58:39 ] |
Заголовок сообщения: | Re: Вопрос программистам |
petrenko писал(а): Ну в общем при "fuzzy"-вопросах вроде в первом сообщении написано - свой язык какой-то. Вряд ли это будет повторением ассемблерных мнемоник... Хотя непонятно - компилятор или интерпретатор по сути будет. А это диаметрально меняет направление разработки кросса...Добавлено after 6 minutes 4 seconds: TovarishAleksey писал(а): 1.ПК на процессоре AMD. т.е. ПК на х86 илии там 64... Насколько я понимаю при включенной в BIOSe системе CSM (а для AMD актуально) - всё просто. На начальный сектоор харда (или с чего вы там грузитесь) кладёте аббревиатуру загручика и понеслось. В случае с EFI загрузчиком - чуть по другому. Определённая метка раздела и так далее, читатьт спецификации в обоих случаях (сюда столько переписывать толку нет). Для перехода на кириллицу - загружаете в видеоадаптер нужный вам шрифт и используете его. В простых видеорежимах это не сильно сложно. Но по объёму писательства - напряжёт так, что проще будет английский выучить.
|
Автор: | TovarishAleksey [ Пт окт 18, 2024 17:02:19 ] |
Заголовок сообщения: | Re: Вопрос программистам |
Язык не очень сложный, по этому сильно ничего не изменится, будет это компилятор, ну или же интерпретатор. В любом случае придётся писать лексер Добавлено after 2 minutes 49 seconds: Фунтик, чуть понял. Это я давно вычитал, просто не видел нормальной документации по этому, никто будто и не прикручивал кириллицу. ![]() Видел у КолибриОС русский язык в загрузчике, почитаю исходный код, может и обнаружится |
Автор: | Фунтик [ Пт окт 18, 2024 17:15:29 ] |
Заголовок сообщения: | Re: Вопрос программистам |
TovarishAleksey писал(а): Язык не очень сложный, по этому сильно ничего не изменится, будет это компилятор, ну или же интерпретатор. Это разные вещи. Совсем. Абсолютно. Интерпретатор выполняется в конкретной среде и вынужден взаимодействовать с этой средой (ОС, например) по полной программе (ввод/вывод файлов, текста, графики, ввод с клавиатуры, реакция на мышь...). Компилятору нужно только чтение из файла и запись в файл от окружающей среды, ну и там и памяти попросить чутка. Ему даже плевать, как отправленные в stdout сообщения будут/не будут обрабатываться. И, опять таки, компилятору пофиг что обрабатывать - компилить на ПК программу под телефонный Андроид - вполне уместная тема. Интерпретатор программ под Андроид не будет работать вне Андроидного окружения (пусть даже эмуляции).Цитата: просто не видел нормальной документации по этому, никто будто и не прикручивал кириллицу. в основном это происходило в доинтернетную эру, поэтому в интернете немного. По х86 в своё время много почерпнул из "Питер Абель. Ассемблер и программирование для IBM PC.". До сих пор в библиотечке стоит. Но времена уходят - написанный по старозаветным загрузчик скоро, с окончательным приходом EFI, уйдёт в былое. А тут и сам кусками изучал, систематизированных знаний нет. Зато в интернете - всё есть.
![]() |
Автор: | TovarishAleksey [ Пт окт 18, 2024 17:21:03 ] |
Заголовок сообщения: | Re: Вопрос программистам |
понял. Я по-другому представлял себе эти вещи немного |
Автор: | Фунтик [ Пт окт 18, 2024 17:21:36 ] |
Заголовок сообщения: | Re: Вопрос программистам |
КАК? И да, я предыдущее сообщение подредактировал... |
Автор: | SII [ Пт окт 18, 2024 17:26:59 ] |
Заголовок сообщения: | Re: Вопрос программистам |
По х86 в своё время много почерпнул из "Питер Абель. Ассемблер и программирование для IBM PC." А вот когда я ПК ковырял, её ещё не было, появилась позже. Помню, заставил-таки флопики работать, пользуясь документацией к советским микросхемам -- они ж клоны буржуйских. Но наполовину-таки методом научного тыка приходилось -- а использовать функции BIOS, есно, религия не позволяла ![]() Но времена уходят - написанный по старозаветным загрузчик скоро, с окончательным приходом EFI, уйдёт в былое. А тут и сам кусками изучал, систематизированных знаний нет. Зато в интернете - всё есть. Ну, в виртмашинах, вероятно, поддержка классического BIOS сохраняться будет и дальше. |
Автор: | TovarishAleksey [ Пт окт 18, 2024 17:38:28 ] |
Заголовок сообщения: | Re: Вопрос программистам |
Фунтик, а вот и не скажу, а то распугаю тут всех.. ![]() А за книжку спасибо - посмотрю, почитаю. |
Страница 1 из 20 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |