مرجع
آخر الزيارات

كي (لغة برمجة)

959 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: K هي لغة برمجة معالجة تعتمد على المصفوفات. تجد هنا «, kdb+»، «نظرة عامة» و«{&/x!/:2_!x}» ضمن 9 أقسام.
المحتويات
  1. , kdb+
  2. نظرة عامة
  3. {&/x!/:2_!x}
  4. يتم تقييم التعبير من اليمين إلى اليسار
  5. x@>#:'x
  6. أمثلة
  7. قراءة من اليمين إلى اليسار
  8. التاريخ
  9. المنتجات المالية

في البداية، K هي لغة برمجة معالجة تعتمد على المصفوفات. وضعتها آرثر ويتني وتسويقها بواسطة Kx Systems. تُستعمل اللغة كأساس لـ kdb + ، وقاعدة بيانات في الذاكرة وقائمة على العمود في قواعد البيانات. وضعت أصلا في سنة 1993، كبديل عن APL وتحتوي على عناصر من المخطط. يؤكد المدافعون عن اللغة على سرعتها، ومرفقها في معالجة المصفوفات، وبناء الكود البرمجي. وفيما يلي تفاصيل أوسع عن ذلك.

, kdb+

إضافةً إلى ذلك، Michael Schidlowsky - Screencast comparing solutions of a specific problem in K vs. جافا (لغة برمجة)

نظرة عامة

وفي هذا السياق، مثل APL ، يتم تمثيل الوظائف الأولية والمشغلين بأحرف مفردة أو مزدوجة. ومع ذلك، بخلاف APL ، يقيد K نفسه إلى مجموعة أحرف ASCII) لتكون مجموعة الوظائف البدائية لـ K أصغر وأثقل (أفضل) في خاصية إفراط التحميل، حيث يمثل كل من رموز ASCII وظيفتين أو أكثر من العمليات أو العمليات المميزة. في تعبير محدد، يتم تحديد الوظيفة الفعلية المشار إليها بواسطة السياق. نتيجة لذلك، يمكن أن تكون تعبيرات K مبهمة ويصعب تحليلها للبشر. مثلًا، في التعبير التالي، علامة التعجب! تشير إلى ثلاث وظائف مختلفه:

وفي هذا السياق، تشارك K الميزات الرئيسية مع APL. كلاهما يتم تفسيرهما، واللغات التفاعلية معروفة بناء جملة موجزة ومعبرة. لديهم قواعد الأسبقية البسيطة بناءً على التقييم من اليمين إلى اليسار. تحتوي اللغات على مجموعة غنية من الوظائف البدائية المصممة لمعالجة المصفوفات. تتضمن هذه الوظائف البدائية عمليات رياضية، مثل الفرز أو عكس ترتيب المصفوفة. علاوةً على ذلك، تحتوي اللغة على عوامل تشغيل خاصة تتحد مع الوظائف البدائية لأداء أنواع من التكرار والإعادة. ونتيجة لذلك، يمكن التعبير عن التحويلات المعقدة والممتدة لمجموعة البيانات كسلسلة من التعبيرات الفرعية، حيث يؤدي كل رابط جزءًا من الحساب ويمرر النتائج إلى الرابط التالي (الكود التالي) في السلسلة.

2!!7!4

{&/x!/:2_!x}

كذلك، إذا لم يكن x عدد أولي، فستكون إحدى القيم التي يتم إرجاعها بواسطة عملية إيجاد المعامل أو الباقي هي 0 وبالتالي تكون القيمة الأقل للقائمة. إذا كانت قيمة x أولية، فستكون القيمة الدنيا 1، لأن (x mod 2) هي 1 لأي قيمة أولية أكبر من 2.

"&" العثور على الحد الأدنى لقيمة المعامل.

  • الكود من اليمين إلى اليسار:
  • "x!" الأعداد الصحيحة الموجبة الأقل من x.
  • "_2" يحذف أول عنصرين (رقمين) من التعداد (0 و 1).

الوظيفة أدناه لسرد جميع الأعداد الأولية بين 1 و R :

من جهة ثانية، "/!x/:" ينفذ عملية حساب المعامل (الباقي) بين العدد الصحيح الأصلي وكل قيمة في القائمة.

2_&{&/x!/:2_!x}'!R

يتم تقييم التعبير من اليمين إلى اليسار

"R" تعداد الأعداد الصحيحة أقل من R.

"2_" حذف أول عنصرين من التعداد (0 و 1)

ومن جهة أخرى، قم بتطبيق كل قيمة من التعداد على خاصية الرقم الأولي. هذا سيعيد قائمة من 0 و 1.وإرجاع مؤشرات القائمة حيث القيمة هي 1.

x@>#:'x

  • الكود من اليمين إلى اليسار:
  • "x" تُرجع طول كل كلمة في القائمة x.
  • ">" تُرجع المؤشرات التي ستفرز قائمة القيم بترتيب تنازلي.
  • "@" استعمل القيم الصحيحة على اليمين الفهرسة إلى قائمة السلاسل الأصلية.
  • دالة لتحديد ما إذا كان الرقم أوليًا كما يلي:

أمثلة

وفي هذا السياق، K هي لغة مفسرة حيث يتم تفسير كل عبارة ويتم عرض نتائجها على الفور باستخدام مفسر. التعبيرات مثل الاحرف تظهر مباشرتاً. على سيبيل المثال برنامج أهلا بالعالم:

وعلى صعيد آخر، البرنامج التالي يقوم بعرض سلاسل ويرتبها على حسب طول السلسلة:

"Hello World"

قراءة من اليمين إلى اليسار

وفي هذا الصدد، {(3*x^2)+(2*x)+1}'!4في K ، يتم تسمية الوظائف تطبيقية (functions) بالطريقة نفسها التي يتم بها تخزين أي لمتغير.

وعلى صعيد آخر، "!" هو التناوب حيث يتم تدوير القائمة على اليمين مرتين إلى اليسار مما يؤدي إلى النتيجة النهائية لل 2 0 1.

وفي السياق ذاته، التمييز الأساسي الثاني لـ K هو أن الدوال تمثل كائنات من الدرجة الأولى. يمكن استخدام وظائف الدرجة الأولى في نفس السياق حيث يمكن استخدام قيمة البيانات ويمكن تحديد الوظائف كتعبيرات مجهولة وتستعمل مباشرة مع تعبيرات أخرى. يتم تحديد تعبيرات الوظائف في K باستخدام حاصرتين. مثلًا، في التعبير التالي، يتم تعريف الجذر كدالة ويتم تطبيقه على القيمتين 0 1 2 و 3:

:{(x^2)-1}

ومن ناحية أخرى، "!" يشير إلى التعداد وقائمة الأعداد الصحيحة أقل من 3 وهي 02.

a:25f

وفي هذا السياق، "!" يشير إلى تقسيم مودولو الذي يتم تنفيذه في 7 و 4 مما يؤدي إلى 3.

التاريخ

وفي هذا السياق، انتهى العقد في عام 1997 عندما اندمجت UBS مع Swiss Bank. في سنة 1998، أصدرت Kx Systems kdb + ، وكانت قاعدة البيانات المبنية على K.kdb قاعدة بيانات في الذاكرة موجهة نحو العمود وشملت ksql ، وهي لغة استعلام مع بناء جملة يشبه SQL. منذ ذلك الحين، تم تطوير الكثير من المنتجات المالية باستخدام K و kdb +. تم تطوير kdb + / tick و kdb + / taq في عام 2001. تم إصدار kdb + ، إصدار 64 بت من kdb + في سنة 2003 وتم إصدار kdb + / tick و kdb + / taq في عام 2004. kdb + تضمن Q ، وهي لغة دمجت وظائف لغة K الأساسية و ksql.

من جانب آخر، في عام 1993، غادر ويتني مورغان ستانلي وطور النسخة الأولى من اللغة K. في الوقت نفسه، قام بتكوين Kx Systems لتسويق المنتج وتوقيع عقد حصري مع (Union Bank of Switzerland (UBS. طور خلال السنوات الأربع التالية الكثير من التطبيقات المالية والتجارية باستخدام K لـ UBS.

وفي السياق ذاته، قبل تطوير K ، عمل آرثر ويتني بشكل مكثف مع APL ، أولاً في I. P. Sharp Associates إلى جانب Ken Iverson و Roger Hui ، وفي وقت لاحق في Morgan Stanley قام بتطوير التطبيقات المالية. في Morgan Stanley ، ساعد Whitney في تطوير A+ ، وهو متغير من أي بي أل APL ، لتسهيل ترحيل تطِّبيقات APL من أجهزة الكمبيوتر المركزية من IBM إلى شبكة من محطات عمل Sun. كان لدى A + مجموعة أصغر من الوظائف البدائية وتم تصميمها للسرعة والتعامل مع مجموعات كبيرة من بيانات السلاسل الزمنية.

أصدر ويتني مشتقًا من K يسمى Shakti في سنة 2018.

المنتجات المالية

  • انظر كذلك
  • أس كيو أل لايت
  • قاعدت بيانات
  • مراجع
  • روابط خارجية
  • , Kx Systems

من جهة ثانية، K هي الأساس لعائلة من المنتجات المالية. Kdb + عبارة عن قاعدة بيانات في الذاكرة ود تحتوي على الكثير من الوظائف ذاتها لنظام إدارة قواعد البيانات العلائقية. تدعم قاعدة البيانات SQL و SQL-92 و ksql ، وهي لغة استعلام ذات بناء جملة مشابه لـ SQL ومصممة للاستعلامات المستندة إلى العمود (في الجدول) وتحليل المصفوفة.

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.