LINUX.ORG.RU

[gnu c] как праграммно написаный сорец на си запустить на исполнение?


0

0

в недавнем посте http://www.linux.org.ru/forum/development/4578840?lastmod=1266840922680 задавался подобный вопрос. я недавно программирую под линукс. задача у меня следующая:

1. интерпретировать текст на собственном алгоритмическом языке на язык си, и создать таким образом полноценный сорец.

2. запустить на исполнение этот сорец.

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

было бы приятно узнать разные мнения, может быть есть другие подходы?



Последнее исправление: Puld (всего исправлений: 1)
Ответ на: комментарий от Puld

аглицкий для меня бесполезен

а вот это ты зря

jtootf ★★★★★
()
Ответ на: комментарий от Puld

>если можно, то желательно русскую справочную информацию. аглицкий для меня бесполезен :)

Научись, или способностей не хватает?

anonymous
()

Гитару выбирают не по цвету деки.
Вот тебе нужно нормально скомпилировать C-код. Выбирай что тебе нравится и юзай. Всего то нужно заюзать system() для компиляции. Боишься что такая зависимость это пипец? А зря. Вот груви. Он интерпретирует код в Java и требует чтобы Java была. Это нормально. Таких примеров не мало.
А о том как прошла компиляция можно понять по коду возврата, что возвращает system(или там другая функция... ну идею ты понял).

tia
()
Ответ на: комментарий от Love5an

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

Love5an
()

btw
google://«Greenspun's Tenth Rule of Programming»

Love5an
()

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

Love5an
()
Ответ на: комментарий от thesis

>Вон из профессии.
школота такая странная, хуже только на хабрахабре.

dimon555 ★★★★★
()
Ответ на: комментарий от Puld

там несложно разобраться даже с базовым знанием английского.

пример:


~/tmp :$chmod 755 hello.c
~/tmp :$cat hello.c
#!/usr/bin/tcc -run


#include <stdio.h>
int main (void) { printf(«%s\n», «hello»); return 0; }

~/tmp :$./hello.c
hello

Sylvia ★★★★★
()

> интерпретировать текст на собственном алгоритмическом языке на язык си, и создать таким образом полноценный сорец

Студент? У нас в универе было почти такое же задание на 2ом курсе. Только мы транслятор не в C писали а в обратную польскую запись (почти ассемблер).

можно просто сделать некоторый интерпретатор, его результат с помощью

скрипта скомпилировать через gcc, а после вызвать на исполнение.


но меня смущает что получается отдельная программа



Если смущает, то можно сделать несколько вызовов функции system — вызвать компилятор и затем, если собралось, запустить.

GArik ★★★
()
Ответ на: комментарий от dave

сильно распространяться не буду, это язык написания тестов для аппаратуры.

Puld
() автор топика
Ответ на: комментарий от dimon555

да, думал о таком. мне вот эта идея больше всего понравилась

Puld
() автор топика
Ответ на: комментарий от Love5an

смысл в том что критично время при исполнении интерпретированного текста. скорее всего это должно будет работать в жестком времени. по этому на счету каждая операция а следственно интерпретировать в on-line нельзя.

Puld
() автор топика
Ответ на: комментарий от Puld

> если можно, то желательно русскую справочную информацию. аглицкий для меня бесполезен :)

Ты вреден и обязан отправиться в биореактор!!!

Dark_SavanT ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.