LINUX.ORG.RU

> Можно ли выполнить команду, заданную значением переменной ?

Нет, конечно. Откуда препроцессор может знать, какое в будет значение переменной в рантайме?

anonymous
()

конкретно эту можно, делаешь dlopen для libc.so потом достаешь оттуда символ gets.

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

Reset ★★★★★
()

да, воспользуйся указателем на функцию

aton
()
Ответ на: комментарий от Reset

> а вообще если возникают такие извращения то надо бы подумать о смене языка.

Зачем же сразу языка, достаточно пересмотреть дизайн.

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

Просто пишу интерпретатор для своего языка :D (для определенных целей).

Хотелось бы, чтобы он мог бы быть расширяемым другими пользователями языка (через библиотеки, описание которых мне будет даваться, например, в xml).

gtyrin
() автор топика

2gtyrin:

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

Die-Hard ★★★★★
()
Ответ на: комментарий от gtyrin

> Просто пишу интерпретатор для своего языка

думаю полезно будет посмотреть исходники какого-нибудь простого интерпретатора.

например lua (всего 10тыс. строк)

scotinomys
()

Используй Лисп. Или Tcl. Или Python.

Если же ты совсем таки извращенец и ничего кроме C знать не желаещь, то юзай tcc (он может в рантайме компилять) или CINT.

Leprechaun
()
Ответ на: комментарий от gtyrin

А... Понял. Обломись. В C нет рефлексии. Но ты можешь (непортабельно) импортировать символы из динамических библиотек. Смотри на реализации существующие реализации FFI и ужасайся.

Leprechaun
()
Ответ на: комментарий от gtyrin

Можно реализовать с помощью полиморфизма и загружаемых
библиотек. Компонентная модель.
Cаму библиотеку реализовать как фабрику классов.
Такая реализачия на лету может перегружаться.

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