मैं जावास्क्रिप्ट के समान भाषा के लिए एक ऑप्टिमाइज़र लिख रहा हूं, और एक मध्यवर्ती कोड प्रतिनिधित्व चुनने की आवश्यकता है। इन दिनों स्पष्ट / विशिष्ट पसंद स्टेटिक सिंगल असाइनमेंट (SSA) है।
हालाँकि, C में मॉडर्न कम्पाइलर कार्यान्वयन कार्यात्मक मध्यवर्ती रूप की भी चर्चा करता है, जिसका मूल अर्थ है मध्यवर्ती प्रतिनिधित्व के लिए शुद्ध कार्यात्मक (केवल स्थानीय चर के संदर्भ में शुद्ध, हीप डेटा अभी भी परिवर्तनशील नहीं है, और सीपीएस नहीं, बस सीधा let
ब्लॉक और टेल कॉल) और कारण के बारे में आसान होने के संदर्भ में कुछ फायदे हैं।
संभवत: यह नो-ब्रेनर नहीं है या हर कोई पहले से ही इस तरह के प्रतिनिधित्व का उपयोग कर रहा है, इसलिए मेरा सवाल यह है कि एसएसए की तुलना में कार्यात्मक मध्यवर्ती रूप में क्या नुकसान हैं?