यह जाँचने के लिए कि क्या C ++ प्रोग्राम्स, और LBA के लिए यह संभव नहीं है कि SML प्रोग्राम अच्छी तरह से टाइप किए गए हैं या नहीं, रैखिक बाउंड ऑटोमेटा के लिए यह संभव नहीं है। C ++ में ट्यूरिंग-पूर्ण प्रकार की प्रणाली है, क्योंकि आप टेम्पलेट मेटापोग्राम के रूप में मनमाने कार्यक्रमों को कोड कर सकते हैं।
SML अधिक रोचक है। इसमें डिसिडेबल टाइप चेकिंग है, लेकिन समस्या EXPTIME-complete है। इसलिए यह संभावना नहीं है कि एलबीए इसकी जांच कर सकता है, जब तक कि जटिलता पदानुक्रम में बहुत ही आश्चर्यजनक पतन न हो। इसका कारण यह है कि एसएमएल को टाइप इनफैक्शन की आवश्यकता होती है, और ऐसे कार्यक्रमों के परिवार होते हैं जिनके प्रकार प्रोग्राम के आकार की तुलना में बहुत तेजी से बढ़ते हैं। एक उदाहरण के रूप में, निम्नलिखित कार्यक्रम पर विचार करें:
fun delta x = (x, x) (* this has type 'a -> ('a * 'a), so its return value
has a type double the size of its argument *)
fun f1 x = delta (delta x) (* Now we use functions to iterate this process *)
fun f2 x = f1 (f1 x)
fun f3 x = f2 (f2 x) (* This function has a HUGE type *)
सी या पास्कल जैसे सरल प्रकार के सिस्टम के लिए, मेरा मानना है कि एलबीए के लिए इसकी जांच करना संभव है।
प्रोग्रामिंग भाषाओं के शुरुआती दिनों में, लोगों ने कभी-कभी प्रोग्रामिंग भाषाओं के प्रकार सिस्टम को निर्दिष्ट करने के लिए वैन विंगार्डन व्याकरण (उर्फ दो-स्तरीय व्याकरण) का उपयोग किया। मेरा मानना है कि अल्गोल 68 इस तरह से निर्दिष्ट किया गया था। हालांकि, मुझे बताया गया है कि इस तकनीक को अनिवार्य रूप से व्यावहारिक कारणों के लिए छोड़ दिया गया था: यह लोगों के लिए व्याकरण लिखने के लिए काफी मुश्किल हो गया था, जिसमें निर्दिष्ट था कि वे क्या सोचते थे कि वे निर्दिष्ट कर रहे थे! (आमतौर पर, व्याकरण के लोगों ने बड़ी भाषाएं लिखीं, जो वे चाहते थे।)
इन दिनों लोग टाइप सिस्टम को निर्दिष्ट करने के लिए योजनाबद्ध इंजेक्शन नियमों का उपयोग करते हैं, जो अनिवार्य रूप से हॉर्न क्लॉज़ के संग्रह के कम से कम निश्चित बिंदु के रूप में भविष्यवाणी करने का एक तरीका है। प्रथम-क्रम हॉर्न सिद्धांतों के लिए संतुष्टि सामान्य रूप से अकल्पनीय है, इसलिए यदि आप हर प्रकार के सिद्धांतकारों को पकड़ना चाहते हैं, तो आप जो भी व्याकरणिक औपचारिकता चुनते हैं, वह वास्तव में सुविधाजनक है।
मुझे पता है कि टाइप सिस्टम को लागू करने के लिए विशेषता व्याकरणों का उपयोग करने पर कुछ काम किया गया है। वे दावा करते हैं कि इस पसंद के लिए कुछ सॉफ्टवेयर इंजीनियरिंग लाभ हैं: अर्थात्, विशेषता व्याकरण नियंत्रण सूचना प्रवाह को बहुत सख्ती से नियंत्रित करता है, और मुझे बताया गया है कि यह समझ को आसान बनाता है।