eval vav C

34 отговора 1297 прегледа
#1

eval vav C

Niakoi znae li dali e vazmojno da se napravi ekvivalentna funkcia na "eval" vav C - t.e davam i string, koito e validen programen kod na C i tazi funkcia "eval" go izpalniava vse edno e chast ot programata.

Отговор
в отговор на barakuda #2

evala v programiraneto

Какъв "eval", какви 4.98 лв в C бре? Все едно да искаш eval в асемблер. Преди имаше някакви напъни да се прави интерпретирана версия на C, и там сигурно можеш да eval-ваш, ама в компилиран код... Но кой знае, напоследък е модерно да се правят какви ли не неща на библиотеки, може и gcc вече да са го направили достъпен като библиотека... Що не ползваш някой интерпретиран език като Python примерно, интерпретаторът му лесно се включва като библиотека във всякакви програми на C/C++, и тогава си eval-вай колкото искаш. Което ми напомня за .NET, там може и да има такива бози.

"Всички науки са или физика, или колекциониране на пощенски марки." (Е. Ръдърфорд)
Отговор
в отговор на barakuda #3

Re: eval vav C

Баси малоумника.

Отговор
в отговор на barakuda #4

Re: eval vav C

Vazmozhno e.

Eto i otprawna tochka : [линк]

Отговор
в отговор на Resurrector #5

Re: eval vav C

Баси изчерпателният отговор.

"Всички науки са или физика, или колекциониране на пощенски марки." (Е. Ръдърфорд)
Отговор
в отговор на barakuda #6

Re: eval vav C

Dve neshta mogat da te dovedat do zadavane na takiva vaprosi:

1. Neshto si obarkal v disaina. (Obiknoveno na nikoi ne mu se nalaga da polzva eval v C. Na kakvo si pisal dosega? Na lisp li?)
2. Imash da pravish neshto naistina mnogo seriozno....

Obshtoto i v dvata sluchaya e che zdravo si zagazil....

Отговор
в отговор на barakuda #7

Re: eval vav C

Използване на eval like функция в който и да е компилаторен език ми звучи като мисия невъзможна... Освен ако не включим самия компилатор в библиотеките, та да покомпилирва тук и там разни самомодифициращи се вирусчета и то без изсмуканите от пръстите номерца със писане в IP регистъра

Отговор
в отговор на FP #8

Re: eval vav C

Az si namerih neshto podobno no vse pak tova ne e palnata funkcionalnost, koiato mi se iskashe da imam. Tova e primerche na Valve ot naskoro izteklia kod na half life 2 - ai_scriptconditions.cpp

#define EVALUATOR( name ) { &CAI_ScriptConditions::Eval##name, #name }

CAI_ScriptConditions::EvaluatorInfo_t CAI_ScriptConditions::gm_Evaluators[] =
{
EVALUATOR( ActorSeePlayer ),
EVALUATOR( State ),
EVALUATOR( PlayerActorProximity ),
EVALUATOR( PlayerTargetProximity ),
EVALUATOR( ActorTargetProximity ),
EVALUATOR( PlayerBlockingActor ),
EVALUATOR( PlayerActorLook ),
EVALUATOR( PlayerTargetLook ),
EVALUATOR( ActorSeeTarget),
EVALUATOR( PlayerActorLOS ),
EVALUATOR( PlayerTargetLOS ),
};

Отговор
в отговор на barakuda #9

Re: eval vav C

С този пример искаш да покажеш, че си нямаш понятие от езика С ли?
Отваряй дебелите книги и ела пак като се подготвиш.

Отговор
в отговор на barakuda #10

Re: eval vav C

Ако случайно ползваш .НЕТ, има библиотека със соурс код специално за случая на следния адрес:

[линк]

Честно казано eval е ключово за скриптови езици - примерно за по-сложни неща на JavaScript без eval ще е доста, доста трудно. Но в С... трудно се сещам за пример, където може да се налага чак толкова. Между другото ако ми кажеш за какво точно ти трябва да ползваш eval навярно мога и да ти помогна повече. Даже ми стана любопитно за какво ти се налага да го ползваш.

Отговор
в отговор на barakuda #11

За проблема ти.

Мога да се обзаложа какъв ти е проблема, и същи така мога да ти кажа убедително че не му е това решението!!!

Този проблем е срешнат отдавна и от други хора, те, както е логично да се досетим са го разрешили.

1. Ако искаш да портваш код в програмата си - това по всяка вероятност означава че искаш да изпълниш нещо run-time, но не ти е известно как, следователно си задаваш въпроса "де да можех да възпроизведа това което става когато аз пиша произволна идея се развъва във код по правилата на езика и след това се изпълнява". Някои хора за да е по-просто и лесно да се направи това и да не трябва да преписваш монотонен код по 100 000 пъти направиха неща като наследяване полиморфизъм и абстракни класове, развиха ги в начините им за употреба като ПОЛИТИКИ ( не случайно това е с капс, ако можеш прочети за него... )
В момента е напълно възможно да можеш да накараш даден компилилиран и свързан (повтарям свързан, за да не направиш грашка, касаеща езика) който да може да изпълни всяко твое парче код - което го касае. Разбира се предполага се че ти имаш компилатора, иначе ако искаш да предоставиш на някой компилатор - малко ще ти е трудно с конкуренцията ( освен ако нямаш намерение да правиш йажа интерпретатор )

Айде успех.

Отговор
в отговор на barakuda #12

Re: eval vav C

стопля ми се сърцето като гледам колко "помогливи" са хората тук

малко линкове за интерпретатори:
1) език направен специално за макроси и скриптиране на други програми - Луа. [линк]
2) динамични езици като python, ruby... доста лесно се вгражда техен интерпретатор в някоя програма
3) ако много държиш да пишеш на Ц-подобен език - има и интерпретатори за Ц/Ц++ - [линк]

ein heller Schein am Firmament
Отговор
в отговор на Resurrector #13

Re: eval vav C

забавен пост... ех да имаше и смисъл

ein heller Schein am Firmament
Отговор
в отговор на Mycлoн #14

Re: eval vav C

eh muslone, musloneeee... sho si tyrkash klavishite? samo pomisli kakvo e nivoto na znaniq pri gorkiq sharan, a ti go prati da linkva s kompilatori. vidqlo ribeto dva reda javaskript i mu teknali ligichkite, che i is halflife se rovilo. ama neka! taka se rajdat izobreteniq, nqkoj prosto zadava vyprosi, koito na drugite nqma da im hrumnat.

a inache neshto podobno ima - naricha se c-shell, sigurno moje da se bildne i za win

Отговор
в отговор на Mycлoн #15

Re: eval vav C

Кво е смисъл? Дай дефиниция.

Отговор
в отговор на pomotlivec #16

Re: eval vav C

ясно е, че човека е нещо объркан. ама с малко информация може да разбере, че има много да чете. пък даже и да почне да чете. ех, можех да се опитам да го нарека малоумник като някои от четящите... ама нямам нужда да си вдигам самочувствието по такива начини.

ein heller Schein am Firmament
Отговор
в отговор на Mycлoн #17

Re: eval vav C

Ooops! Da sa ... i kompleksara! Abs si prav. Izvineniq za barakudata - ne e sramno da popitash, sramno e da se otgovarq s nasmeshka

Отговор
в отговор на Mycлoн #18

Re: eval vav C

Абе ти на кой свят се намираш бе?

Отговор
в отговор на pomotlivec #19

Re: eval vav C

Аре още едно пъпчиво гейче.
Ех, деба, искам пак да е 94-та.

Отговор
в отговор на Resurrector #20

Re: eval vav C

имаше едно време, когато ресуректора пишеше смислени неща в тоя форум... аз пък плюех всичко, което се пръкнеше...

сменили сме си ролите? не можеше ли просто да махнем лошата роля?

Отговор