A debate has arisen in the course of using an assembler (which does a bit of preprocessing first, but is mainly a static assembler):This particular assembler allows recursive macros to be defined, which it then attempts to resolve (statically, at compile time) and embed in the binary output.The question is, does this language feature still allow the assembler to terminate (for all input) or is there a case where the assembler will never terminate - excluding memory considerations?From an empirical perspective even short programs take forever to compile but whether this is theoretically rigorous is a different story, at which point we defer to cs.stackexchange!
Recursive macros and termination of assembler
programming languages;recursion;language design