एंबेडेड सॉफ्टवेयर के लिए कार्यात्मक प्रोग्रामिंग [बंद]


15

मैं कल रात एक दोस्त के साथ एफ # और कार्यात्मक प्रोग्रामिंग पर चर्चा कर रहा था और उसने मेरे लिए एक दिलचस्प सवाल उठाया। आप कार्यात्मक में एम्बेडेड सॉफ्टवेयर कैसे करेंगे? मेरा मतलब यह है कि स्टेटलेस कोड के संदर्भ में यह काफी स्वाभाविक है, लेकिन एम्बेडेड भी स्मृति के साथ बहुत मितव्ययी हो जाता है और मुझे उस संबंध में कार्यात्मक के लिए कहानी पर यकीन नहीं है।

कार्यात्मक के साथ एम्बेडेड के लिए भाषा या पैकेज के बारे में कोई सुझाव?


यह लिंक आपको ftp.cs.york.ac.uk/pub/malcolm/thesis.html मदद कर सकता है । पोस्टस्क्रिप्ट फ़ाइल डाउनलोड करें और इसे पढ़ें।
Ubermensch

@ Ubermensch धन्यवाद, लेकिन जब मुझे उस लिंक तक पहुंचने की कोशिश की जाती है तो मुझे एक त्रुटि हो रही है।
ओनोरियो कैटेनेशिएक

3
कृपया इस SO प्रश्न पर एक नज़र डालें । यह बहुत ही बारीकी से प्रतीत होता है कि आपने क्या पूछा है। और यह पृष्ठ Haskell.Atom
भार्गव भट

@OnorioCatenacci यह लिंक वास्तविक पोस्टस्क्रिप्ट फ़ाइल ftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch

जवाबों:


2

फोर्थ एम्बेडेड सिस्टम प्रोग्रामिंग के लिए एक उत्कृष्ट विकल्प है। स्टैक लैंग्वेज होने के कारण, इसका विश्लेषण फंक्शन कंपोजीशन ( कॉन्टेनेटिव प्रोग्रामिंग ) के रूप में किया जा सकता है । मुझे कोई कारण नहीं दिखाई देता है कि अधिक कार्यात्मक पहलुओं के साथ इस तरह की भाषा को भी कुशलता से लागू नहीं किया जा सकता है, लेकिन अभी तक ऐसी कोई चीज (मेरी जानकारी के लिए) मौजूद नहीं है।


1
कॉन्टेनेटिव प्रोग्रामिंग फंक्शनल प्रोग्रामिंग के लिए एक बहुत ही अलग प्रतिमान है, लेकिन एक कार्यात्मक आगे ( फ़नफोर्थ ) है जो हास्केल कार्यात्मक भाषा भाषा के कुछ सरलीकृत पहलुओं को लागू करता है।
मार्क बूथ

@MarkBooth: इतना अलग नहीं है; समवर्ती प्रोग्रामिंग (परिभाषा के अनुसार बहुत अधिक) उच्च-क्रम वाले कॉम्बिनेटरों का भारी उपयोग करता है, और कई कार्यात्मक अवधारणाएं सीधे समसामयिक कोड में अनुवाद करती हैं।
जॉन Purdy

3

एक विकल्प Erlang है । से विकिपीडिया पृष्ठ :

एरलैंग एक सामान्य-उद्देश्यीय समवर्ती, कचरा एकत्र करने वाली प्रोग्रामिंग भाषा और रनटाइम सिस्टम है। एर्लैंग की अनुक्रमिक सबसेट एक कार्यात्मक भाषा है, जिसमें सख्त मूल्यांकन, एकल असाइनमेंट और गतिशील टाइपिंग है। समवर्ती के लिए यह अभिनेता मॉडल का अनुसरण करता है। इसे एरिक्सन द्वारा वितरित, फॉल्ट-टॉलरेंट, सॉफ्ट-रियल-टाइम, नॉन-स्टॉप एप्लिकेशन का समर्थन करने के लिए डिज़ाइन किया गया था। यह गर्म अदला-बदली का समर्थन करता है, ताकि एक सिस्टम को रोकने के बिना कोड को बदला जा सके।

जहां अधिकांश भाषाओं में थ्रेड्स को एक जटिल और त्रुटि-ग्रस्त विषय माना जाता है, वहीं एरलैंग समवर्ती प्रोग्रामिंग को सरल बनाने के उद्देश्य से प्रक्रियाओं को बनाने और प्रबंधित करने के लिए भाषा-स्तर की सुविधाएँ प्रदान करता है। हालांकि सभी संगामिति Erlang में स्पष्ट है, प्रक्रियाएं साझा किए गए चर के बजाय संदेश पास का उपयोग करके संवाद करती हैं, जो तालों की आवश्यकता को दूर करती हैं।

पहला संस्करण 1986 में जो आर्मस्ट्रांग द्वारा विकसित किया गया था। 2 यह मूल रूप से एरिक्सन के भीतर एक मालिकाना भाषा थी, लेकिन 1998 में खुले स्रोत के रूप में जारी किया गया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.