This paper presents deep reification, which is a language mechanism for reflective computing. It reifles a self-contained partial snapshot of the current execution environment. The snapshot contains not only data but also code and type definitions. This mechanism can be used as a common component of execution systems of embedded domain-specific languages (DSLs). Unlike typical implementations of embedded DSLs, the mechanism enables a DSL to borrow the host-language's syntax yet execute under a different semantics on different platforms from the host language's. DSL implementation can allow programmers to first construct a function closure as DSL code, reify a snapshot necessary for executing the function closure, transform the code in the snapshot into a program for a target platform, and finally execute the program. As a prototype system of deep reification, we have implemented Bytespresso for Java. This paper shows Bytespresso and also Bytespresso-C, our DSL built on top of Bytespresso. The target of this DSL is numerical computing on cluster computers and GPUs.