eval vav C
34 отговора
1297 прегледа
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.
evala v programiraneto
Какъв "eval", какви 4.98 лв в C бре? Все едно да искаш eval в асемблер. Преди имаше някакви напъни да се прави интерпретирана версия на C, и там сигурно можеш да eval-ваш, ама в компилиран код... Но кой знае, напоследък е модерно да се правят какви ли не неща на библиотеки, може и gcc вече да са го направили достъпен като библиотека... Що не ползваш някой интерпретиран език като Python примерно, интерпретаторът му лесно се включва като библиотека във всякакви програми на C/C++, и тогава си eval-вай колкото искаш. Което ми напомня за .NET, там може и да има такива бози.
"Всички науки са или физика, или колекциониране на пощенски марки." (Е. Ръдърфорд)
"Всички науки са или физика, или колекциониране на пощенски марки." (Е. Ръдърфорд)
Re: eval vav C
Баси изчерпателният отговор. 
"Всички науки са или физика, или колекциониране на пощенски марки." (Е. Ръдърфорд)
"Всички науки са или физика, или колекциониране на пощенски марки." (Е. Ръдърфорд)
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....
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....
Re: eval vav C
Използване на eval like функция в който и да е компилаторен език ми звучи като мисия невъзможна... Освен ако не включим самия компилатор в библиотеките, та да покомпилирва тук и там разни самомодифициращи се вирусчета и то без изсмуканите от пръстите номерца със писане в IP регистъра 


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 ),
};
#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 ),
};
Re: eval vav C
С този пример искаш да покажеш, че си нямаш понятие от езика С ли?
Отваряй дебелите книги и ела пак като се подготвиш.
Отваряй дебелите книги и ела пак като се подготвиш.
Re: eval vav C
Ако случайно ползваш .НЕТ, има библиотека със соурс код специално за случая на следния адрес:
[линк]
Честно казано eval е ключово за скриптови езици - примерно за по-сложни неща на JavaScript без eval ще е доста, доста трудно. Но в С... трудно се сещам за пример, където може да се налага чак толкова. Между другото ако ми кажеш за какво точно ти трябва да ползваш eval навярно мога и да ти помогна повече. Даже ми стана любопитно за какво ти се налага да го ползваш.
[линк]
Честно казано eval е ключово за скриптови езици - примерно за по-сложни неща на JavaScript без eval ще е доста, доста трудно. Но в С... трудно се сещам за пример, където може да се налага чак толкова. Между другото ако ми кажеш за какво точно ти трябва да ползваш eval навярно мога и да ти помогна повече. Даже ми стана любопитно за какво ти се налага да го ползваш.
За проблема ти.
Мога да се обзаложа какъв ти е проблема, и същи така мога да ти кажа убедително че не му е това решението!!!
Този проблем е срешнат отдавна и от други хора, те, както е логично да се досетим са го разрешили.
1. Ако искаш да портваш код в програмата си - това по всяка вероятност означава че искаш да изпълниш нещо run-time, но не ти е известно как, следователно си задаваш въпроса "де да можех да възпроизведа това което става когато аз пиша произволна идея се развъва във код по правилата на езика и след това се изпълнява". Някои хора за да е по-просто и лесно да се направи това и да не трябва да преписваш монотонен код по 100 000 пъти направиха неща като наследяване полиморфизъм и абстракни класове, развиха ги в начините им за употреба като ПОЛИТИКИ ( не случайно това е с капс, ако можеш прочети за него... )
В момента е напълно възможно да можеш да накараш даден компилилиран и свързан (повтарям свързан, за да не направиш грашка, касаеща езика) който да може да изпълни всяко твое парче код - което го касае. Разбира се предполага се че ти имаш компилатора, иначе ако искаш да предоставиш на някой компилатор - малко ще ти е трудно с конкуренцията ( освен ако нямаш намерение да правиш йажа интерпретатор
)
Айде успех.
Този проблем е срешнат отдавна и от други хора, те, както е логично да се досетим са го разрешили.
1. Ако искаш да портваш код в програмата си - това по всяка вероятност означава че искаш да изпълниш нещо run-time, но не ти е известно как, следователно си задаваш въпроса "де да можех да възпроизведа това което става когато аз пиша произволна идея се развъва във код по правилата на езика и след това се изпълнява". Някои хора за да е по-просто и лесно да се направи това и да не трябва да преписваш монотонен код по 100 000 пъти направиха неща като наследяване полиморфизъм и абстракни класове, развиха ги в начините им за употреба като ПОЛИТИКИ ( не случайно това е с капс, ако можеш прочети за него... )
В момента е напълно възможно да можеш да накараш даден компилилиран и свързан (повтарям свързан, за да не направиш грашка, касаеща езика) който да може да изпълни всяко твое парче код - което го касае. Разбира се предполага се че ти имаш компилатора, иначе ако искаш да предоставиш на някой компилатор - малко ще ти е трудно с конкуренцията ( освен ако нямаш намерение да правиш йажа интерпретатор
Айде успех.
Re: eval vav C
стопля ми се сърцето като гледам колко "помогливи" са хората тук
малко линкове за интерпретатори:
1) език направен специално за макроси и скриптиране на други програми - Луа. [линк]
2) динамични езици като python, ruby... доста лесно се вгражда техен интерпретатор в някоя програма
3) ако много държиш да пишеш на Ц-подобен език - има и интерпретатори за Ц/Ц++ - [линк]
ein heller Schein am Firmament
малко линкове за интерпретатори:
1) език направен специално за макроси и скриптиране на други програми - Луа. [линк]
2) динамични езици като python, ruby... доста лесно се вгражда техен интерпретатор в някоя програма
3) ако много държиш да пишеш на Ц-подобен език - има и интерпретатори за Ц/Ц++ - [линк]
ein heller Schein am Firmament
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
a inache neshto podobno ima - naricha se c-shell, sigurno moje da se bildne i za win
Re: eval vav C
ясно е, че човека е нещо объркан. ама с малко информация може да разбере, че има много да чете. пък даже и да почне да чете. ех, можех да се опитам да го нарека малоумник като някои от четящите... ама нямам нужда да си вдигам самочувствието по такива начини. 
ein heller Schein am Firmament
ein heller Schein am Firmament
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
Re: eval vav C
имаше едно време, когато ресуректора пишеше смислени неща в тоя форум... аз пък плюех всичко, което се пръкнеше...
сменили сме си ролите? не можеше ли просто да махнем лошата роля?
сменили сме си ролите? не можеше ли просто да махнем лошата роля?