Мини-компилятор на С

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Eden
Сообщения: 14
ОС: openSUSE 10.3/KDE3.5

Мини-компилятор на С

Сообщение Eden »

Допустим, мы имеем файл '1.test' содержимое которого
print "Hello, World"

Вопрос:
Как реализовать так, чтобы из файла '1.test' мы получили исполняемый файл (формата: aout, elf, или другого)???

Идеи у меня есть, но они не очень эффективны и громозкие, да и ненадежные т.к. мини-компилятор будет зависимым:
1 преобразовать строку print "Hello, World" в C-код, и вызвать компилятор GCC для сборки
2 преобразовать строку print "Hello, World" в Asm-код, и вызвать компилятор Nasm для сборки
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Мини-компилятор на С

Сообщение RasenHerz »

1. Напиши свой компилятор.
или
2. Напиши свой парсер.
или
3. Не изобретай велосипед, и пиши на Python/BASH
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3
Контактная информация:

Re: Мини-компилятор на С

Сообщение nesk »

используйте csh например

а вообще если вы хотите пользоваться компилятором Си, то и пишите на Си, а то вы предлагаете придумать свой собственный язык программирования


можете еще на perl посмотреть
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Аватара пользователя
Eden
Сообщения: 14
ОС: openSUSE 10.3/KDE3.5

Re: Мини-компилятор на С

Сообщение Eden »

1. Напиши свой компилятор.
или
2. Напиши свой парсер.
или
3. Не изобретай велосипед, и пиши на Python/BASH


на Pythonе я писал, только интерпритатор, и то глючный и долгий из-за подстановки переменных

3. Не изобретай велосипед, и пиши на Python/BASH

Насчет BASH, я его не пониманию, в том смысле что трудные скрипты я не осилю!
А поповоду велосипеда, хочу напись язык который б мне был бы понятен, чтоб миллионы книг не заучивать (например, как это было когда я на Линукс перешел)
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Мини-компилятор на С

Сообщение Portnov »

Начнём с начала: для чего вам это нужно?

Если вам надо писать программы на каком-то языке, то лучше взять существующий язык и не изобретать велосипед.

Если же вам нужен язык специального назначения (DSL - Domain Specific Language), то почитайте про разработку компиляторов. Ключевые слова: формальные грамматики, конечные автоматы, flex, yacc.

Кстати, есть еще вариант: DSEL (Domain Specific Embeded Language). То есть берется существующий достаточно гибкий язык, и его средствами создаётся его подмножество, имеющее нужный синтаксис и семантику (простейший пример DSEL - это любая достаточно развитая библиотека). Соответственно, новый компилятор вовсе не нужен. Так сложилось, что для создания DSEL (как, впрочем, и для DSL) удобнее всего использовать функциональные (или родственные) языки - Haskell, Forth, Lisp,...
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
Eden
Сообщения: 14
ОС: openSUSE 10.3/KDE3.5

Re: Мини-компилятор на С

Сообщение Eden »

ОК! Решенно! Буду на скриптах писать на Питоне и Баш


ОК! Решенно! Возьму за основу Питон
Спасибо сказали:
Ответить