2010-06-01 13 views
7

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

हालांकि, मुझे इसके लिए नई चीजों के साथ आने में काफी बुरा लगता है, लेकिन मुझे यकीन है कि वहां कई चीजें हैं जिनके बारे में बात की गई है लेकिन वास्तव में कभी कोशिश नहीं की गई है।

  • इस समय मुख्यधारा की भाषाओं में कौन सी प्रयोगात्मक भाषा सुविधाएं या अवधारणा लागू नहीं की गई हैं?

उदा: अगर मैंने यह पूछा, तो 1 9 60 का कहना है कि एक उत्तर "ऑब्जेक्ट उन्मुख प्रोग्रामिंग" हो सकता है।

मुझे यकीन है कि कंप्यूटर के वैज्ञानिकों (हाल ही में) के साथ बहुत सारे अनुपूरक विचार हैं, कम से कम मुझे बताया गया था।

उत्तर

2

DWIMNWIS (क्या मेरा मतलब है, मैं क्या कहता हूं)।

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

जहां तक ​​आवश्यक सुविधाएं हैं, मैं lambdas और First-class functions कहूंगा। बिल्कुल नया या सैद्धांतिक नहीं (इस साल लिस्प कितना पुराना है) लेकिन कई भाषाओं से शक्तिशाली और गायब है।

+0

वे पहले ही ऐसा कर चुके हैं, कोबोल में मुझे लगता है, है ना? ओह .. कभी नहीं –

+0

इन दिनों अब कई भाषाएं नहीं हैं जिनमें भेड़ के बच्चे और उच्च आदेश कार्य नहीं हैं। DWIMNWIS – sepp2k

+0

+1 एक पूर्ण निर्भर प्रकार प्रणाली में दो प्रमुख समस्याएं हैं: दोनों प्रकार की अनुमान और प्रकार की जांच अपरिहार्य है, और इस प्रकार रोक नहीं सकती है। –

4

अनुसंधान का एक वर्तमान क्षेत्र dependent types है। अभी भी उन चीजों के साथ आप बहुत कुछ कर सकते हैं, जो अभी तक नहीं किए गए हैं।

+0

के लिए –

+0

@ जोनपर्डी: दोनों कोक और आगादा पर निर्भर प्रकार हैं लेकिन न ही समस्या का आप उल्लेख करते हैं। – Blaisorblade

0

अनुसंधान विचारों के लिए एसीएम और आईईईई प्रकाशन पढ़ें

0

यहाँ एक विचार है; और यदि कोई इसे लिखता है तो उन्हें मुझे कॉपीराइट क्रेडिट देना होगा! स्वचालित रूप से मनमानी मैट्रिक्स टेम्पलेट्स में निर्मित है जैसे कि ये मैट्रिक्स गणितीय प्रकार नहीं हैं बल्कि भंडारण या संरचना प्रकार के अधिक हैं। टेम्पलेट पैरामीटर के आधार पर ये मैट्रिस एक स्केलर वैल्यू के रूप में सरल हो सकते हैं जो कि सिद्धांत में निकट अनंत आयामी इकाई के रूप में जटिल हो, यदि कंप्यूटर इसे स्मृति से बाहर किए बिना अनुमति दे सकता है लेकिन व्यवहार में यह आर्किटेक्चर, ओएस और कंपाइलर्स उनके पूर्णांक या अभिन्न प्रकार के आकार के आंतरिक विवरण। इसलिए किसी के पास कम आयामी वॉल्यूमेट्रिक मैट्रिक्स हो सकता है जो 3 आयाम अभी तक स्मृति से बाहर हो गया है क्योंकि यह ऐसा दिखाई दे सकता है: Matrix<type, 1000000000,1000000000,1000000000> matOutOfBoundsMatrix<type, 2,2,2,2,2,2,2,2> जैसे उच्च आयामी मैट्रिक्स से पहले यह 8 डी वॉल्यूमेट्रिक मैट्रिक्स होगा। सरलीकरण किया जा सकता है अगर वे "सही matrices" हैं। यही वह जगह है जहां प्रत्येक आयाम में तत्वों की एक ही सटीक मात्रा होती है, भले ही उनके पास कितने आयाम हों। उदाहरण के लिए: <3,3><3,3,3><3,3,3,3> सभी सही मैट्रिक्स हैं। सरलीकरण Matrix<type, 4^4>Matrix<type, 4,4,4,4> जैसा होगा जो 4x4x4x4 4D वॉल्यूमेट्रिक मैट्रिक्स को 4 डी संरचना में 96 तत्वों के साथ देगा। जहां मैट्रिक्स कई तत्वों के साथ 3 डी वॉल्यूमेट्रिक मैट्रिक्स होगा लेकिन हमारे पास 3 डी वॉल्यूमेट्रिक संरचना होगी क्योंकि हमारे वर्तमान घड़ियों और कंपास इस तरह 360 डिग्री पूर्ण सर्कल, 60 मिनट, 60 सेकेंड पर संचालित होते हैं, सिवाय इसके कि फ्लोट के कई स्टोरेज तत्व हैं।

यह नीचे वर्तमान में संभव सी ++ लाइब्रेरी की तरह दिखता है कि कोई अपनी परियोजनाओं में शामिल होगा; लेकिन यहां विचार इसे भाषा प्रकार में बनाया गया है। फिर आपकी भाषा और कंपाइलर वाला कोई भी इन इच्छाओं का उपयोग कर सकता है।उन्होंने इस तरह की क्या इस टेम्पलेट का चित्रण के रूप में आयामों के किसी भी संख्या के साथ इन का उपयोग कर सकते हैं:

// Header Declaration 
template<typename ClassType, unsigned int...> 
matrix{ 
}; // No need to show body just declaration for concept 

// User Code Would Be 
matrix<float,2,3,4,5,7> mat; // This would create a 2x3x4x5x7 matrix that is a 5th dimensional volumetric matrix 

// Default type 
matrix<int> mat2; // This creates a 1x1 matrix that would in essence be a scalar. 

अब मैं क्या दिखाया है variadic टेम्पलेट्स के लिए वर्तमान C++ वाक्य रचना है। यहां विचार यह होगा कि इस प्रकार के मैट्रिक्स कंटेनर प्रकारों में बनाए जाएंगे!

उन्हें गणित बनाना चाहते हैं? निश्चित रूप से यह ठीक है लेकिन उपयोगकर्ता को ऐसा करने के लिए अपने स्वयं के "एल्गोरिदम, विधियों, कार्यों, या दिनचर्या" को परिभाषित करना होगा।

कारण वे स्वतंत्र रूप से परिभाषित करना होगा इस कारण के लिए क्या है:

mat<float, 3,3,3> mat1; 3x3x3 3D Volumetric Matrix - 27 elements 
mat<float, 5,5> mat2; 5x5 2D Linear-Quadratic (Area) Matrix - 25 elements 
mat<int, 6,7,8> mat3; 6x7x8 3D Volumetric Matrix - 336 elements 

mat<bool, 8>  mat4; 1x8 1D Linear Matrix (Array); transpose? 
        mat4::transpose; // built in - now 8x1 matrix 
        mat4::transpose; // back to 1x8. 

class TheMotherLoad {// Many members and methods }; 
// ... 
mat<TheMotherLoad*, 9,9,9,9,9,9,9,9,9> mat9; 
// simplified version 
mat<TheMotherLoad*, 9^9> mat9 
// A 9 Dimensional Volumetric container So the first the would be a Cube 
// with its sides having a length of 9 cells where the Volume 9^3 is the 
// First Order of what a Volumetric Matrix is. 
// Anything less is linear or quadratic either it being a scalar, 
// translation, an array, a line, a point, a vector, rotation, quadratic and area) 
// Now that we have a cube that has 729 elements and the next 
// three 9s which are the 4th, 5th & 6th dimensions would act as another 
// 9x9x9 matrix surrounding the first 3 dimensions respectively. 
// Finally the 7th, 8th & 9th dimensions defines the "outer matrix" 
// that also has "9x9x9" elements. So in total the number of elements 
// in this matrix would be 729^3 and for every 

कैसे मैट्रिक्स हैं गुणों के कारण क्या निर्धारित करता है कि क्या गणित आपरेशन के प्रकार है कि उनको कुछ किया जा सकता है इसे बाहरी रूप से किया जाना है।

संबंधित मुद्दे