Choreographic programming
કોમ્પ્યુટર વિજ્ઞાનમાં, કોરિયોગ્રાફિક પ્રોગ્રામિંગ એ એક પ્રોગ્રામિંગ પ્રતિમાન છે જ્યાં પ્રોગ્રામ્સ બહુવિધ સહવર્તી સહભાગીઓ વચ્ચેની ક્રિયાપ્રતિક્રિયાઓની રચનાઓ છે. કોરિયોગ્રાફિક પ્રોગ્રામિંગમાં, વિકાસકર્તાઓ સહવર્તી સહભાગીઓના ઇચ્છિત સંચાર વર્તનને વ્યાખ્યાયિત કરવા માટે કોરિયોગ્રાફિક પ્રોગ્રામિંગ ભાષાનો ઉપયોગ કરે છે. આ નમૂનાના કાર્યક્રમોને નૃત્ય નિર્દેશન કહેવામાં આવે છે. કોરિયોગ્રાફિક ભાષાઓ સુરક્ષા પ્રોટોકોલ નોટેશન (જેને "એલિસ અને બોબ" નોટેશન તરીકે પણ ઓળખવામાં આવે છે) દ્વારા પ્રેરિત છે. આ ભાષાઓની ચાવી એ આદિમ સંચાર છે, ઉદાહરણ તરીકે Alice.expr-> Bob.x વાંચે છે કે "એલિસ એક્સપ્રેશનના મૂલ્યાંકનના પરિણામને બોબ સાથે વાતચીત કરે છે, જે તેને તેના સ્થાનિક ચલ x માં સંગ્રહિત કરે છે". એલિસ, બોબ વગેરે. તેને સામાન્ય રીતે ભૂમિકાઓ અથવા પ્રક્રિયાઓ કહેવામાં આવે છે. નીચેનું ઉદાહરણ કેન્દ્રીય પ્રમાણીકરણ સેવા (સી. એ. એસ.) પર આધારિત સરળ સિંગલ સાઇન-ઓન (એસ. એસ. ઓ.) પ્રોટોકોલ માટે કોરિયોગ્રાફી દર્શાવે છે જેમાં ત્રણ ભૂમિકાઓનો સમાવેશ થાય છેઃ ક્લાયન્ટ, જે સેવા સાથે વાતચીત કરવા માટે સી. એ. એસ. પાસેથી એક્સેસ ટોકન મેળવવા માંગે છે. સેવા, જેને ગ્રાહકને પ્રવેશ આપવો જોઈએ કે નહીં તે CAS પાસેથી જાણવાની જરૂર છે. સી. એ. એસ., જે કેન્દ્રીય પ્રમાણીકરણ સેવા છે જે ગ્રાહકના પ્રમાણપત્રોની તપાસ કરવા માટે જવાબદાર છે. નૃત્ય નિર્દેશન છેઃ ક્લાયન્ટ. (ઓળખપત્રો, સર્વિસઆઇડી)-> <આઇડી3> જો <આઇડી6> (ઓથરરિક્વેસ્ટ) તો પછી <આઇડી1> = જેનટોકેન (ઓથરરિક્વેસ્ટ) <આઇડી5> (ટોકન)-> <આઇડી4> <આઇડી5> (ટોકન)-> <આઇડી7> અન્યથા <આઇડી2>-> <આઇડી4> <આઇડી2>-> <આઇડી7> કોરિયોગ્રાફી લાઇન 1 માં શરૂ થાય છે, જ્યાં ક્લાયન્ટ કેટલીક ઓળખપત્રો ધરાવતી જોડી અને સેવાની ઓળખકર્તાને વાતચીત કરે છે જે તે સીએએસ સુધી પહોંચવા માંગે છે. સી. એ. એસ. આ જોડીને તેના સ્થાનિક ચલ લેખક વિનંતીમાં (પ્રમાણીકરણ વિનંતી માટે) સંગ્રહિત કરે છે. લાઇન 2 માં, CAS તપાસે છે કે પ્રમાણીકરણ ટોકન મેળવવા માટે વિનંતી માન્ય છે કે નહીં. જો એમ હોય તો, તે ટોકન જનરેટ કરે છે અને ક્લાયન્ટ અને સર્વિસ (લાઇન્સ 3-5) બંનેને ટોકન ધરાવતો સફળતાનો સંદેશ મોકલે છે. નહિંતર, CAS ક્લાયન્ટ અને સર્વિસને જાણ કરે છે કે પ્રમાણીકરણ નિષ્ફળ ગયું છે, નિષ્ફળતા સંદેશ મોકલીને (રેખાઓ 7-8). બાકીના ભાગમાં આપણે આ નૃત્ય નિર્દેશનને "એસએસઓ નૃત્ય નિર્દેશન" તરીકે ઓળખીએ છીએ. એન્ડપોઇન્ટ પ્રોજેક્શન કોરિયોગ્રાફિક પ્રોગ્રામિંગનું મુખ્ય લક્ષણ એ વિતરિત અમલીકરણ માટે કોરિયોગ્રાફીનું સંકલન કરવાની ક્ષમતા છે. આ અમલીકરણ સોફ્ટવેર માટે પુસ્તકાલયો હોઈ શકે છે જેને પ્રોટોકોલને અનુસરીને કમ્પ્યુટર નેટવર્કમાં ભાગ લેવાની જરૂર છે, અથવા એકલ વિતરિત કાર્યક્રમો હોઈ શકે છે. કોરિયોગ્રાફીના વિતરિત કાર્યક્રમોમાં અનુવાદને એન્ડપોઇન્ટ પ્રોજેક્શન (ટૂંકમાં ઇ. પી. પી.) કહેવામાં આવે છે. એન્ડપોઇન્ટ પ્રક્ષેપણ સ્રોત નૃત્ય નિર્દેશનમાં વર્ણવેલ દરેક ભૂમિકા માટે એક કાર્યક્રમ આપે છે. ઉદાહરણ તરીકે, ઉપરની નૃત્ય નિર્દેશનને જોતાં, એન્ડપોઇન્ટ પ્રક્ષેપણ ત્રણ કાર્યક્રમો પરત કરશેઃ એક ક્લાયન્ટ માટે, એક સેવા માટે અને એક CAS માટે. તેઓ નીચે સ્યુડોકોડ સ્વરૂપમાં દર્શાવવામાં આવ્યા છે, જ્યાં મોકલો અને પ્રાપ્ત કરો એ અન્ય ભૂમિકાઓ માટે/સંદેશાઓ મોકલવા અને પ્રાપ્ત કરવા માટે આદિમ છે. દરેક ભૂમિકા માટે, તેના કોડમાં એવી ક્રિયાઓ હોય છે જે ભૂમિકાએ અન્ય સાથે મળીને નૃત્ય નિર્દેશનને યોગ્ય રીતે અમલમાં મૂકવા માટે અમલમાં મૂકવી જોઈએ. વિકાસ કોરિયોગ્રાફિક પ્રોગ્રામિંગનો દાખલો તેના નામાંકિત પીએચડી થીસીસમાંથી ઉદ્ભવે છે. કોરિયોગ્રાફિક પ્રોગ્રામિંગ ભાષાઓના વાક્યરચના માટેની પ્રેરણા સુરક્ષા પ્રોટોકોલ નોટેશનમાં શોધી શકાય છે, જેને "એલિસ અને બોબ" નોટેશન તરીકે પણ ઓળખવામાં આવે છે. કોરિયોગ્રાફિક પ્રોગ્રામિંગ પણ સર્વિસ કોરિયોગ્રાફી અને ક્રિયાપ્રતિક્રિયા આકૃતિઓ માટેના ધોરણો તેમજ પ્રક્રિયા ગણતરીના સિદ્ધાંતના વિકાસથી ભારે પ્રભાવિત છે. કોરિયોગ્રાફિક પ્રોગ્રામિંગ એ સંશોધનનું સક્રિય ક્ષેત્ર છે. માહિતીના પ્રવાહ, સમાંતર કમ્પ્યુટિંગ, સાયબર-ફિઝિકલ સિસ્ટમ્સ, રનટાઇમ અનુકૂલન અને સિસ્ટમ એકીકરણના અભ્યાસમાં નમૂનાનો ઉપયોગ કરવામાં આવ્યો છે. ભાષાઓ AIOCJ (વેબસાઇટ). અનુકૂલનશીલ પ્રણાલીઓ માટે કોરિયોગ્રાફિક પ્રોગ્રામિંગ ભાષા જે જોલીમાં કોડ ઉત્પન્ન કરે છે. ચોર (વેબસાઇટ). એક સત્ર-ટાઇપ કોરિયોગ્રાફિક પ્રોગ્રામિંગ લેંગ્વેજ જે જોલીમાં માઇક્રોસર્વિસીસ સાથે સંકલન કરે છે. કોરલ (વેબસાઇટ). ઉચ્ચ ક્રમની, ઓબ્જેક્ટ-ઓરિએન્ટેડ કોરિયોગ્રાફિક પ્રોગ્રામિંગ લેંગ્વેજ જે જાવામાં લાઈબ્રેરીઓમાં સંકલન કરે છે. મુખ્ય નૃત્ય નિર્દેશન. કોરિયોગ્રાફિક પ્રોગ્રામિંગ માટે એક મુખ્ય સૈદ્ધાંતિક મોડેલ. કોકમાં યાંત્રીકૃત અમલીકરણ ઉપલબ્ધ છે. કાલસ. કેકએમએલ માટે પ્રમાણિત કમ્પાઇલર સાથે કોરિયોગ્રાફિક પ્રોગ્રામિંગ લેંગ્વેજ. Pirouette. ઉચ્ચ ક્રમની પ્રક્રિયાઓ સાથે યાંત્રિક કોરિયોગ્રાફિક પ્રોગ્રામિંગ લેંગ્વેજ થિયરી. સુરક્ષા પ્રોટોકોલ નોટેશન સિક્વન્સ ડાયાગ્રામ સર્વિસ કોરિયોગ્રાફી સ્ટ્રક્ચર્ડ કોન્કરન્સી મલ્ટીટિયર પ્રોગ્રામિંગ સંદર્ભો બાહ્ય કડીઓ www.choral-lang.org સમવર્તી કમ્પ્યુટિંગ પ્રોગ્રામિંગ દાખલાઓ પણ જુઓ.