سؤال

المناظر الطبيعية باللغة ، رغم أنها رائعة ، لا نهاية لها. هل هناك سبب لاختيار واحد من J أو K أو APL أو A؟ لا يبدو أن أيًا من هذه الخيارات مفتوح المصدر-هل هناك إصدارات مفتوحة من مصادر؟ أحب توسيع عقلي ، لكني أظل محاطًا.

هل كانت مفيدة؟

المحلول

الاختلافات بين هذه اللغات خفية نسبيا. APL "السليم" له مزايا ، وعيوب ، من التدوين الرمزي الأصلي. (هناك تغييرات طفيفة تم إجراؤها على الرمز المحدد على مر السنين ، لكنها كلها صحيحة بما يكفي للرؤية الأصلية.)

لغة A+ متوفرة مفتوحة المصدر. إنه يغادر بشكل كبير من APLs "الكلاسيكية" ، ولكنه يشبههم في الحفاظ على معظم مجموعة الأحرف الأساسية. إحساسي هو أنه لم يتم تحديثه لتغييرات التكنولوجيا. لقد كان مقدمة لـ K.

تتضمن اللغات في عائلة اللغة الصفيف التي غادرت مجموعة الأحرف المميزة APL J و K و Nial. يستخدم NIAL الكلمات الإنجليزية بدلاً من الرموز ، وله مترجم مفتوح المصدر يسمى Q'nial. يعتمد K و J بشكل أساسي على الرموز ، ولكن يتم رسمها من مجموعة أحرف ASCII. يمكن استخدام الكلمات بدلاً من الرموز في هذه اللغات ، ومع ذلك ، ببساطة عن طريق تعيين تعريفات.

كانت عائلة APL اللغوية اللغوية في المقام الأول ملكية في المقام الأول منذ ظهور APL الأولي كمنتج IBM في عام 1964. يبدو أن لغات مجموعة الملكية لديها المزيد من الدعم وتطور أسرع للقدرات الجديدة من بدائل المصدر المفتوح في هذا الوقت. لست متأكدًا من كيفية تكديس جميع المنافسين ضد بعضهم البعض ، لكن Dyalog APL كان يعمل بالتأكيد بنشاط لتعزيز تنفيذهم للغة كتكنولوجيا حالية. يوفر APL2000 منتجات لـ UNIX و Linux و Windows ، بما في ذلك VisualAPL لـ .NET. Microapl Ltd يوفر APLX.

K هي لغة متخصصة لم تعد يتم تسويقها من تلقاء نفسها. تقوم KX Systems بدلاً من ذلك بتسويق قاعدة بيانات KDB+ ولغتها Q (الاستعلام) ، وكلاهما مكتوب في K. إنها أداة متخصصة قوية ، مصممة للمعالجة عالية السرعة لبيانات البث. يغادر بشكل كبير من نهج APL الأصلي. منتجات KX Systems باهظة الثمن ويعمل مستخدموها في الغالب في التمويل.

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

بالنسبة للفرد الذي يرغب في تعلم لغة صفيف ، فإن نصيحتي هي الاختيار بين Dyalog APL و APLX و J و Q'nial. من المحتمل أن يكون Dyalog APL (esp for windows) أو APLX (esp. لـ Linux) الأفضل لشخص يريد استخدام الرمزية الأساسية المميزة لـ APL ، والذي يريد اتصالًا قويًا بمجتمع APL ككل. قد يكون J الأفضل لأولئك الذين يرغبون في بناء تطبيقات الويب ، أو التركيز على الرياضيات (مثل Project Euler ، وخاصة أولئك الذين يفتخرون بالأسلوب الضمني الذي يؤكد. Q'nial هو ما سأختاره إذا كانت أولويتي على المصدر المفتوح ، ولكن فقط إذا لم تكن هذه الأولوية تعني أيضًا توقع دعم مجتمع OS النشط.


تحديث: J 7.01 كان تم إصداره برمز المصدر المفتوح تحت GPL 3. بالإضافة إلى ذلك كونا, ، وهو متغير على K. هذه تزيد من خيارات لغات صفيف مفتوحة المصدر.

تحديث بواسطة توبيا: GNU APL متاح تحت GPL. يتبع عن كثب أحدث معيار ISO المنشور على لغة APL الممتدة. إنه تطبيق APL مفتوح المصدر رائع ويتم تطويره وصيانته بنشاط. هناك تطبيقات أخرى مثيرة للاهتمام أيضًا ، على سبيل المثال NGN APL, ، تنفيذ جيد بشكل مدهش وحديث لـ APL مكتوبة في Coffescript (والذي يجمع إلى JavaScript.) لغات المصفوفة على قيد الحياة وبصحة جيدة في عام 2015.

نصائح أخرى

لإضافة مزيد من المعلومات ...

هناك نسخة مفتوحة المصدر من K اتصل Kona https://github.com/kevinlawler/kona

إلى عن على q/kdb+, ، هناك نسخة تجريبية. http://kx.com/download/

القيود الرئيسية هي المهلة لمدة ساعتين ، وذاكرة 32 بت ، و 3 أشهر انتهاء صلاحية الترخيص ، والترخيص نفسه. لا ينبغي أن تكون هذه مزعجة للغاية إذا كنت تريد فقط اللعب وتعلم شيء ما.

شخصيا ، وجدت q لتكون الأكثر ملاءمة للاستخدام لأن KX ترجمت الأفعال الأحادية (حجة واحدة) من K في الكلمات الإنجليزية وهناك قدر كبير من الوثائق @ http://code.kx.com. بالإضافة إلى ذلك ، فإن نظام قاعدة البيانات مدروس للغاية ومرن.

شيء يجب مراعاته هو مفردات المشغلين (وظائف الترتيب الأعلى).

APL الأصلي يحتوي فقط على تخفيض المحور الأخير والأولى (f/, f⌿) ، آخر وأول محور تراكمي (f\, f⍀) ، بالإضافة إلى المنتج الداخلي والخارجي (f.g, ∘.g).

معظم APLs الممتدة (على سبيل المثال GNU APL ، APLX ، APL+WIN ، APL2) أضف فقط كل حلقة () ، ومواصفات قوس المحور (f[...]).

J ، أضاف أ وفرة أو فرط (تسمى الظروف والاقتران) ، ولكن تمت إزالتها (كل من المحور والفهرسة) ، كل مشغل (لصالح مشغل الرتبة الأكثر عمومية) ، والتخفيض المحور الأخير (التراكمي).

احتفظت APL الحادة الآن (SAX) على كل من مشغلي المحور الأخير التقليدي وفهرسة قوسين ، مع إضافة العديد من مشغلي J الجدد.

تقترب Dyalog APL تدريجياً من مفردات APL Sharp ، ولكنها قامت أيضًا بدمج مشغلي J-Exclusive الذين لم يصلوا إلى APL الحاد.

يقارن الجدول أدناه المفردات J و APL و Dyalog APL. الإدخالات الرمادية تحت الاقتراح.J, Sharp APL, and Dyalog APL compositions

J هو تدوين رياضي قابل للتنفيذ يتم إدخاله وعرضه باستخدام أحرف ASCII.

كما أنها لغة وظيفية بالكامل ، موجهة نحو الكائن ، والبرمجة.

إن تطبيق JSoftware لـ J (لا أعرف أي شخص آخر) ليس مفتوحًا ، ولكنه مجاني في الاستخدام.

على الرغم من أن المحرك ليس مفتوحًا المصدر ، إلا أن هناك مكتبة مستخدم نشطة لرمز J الذي يمكن للأشخاص المساهمة به.

J لديه وثائق واسعة وموجزة http://www.jsoftware.com/help.htm وأعضاء المنتدى بسعادة وسرعان ما يستجيبون لأي أسئلة أو مشكلات ويحرصون على مساعدة المستخدمين الجدد على أن يصبحوا موجهين وكذلك مع مشاكل أكثر تقدمًا.

في مشكلة المصدر المفتوح بالمناسبة ، فإن الوثائق (المواصفات) لـ J واسعة النطاق ويمكن لأي شخص من الناحية النظرية إنشاء مشروع مفتوح المصدر لمحاولة تنفيذ J إذا أرادوا ذلك.

إيلي هي لغة برمجة صفيف تم تطويرها حديثًا ومتاحة مجانًا وعبر المنصة. على غرار J و K يعتمد على مجموعة أحرف ASCII. إنه ينفذ بعض الميزات التي (كما أعرف) كانت فريدة من نوعها في K/Q/KDB+ مثل نوع البيانات الزمنية ومجموعة SQL الفرعية.

على الرغم من أن A+ يبدو (للأسف) مشروعًا ميتًا ، إلا أن هناك مترجمًا جديدًا لـ APL مفتوح المصدر: GNU APL.

أظل أيضًا مشهورًا (لقد ربطني APL دائمًا - لحسن الحظ ، فقد مرت 20 عامًا أو أكثر منذ آخر مرة حاولت فيها آخر شيء معها) ، لكن القليل من البحث قد وجد A+، نسخة مفتوحة المصدر من:

ليس لدي أي فكرة أنها ستلبي احتياجاتك (أو أي شخص).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top