यदि आपने सॉफ़्टवेयर के लिए औपचारिक तरीके सीखे हैं, तो आपने इसे कितना उपयोगी पाया है?


17

यदि आपको प्रोग्रामिंग के लिए औपचारिक तरीकों (एफएम) के उपयोग में प्रशिक्षित किया गया है :

  • आपने इसे कितना उपयोगी पाया है?
  • आपके एफएम प्रशिक्षण में क्या शामिल था (उदाहरण के लिए, एक पुस्तक)?
  • आप कौन से FM टूल का उपयोग करते हैं?
  • FM का उपयोग न करने की तुलना में गति / गुणवत्ता में आपको क्या लाभ मिला है?
  • आप FM के साथ किस तरह का सॉफ्टवेयर बनाते हैं?
  • और अगर आप सीधे अब एफएम का उपयोग नहीं करते हैं, तो क्या यह कम से कम सीखने लायक था?

मैं एफएम पर कई अनुभवों / विचारों को सुनने के लिए उत्सुक हूं, जैसा कि इस समुदाय में पाया जा सकता है; मैं इस पर पढ़ना शुरू कर रहा हूं और अधिक जानना चाहता हूं।

पृष्ठभूमि

प्रोग्रामिंग और सॉफ्टवेयर डेवलपमेंट / इंजीनियरिंग पृथ्वी पर नवीनतम मानव कौशल / व्यवसायों में से कुछ हैं, इसलिए आश्चर्य की बात नहीं है, क्षेत्र अपरिपक्व है - जो हमारे क्षेत्र के मुख्य आउटपुट में दिखाता है, क्योंकि कोड आमतौर पर देर से होता है और त्रुटि-प्रवण होता है। औसत और शीर्ष कोडर के बीच उत्पादकता में व्यापक अंतर (कम से कम 10: 1) द्वारा उद्योग की अपरिपक्वता को भी दिखाया गया है। इस तरह के निराशाजनक तथ्यों को साहित्य में अच्छी तरह से कवर किया गया है, और स्टीव मैककॉनेल के कोड कम्प्लीट जैसी पुस्तकों द्वारा पेश किया गया है ।

औपचारिक तरीकों (एफएम) का उपयोग सॉफ्टवेयर / सीएस में प्रमुख आंकड़ों द्वारा प्रस्तावित किया गया है (उदाहरण के लिए दिवंगत ई। दिक्जस्त्र ) त्रुटियों के मूल कारणों में से एक: प्रोग्रामिंग में गणितीय कठोरता की कमी। उदाहरण के लिए, दिक्जस्त्र, एक कार्यक्रम और उसके प्रमाण को एक साथ विकसित करने वाले छात्रों के लिए वकालत की

अमेरिका की तुलना में यूरोप में CS के पाठ्यक्रम में FM बहुत अधिक प्रचलित है। लेकिन पिछले कुछ वर्षों में, नए "हल्के" एफएम दृष्टिकोण और मिश्र धातु जैसे उपकरणों ने कुछ ध्यान आकर्षित किया है। फिर भी, एफएम उद्योग में आम उपयोग से दूर है, और मैं यहां कुछ प्रतिक्रिया की उम्मीद कर रहा हूं।

अपडेट करें

अब तक (10/14/2010), नीचे दिए गए 6 उत्तरों में से, किसी ने "वास्तविक दुनिया" कार्य में एफएम के उपयोग के लिए स्पष्ट रूप से तर्क नहीं दिया है। अगर कोई कर सकता है और मैं वास्तव में उत्सुक हूं; या शायद एफएम वास्तव में शिक्षाविदों (एफएम भविष्य है!) और उद्योग (एफएम ज्यादातर बेकार है) के बीच विभाजन को चित्रित करता है।


आपके अपडेट के बारे में, शायद किसी ने "वास्तविक दुनिया" काम में एफएम के उपयोग के लिए तर्क नहीं दिया है क्योंकि वास्तविक दुनिया के काम में उनके लिए बहुत कम उपयोग के मामले हैं
रिचर्ड

जवाबों:


8

किसी भी चीज के लिए बिल्कुल बेकार।

मेरे पास एक कोर्स था, जिसे aptly, "Formal Methods" कहा जाता था, जो कि मिश्र धातु पर केंद्रित था- मैं संभवतः इसका उपयोग कहीं भी नहीं देख सकता। एक और वर्ग था जो LTSA- समान रूप से बेकार के साथ संगामिति मॉडलिंग पर ध्यान केंद्रित करता था।

समस्या यह है कि सॉफ़्टवेयर में अधिकांश बग और समस्याएं (कम से कम मेरे अनुभव में) जटिलता से उत्पन्न होती हैं जो उन उपकरणों के अमूर्त स्तर से नीचे होती हैं।


साझा करने के लिए धन्यवाद; क्या आप कहेंगे कि एफएम में प्रशिक्षण आपके बाद के काम के लिए कम से कम मददगार था, उदाहरण के लिए आपने अधिक स्पष्ट रूप से सोचने में मदद की? या नहीं?
limist

@ प्रारंभिक: मैं वास्तव में ऐसा नहीं सोचता। मेरा मतलब है, मैं थोड़े मिश्र धातु को पसंद करता हूं, लेकिन मुझे नहीं लगता कि यह उपयोगी है कि मैं कैसे सोचूं।
फिशटोस्टर

2
यह ठीक वही उत्तर है जो मैंने दिया होगा। सबसे पूरी तरह से निरर्थक वर्ग जो मैंने विश्वविद्यालय में लिया था और कुछ ऐसा नहीं जिसे मैंने कभी भी पीछे मुड़कर देखा हो और मुझे खुशी है कि मैंने इसे सीखा। मुझे लगता है कि समस्या की जड़ यह है कि औपचारिक रूप से इसे सही ढंग से मॉडल करने के लिए कोड की तुलना में औपचारिक विशिष्टता अधिक जटिल होनी चाहिए, इसलिए किसी भी दूरस्थ रूप से जटिल कोड के लिए यह एक बड़े पैमाने पर कठिन कार्य है, जो इस बात का एक औपचारिक मॉडल बनाता है, इस बिंदु पर कि मैं कर सकता हूं हार्डवेयर डिजाइन या समान रूप से अपूरणीय कार्य के बाहर किसी की कल्पना नहीं करना चाहते हैं या करने में सक्षम हैं।
21:39 पर ग्लेनट्रॉन

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

7

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


साझा करने के लिए धन्यवाद, मैं इस Q पर बार-बार एक अनुवर्ती सवाल पूछूंगा: क्या आप कहेंगे कि FM में प्रशिक्षण कम से कम आपके बाद के काम के लिए सहायक था, उदाहरण के लिए आपने अधिक स्पष्ट रूप से सोचने में मदद की? या नहीं?
सीमित

अपने आकाओं को बधाई!
क्रिस

@ प्रारंभिक: मैं कहूंगा कि यह एक बहुत अच्छा सैद्धांतिक अनुभव था, लेकिन मुझे उद्योग में बहुत कम व्यावहारिक अनुप्रयोग मिला।
ysolik

4

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


4

मैंने औपचारिक तरीकों के बारे में कुछ किताबें पढ़ी हैं, और कुछ को लागू किया है। मेरी तत्काल प्रतिक्रिया थी, "जी, ये पुस्तकें मुझे बताती हैं कि मैं एक अच्छा गणितज्ञ कैसे हो सकता हूं, जब तक कि मैं एक परिपूर्ण गणितज्ञ हूं।" एक और कमजोरी यह है कि आप केवल एक और औपचारिक विवरण के साथ तुल्यता साबित कर सकते हैं। एक कार्यक्रम के लिए एक औपचारिक विनिर्देश लिखना एक उच्च-स्तरीय भाषा में एक कार्यक्रम लिखने के लिए समान है, और कोई तरीका नहीं है कि आप एक बड़े पैमाने पर विशेष रूप से बगों को पेश करने से बच सकते हैं।

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

एक बात जो मैंने उठाई, वह यह है कि आमतौर पर अधिक उपयोगी है एक अपरिवर्तनीय की अवधारणा, एक कार्यक्रम और उसके राज्य के बारे में एक बयान जो हमेशा सच होता है। आप जिस भी कारण से कुछ भी कर सकते हैं वह अच्छा है।

जैसा कि ऊपर कहा गया है, मैं एक आदर्श गणितज्ञ नहीं हूं, और इसलिए मेरे प्रमाण में कभी-कभी त्रुटियां होती हैं। हालांकि, मेरे अनुभव में ये बड़ी गूंगी गलतियां हैं, जिन्हें पकड़ना और ठीक करना आसान है।


4

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


मैंने एक बार टेप-स्टाइल I / O का वर्णन करते हुए एक छुरा देखा था। लेखक के पास औपचारिक रूप से रैंडम एक्सेस फ़ाइलों का वर्णन करने के लिए कोई समाधान नहीं था, और खुद को उन्हें खराब करने के साथ संतुष्ट किया।
डेविड थॉर्नले

1
@ डेविड: वे रैंडम-एक्सेस फाइलें। बुरी खबर। आप उनका उपयोग नहीं करना चाहते हैं। =)
पॉल नाथन

3

स्व-सिखाया टीएलए + पिछले साल, तब से इसका उपयोग कर रहे हैं। जब भी मैं कोई परियोजना शुरू करता हूं, तो यह उन पहले साधनों में से एक है, जिनके लिए मैं पहुंचता हूं। अधिकांश लोग जो गलती करते हैं, वह यह है कि औपचारिक विधियाँ एक सर्व-या-कुछ नहीं है: या तो आप औपचारिक तरीकों का उपयोग नहीं कर रहे हैं या आपके पास पूर्ण सत्यापन है। हालाँकि, उनके बीच कुछ है: औपचारिक विनिर्देश , जहाँ आप जाँचते हैं कि आपकी परियोजना का एक सार विनिर्देश आपके आक्रमणकारियों को नहीं तोड़ता है। सत्यापन के विपरीत, विनिर्देश उद्योग में उपयोग करने के लिए पर्याप्त व्यावहारिक है।

विशिष्टता भाषाएं प्रोग्रामिंग भाषाओं की तुलना में अधिक अभिव्यंजक हैं। उदाहरण के लिए, वितरित डेटा स्टोर के लिए यहां (बहुत) सरल प्लससाल कल्पना है:

process node \in 1..5 \* Nodes
variables online = TRUE,
          stored \in SUBSET data; \* Some set
begin 
  Transfer:
    either
      with node \in Nodes, datum \in stored do
        node.stored := node.stored \union {datum};
      end
    or \* crash
      online := FALSE;
    end either;
end process;

यह स्निपेट एक साथ चलने वाले पांच नोड्स को निर्दिष्ट करता है, एक अनियंत्रित क्रम में स्थानान्तरण चला रहा है, जहाँ हर स्थानांतरण डेटा का एक मनमाना टुकड़ा है। इसके अतिरिक्त, हमने निर्दिष्ट किया है कि कोई भी दिया गया स्थानांतरण विफल हो सकता है और नोड को क्रैश कर सकता है। और हम इन सभी व्यवहारों को टीएलए + मॉडल चेकर में अनुकरण कर सकते हैं! इस तरह हम परीक्षण कर सकते हैं कि आदेश की परवाह किए बिना, विफलता दर, आदि, हमारी आवश्यकताएं अभी भी पकड़ में हैं। जिसमें से बोलते हुए, कुछ आवश्यकताओं को जोड़ते हैं। पहला, कि हम डेटा को कभी भी ऑफ़लाइन नोड में स्थानांतरित नहीं करते हैं:

[][\A node \in Nodes: ~online => UNCHANGED node.stored]_vars

हमारे सरलीकृत संस्करण में, मॉडल चेकर को एक विफलता स्थिति मिलेगी। हम यह भी निर्दिष्ट कर सकते हैं "डेटा का कोई भी टुकड़ा कम से कम एक ऑनलाइन नोड में है":

\A d \in data: \E n \in Nodes: n.online /\ d \in n.stored

जो असफल भी होगा। एक इकाई परीक्षण के साथ इनकी जाँच करने का सौभाग्य!

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


1

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

यह एक आश्चर्यजनक बात थी, लेकिन, जैसे ही @FishToaster ने कहा, यह गैर-तुच्छ चीज़ों के लिए बेकार था।


0
  1. " आपने इसे कितना उपयोगी पाया है? "

कंप्यूटर प्रोग्रामिंग के लिए पेट्री नेट का एप्लिकेशन बहुत उपयोगी है। मैंने "नेट एलीमेंट्स एंड एनोटेशन्स" बनाया, जो पेट्री नेट्स (चियनग्लो, 2014) पर आधारित एक विधि है। मैं जावास्क्रिप्ट कार्यक्रमों को लिखने के लिए 2014 से विधि लागू कर रहा हूं जो पीडीएफ फॉर्म अनुप्रयोगों के लिए एक्रोबेट / जावास्क्रिप्ट एपीआई का उपयोग करते हैं।

  1. " आपके एफएम प्रशिक्षण में क्या शामिल था (उदाहरण के लिए, एक पुस्तक)? "

मैं सेल्फ स्टडी के माध्यम से पेट्री नेट पर "प्रशिक्षित" हूं। मैंने पेट्री नेट पर चैप्टर "पेट्री नेट्स एंड ग्रेफेट: टूल्स फॉर मॉडलिंग डिस्क्रीट इवेंट सिस्टम्स" (डेविड एंड अल्ला, 1992) से पढ़ा। मैं पेट्री नेट पर शोध पत्र भी पढ़ रहा हूं। "नेट एलीमेंट्स एंड एनोटेशन्स" बनाने और डॉक्यूमेंट करने के बाद मैंने कई हफ्तों तक इस विधि को लागू करने का अभ्यास किया।

  1. आप किस FM टूल का उपयोग करते हैं? "

मैं PowerPoint का उपयोग करके पेट्री नेट आरेख खींचता हूं। मैं Word का उपयोग करके एनोटेशन का फ़ॉर्म दृश्य बनाता हूं। मैं एक्रोबैट और नोटपैड का उपयोग करके पीडीएफ फॉर्म एप्लिकेशन के रूप में टोकन गेम बनाता हूं। प्रविष्टियों को फॉर्म में जोड़ने के बाद इन प्रविष्टियों का जावास्क्रिप्ट कोड में अनुवाद व्यवस्थित है। इस प्रकार अनुवाद को स्वचालित करना संभव होना चाहिए। यदि पॉवरपॉइंट में ग्राफिक्स ऑब्जेक्ट्स में "प्रविष्टियां" जोड़ी गई हैं, तो उन्हें जावास्क्रिप्ट कोड में व्यवस्थित रूप से अनुवाद करना और इस अनुवाद को भी स्वचालित करना संभव होना चाहिए। मैं इन अनुवादों को करने के लिए और पीडीएफ फॉर्म एप्लिकेशन बनाने के लिए अतिरिक्त संसाधन बनाने के लिए कार्य-प्रगति के साधनों के एक सेट का उपयोग भी करता हूं (चियनग्लो, 2018; 2017)।

  1. " एफएम / स्पीड का उपयोग न करने की तुलना में गति / गुणवत्ता में आपको क्या लाभ मिला है?" "

मैं "नेट एलीमेंट्स एंड एनोटेशन्स" का उपयोग किए बिना जावास्क्रिप्ट प्रोग्राम्स को लिखने से ज्यादा तेजी से "नेट एलिमेंट्स एंड एनोटेशन्स" का उपयोग करके जावास्क्रिप्ट प्रोग्राम लिख सकता हूं। और बड़े कार्यक्रमों के लिए मैं कोडिंग को बंद कर सकता हूं और बाद में (या बहुत बाद में) कोडिंग पर लौट सकता हूं, बिना यह सोचें कि कहां जारी रखना है (चिएन्ग्लो, 2019)। कुछ मामलों में मैं "नेट एलिमेंट्स एंड एनोटेशन" का उपयोग करके जावास्क्रिप्ट प्रोग्राम लिख सकता हूं, लेकिन "नेट एलिमेंट्स एंड एनोटेशन" का उपयोग किए बिना जावास्क्रिप्ट प्रोग्राम नहीं लिख सकता। उदाहरण के लिए मैं "नेट एलीमेंट्स एंड एनोटेशंस" (Chionglo, 2019b; 2018b; 2016) के उपयोग के बिना पुनरावर्ती कार्यों के गैर-पुनरावर्ती कार्यान्वयन नहीं बना सकता था। ये कार्य-प्रगति के टूल के साथ या इसके बिना सच हैं।

  1. " आप एफएम के साथ किस तरह का सॉफ्टवेयर बनाते हैं? "

मैं जावास्क्रिप्ट प्रोग्राम बनाने के लिए "नेट एलीमेंट्स एंड एनोटेशन" का उपयोग करता हूं जो पीडीएफ फॉर्म एप्लिकेशन के लिए एक्रोबेट / जावास्क्रिप्ट एपीआई का उपयोग करते हैं। मैं HTML दस्तावेज़ों के लिए जावास्क्रिप्ट प्रोग्राम बनाने और Arduino Sketches (Chionglo, 2019c; 2019d) बनाने की विधि भी लागू कर सकता हूं।

  1. " और अगर आप सीधे अब एफएम का उपयोग नहीं करते हैं, तो क्या यह कम से कम सीखने लायक था? " लागू नहीं।

संदर्भ

Chionglo, JF (2019b)। एक पुनरावर्ती संबंध के एन-वें कार्यकाल की गणना करना: गैर-पुनरावर्ती फ़ंक्शन का उपयोग करना - गणित स्टैक एक्सचेंज में एक प्रश्न का उत्तर। < https://www.academia.edu/38496025/Computing_the_N-th_Term_of_a_Recursive_Relation_Using_a_Non-Recursive_Function_A_epeply_to_a_Question_at_Mathematics_Stack_Exchange >।

Chionglo, JF (2019c)। लौ प्रभाव नियंत्रण तर्क, सिमुलेशन और स्केच: Arduino सामुदायिक मंच पर एक अनुरोध का जवाब। https://www.academia.edu/40342956/Flame_Effect_Control_Logic_Simulation_and_Sketch_A_Reply_to_a_Request_at_the_Arduino_Community_Forum

Chionglo, JF (2019)। कैसे मैं एक लंबे ब्रेक के बाद एक आवेदन कोडिंग जारी रखें? "आपको यह कैसे पता चलेगा कि 2 सप्ताह के ब्रेक के बाद आप अपने कोड में कहां रुक गए?" - सॉफ्टवेयर इंजीनियरिंग स्टैक एक्सचेंज। https://www.academia.edu/39705042/How_I_Continue_Coding_an_Application_after_a_Long_Break_Reply_to_How_do_you_know_where_you_stopped_in_your_codes_after_a_2-week_break_Software_Engineering_Stack_Exchange

Chionglo, JF (2019d)। दिखाएँ और छिपाएँ नियंत्रण तर्क: ढेर अतिप्रवाह में एक सवाल से प्रेरित है। < https://www.academia.edu/40283015/Show-and-Hide_Control_Logic_Inspired_by_a_Question_at_Stack_Overflow >।

Chionglo, JF (2018b)। एक नंबर के तथ्य के लिए एक पेट्री नेट मॉडल: और एक गैर-पुनरावर्ती जावास्क्रिप्ट फ़ंक्शन इसकी गणना करने के लिए। <>।

Chionglo, JF (2018)। हाइपर फॉर्म ™ बनाएं - प्रगति में एक वर्कफ़्लो: नेट प्रोग्रामिंग रिसर्च पर अपडेट करें। https://www.academia.edu/37697498/Create_Hyper_Form_-A_Workflow_in_Progress_Update_on_the_Net_Programming_Research

Chionglo, JF (2017)। नेट प्रोग्रामिंग: एक शोध प्रस्ताव: पावरपॉइंट और एक्रोबेट के साथ पीडीएफ फॉर्म एप्लिकेशन विकसित करने के लिए। https://www.academia.edu/33374809/Net_Programming_A_Research_Proposal_For_Developing_PDF_Form_Applications_with_PowerPoint_and_Acrobat।

Chionglo, JF (2016)। फाइबोनैचि संख्या की गणना के लिए पेट्री नेट मॉडल। https://www.academia.edu/31748108/A_Petri_Net_Model_for_Computing_the_Fibonacci_Number।

Chionglo, JF (2014)। कंप्यूटर प्रोग्रामिंग के लिए शुद्ध तत्व और एनोटेशन: पीडीएफ में कम्प्यूटेशन और इंटरैक्शन। https://www.academia.edu/26906314/Net_Elements_and_Annotations_for_Computer_Programming_Computations_and_Interactions_in_PDF

डेविड, आर। और एच। अल्ला। (1992)। पेट्री नेट्स और ग्राफसेट: मॉडलिंग असतत-इवेंट सिस्टम के लिए उपकरण। अपर सैडल, एनजे: प्रेंटिस हॉल।

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