Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

compiler design question

Name: Anonymous 2012-09-28 21:13

In my compiler, I have an emitter function that outputs assembly, affecting the stack, and a variable resolution function that manages local variables and their offset from ebp.

I'm trying to track types through intermediate computations, though, and i don't know whether to put this functionality in the emitter, in the scope resolution system, or to merge the two.

A touhou for your thoughts?

Name: >>49 2012-10-06 15:33

>>49

ALSO YOU COULD ELIMINATE COMMON SUB EXPRESSIONS BY KEEPING THE TEMPORARY VALUES INDEXED IN A TABLE BY THEIR EXPRESSION VALUE. IN ORDER TO EMPLOY THIS SUCCESSFULLY, YOU WILL NEED TO BE ABLE TO KEEP TRACK OF EXPRESSIONS THAT HAVE AND DON'T HAVE SIDE EFFECTS. EXPRESSIONS THAT HAVE NO SIDE EFFECTS CAN SAFELY HAVE THEIR RESULTS COMBINED TO A SINGLE VARIABLE AND ONLY BE EVALUATED ONCE, BUT DOING THIS FOR AN EXPRESSION THAT HAS SIDE EFFECTS WILL CHANGE THE MEANING OF THE PROGRAM, AND MUST BE AVOIDED. AN EXPRESSION WILL HAVE SIDE EFFECTS IF AT LEAST ONE OF THE FOLLOWING ARE SATISFIED

THE EXPRESSION IS A PRIMITIVE OPERATOR THAT YIELDS A SIDE EFFECT, LIKE ++.
THE EXPRESSION IS A CALL TO A FUNCTION THAT IS NOT PURE.
THE EXPRESSION CONTAINS A SUBEXPRESSION THAT HAS SIDE EFFECTS.

A FUNCTION IS NOT PURE IF IT SATISFIES AT LEAST ONE OF THE FOLLOWING

IT PERFORMS AN IO OPERATION OR EQUIVALENT
IT MODIFIES A NON LOCAL VARIABLE

NOTE THAT IT IS POSSIBLE FOR A PURE FUNCTION TO CALL A NON PURE FUNCTION IF THE ONLY VARIABLES MODIFIED ARE LOCAL TO THE PURE FUNCTION.

THE PURITY/NONPURITY OF THE FUNCTIONS CAN BE CONSTRUCTED FROM THE BOTTOM UP. LOOPS CREATED WITH RECURSION IS WEIRD THOUGH.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List