Сейчас на форуме: (+8 невидимых)

 eXeL@B —› Софт, инструменты —› Генерация кода
Посл.ответ Сообщение

Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 сентября 2008 12:39
· Личное сообщение · #1

Нужно написать программу, которая будет читать исходный код на C и генерировать исполняемый файл.

Если кто имеет информацию по этому поводу, подскажите как оценить сложность этой задачи: сколько человек потребуется, какой объём кода надо написать и в какие сроки можно уложиться ?

Где можно найти архитектуру типичного компилятора: некий набор блоков с определённым интерфейсом, которые можно писать по отдельности ?



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 26 сентября 2008 14:10 · Поправил: SergX
· Личное сообщение · #2

заходим www.google.com, http://www.google.com, набираем "исходник компилятора С" и нажимаем "Поиск"

первые две сцылки:
http://sources.codenet.ru/?cid=5 http://sources.codenet.ru/?cid=5
http://www.exmortis.narod.ru/src_compilers.html http://www.exmortis.narod.ru/src_compilers.html


Draeden пишет:
сколько человек потребуется, какой объём кода надо написать и в какие сроки можно уложиться ?


сроки:= объём кода / кол-во.человек ;
кол-во.человек:= объём кода / сроки ;
объём кода:= кол-во.человек * сроки ;



Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 26 сентября 2008 15:06
· Личное сообщение · #3

предлагаю вместе с программой тянуть cl.exe, ml.exe, link.exe и так далее :D




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 26 сентября 2008 20:39
· Личное сообщение · #4

Draeden Придется создавать свой линкер, существуют книги в которых хорошо расписано, как устроены компиляторы: Книга с драконом например.

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 сентября 2008 15:32
· Личное сообщение · #5

SergX, спасибо за ссылки.
LazzY, я бы так и сделал, но заказчику нужна "чистая" программа.
coderess, что за книга "с драконом" ?



Ранг: 106.6 (ветеран), 7thx
Активность: 0.040.02
Статус: Участник

Создано: 27 сентября 2008 16:05
· Личное сообщение · #6

Draeden
Сам компилятор пол беды - а как например с библиотеками быть? И почему например каким нибудь open source компилятором не воспользоваться?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 27 сентября 2008 16:38
· Личное сообщение · #7

Draeden
Компиляторы: принципы, технологии, инструменты Альфред Ахо, Рави Сети, Джеффри Ульман
all-ebooks.com/m=book&id=694

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 сентября 2008 17:51
· Личное сообщение · #8

digger70, в общих чертах ситуация выглядит так: есть некая программа, работающая с исходным кодом на C. Человек, который ведёт этот проект, хочет, чтобы его программа была в состоянии самостоятельно создавать исполняемые файлы. Этот человек не знает в принципе как это сделать, но он готов дать людей для написания такого кода. Моя задача узнать как устроены компиляторы, линковщики, объектные файлы и всё, что с этим связано, после чего я должен представить нечто вроде проекта: поделить эту большую задачу на несколько маленьких блоков и сказать, сколько надо времени и людей для каждого блока. Планируется компиляция кода, вроде:

#include <stdio.h>

void main()
{
printf ( "Hello world" );
}

Таким образом, мой линковщик должен будет уверенно работать с готовыми объектными файлами, .lib и .dll библиотеками и т.п.

[quote]И почему например каким нибудь open source компилятором не воспользоваться?[/quote]

Это уже моя проблема. Конечно, где можно, я буду использовать готовый код. Проблема в том, что вся эта кодогенерация встраивается в готовую программу, с уже имеющейся внутренней архитектурой.

coderess, incredible thanks!




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 27 сентября 2008 23:18 · Поправил: s0larian
· Личное сообщение · #9

Draeden пишет:
Этот человек не знает в принципе как это сделать, но он готов дать людей для написания такого кода. Моя задача узнать как устроены компиляторы, линковщики, объектные файлы и всё, что с этим связано


Не занамайся идиотизмом. Судя по постановке вопроса команда не особо "в теме", ну а новичкам поднять нормальный С компилиятор просто не реально. Возьми gcc/mingw и вызывай из своей проги. Не надо переписывать то, во что команда pro вложила 20 лет.



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 28 сентября 2008 14:55
· Личное сообщение · #10

s0larian

+100



Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 сентября 2008 15:22
· Личное сообщение · #11

Да, я пытаюсь это вбить в голову этому человеку, но он видно совесем не в теме, раз отвечает на мой длинный список сложностей: "так это же самое интересное" или "ну у тебя будет два года, а не один" (мне это предлагали одному писать ).


 eXeL@B —› Софт, инструменты —› Генерация кода
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати