سؤال

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

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

  • ما هي فوائد نمذجة لغات البرمجة أو ميزات اللغة على الرياضيات؟
  • ما هي فوائد نمذجة لغة على مبادئ المنطق الرسمي؟
  • هل يمكن أن تتخلى لغة الغرض العام إما المنطق أو الرياضيات؟
  • ما هي بعض اللغات التي تظهر حقًا فوائد أي من النهج؟
  • ما هي ميزات الأجهزة التي تجعل طريقة واحدة أكثر جاذبية من الآخر؟
هل كانت مفيدة؟

المحلول

بادئ ذي بدء ، لا أرى الكثير من التمييز بين المنطق والرياضيات ؛ هذا الأخير هو مجرد السابق المطبق بشكل منهجي على بنيات محددة.

بالإضافة إلى ذلك ، لست مقتنعًا بأن الجمال النظري للغات البرمجة التي تستند إلى الرياضيات/المنطق يستحق كثيرًا عندما يتعلق الأمر بإنجاز الأمور عن طريق كتابة التعليمات البرمجية الفعالة القابلة للصيانة.

بالنسبة لك أسئلة محددة.

ما هي فوائد نمذجة لغات البرمجة أو ميزات اللغة على الرياضيات؟ ما هي فوائد نمذجة لغة على مبادئ المنطق الرسمي؟

تصبح أدلة الصواب أسهل بكثير - على الرغم من أنه من المشكوك فيه ما إذا كنا سنصل إلى النقطة التي تصبح فيها عملية لأنظمة الحياة الواقعية.

هل يمكن أن تتخلى لغة الغرض العام إما المنطق أو الرياضيات؟

يعتمد على ما تعنيه مع "Forgo". يمكن أن يكون لديك لغة بدون عمليات رياضية (على الرغم من أنه يتعين عليك الحصول على أجهزة تورينج جميلة ؛ فهي آلات التورينج هي الوحيدة التي يمكنني التفكير فيها حتى لا تحتوي على زيادة أو انخفاض) ، ويمكنك بالتأكيد الحصول على أي شيء لا يهتم بالشكليات ( التجميع ، ج). لكنني لا أعتقد أنه من الممكن أن يكون لديك لغة برمجة بدون منطق (على الرغم من أنه قد يكون منطقًا منحرفًا ، راجع Malbolge)

ما هي بعض اللغات التي تظهر حقًا فوائد أي من النهج؟

حسنًا ، إذا كنت تفكر في حساب التفاضل والتكامل في Lambda ، فقد تم إظهار LISP بشكل جيد من خلال كونها منذ عام 1958 اللغة التي تطمحها اللغة الأخرى (ولكن لا تديرها) للوصول إليها.

ثم هناك Prolog ، اللغة الأخرى "الخطيرة" الوحيدة التي أعرف أنها تحاول أن تكون ترتكز بشكل صريح في المنطق الرسمي. و Quelle مفاجأة - إنها جيدة في الأشياء المنطقية وغيرها.

ما هي ميزات الأجهزة التي تجعل طريقة واحدة أكثر جاذبية من الآخر؟

لا أحد. فشل آلات LISP يثبت IMO بشكل قاطع أن المجمعين+الأجهزة العامة أقوى من الأجهزة المتخصصة. ومع ذلك ، قد يقول المرء أن القوة الغاشمة في نظام اليوم تصنع لغات تتجاهل تمامًا قيود الأجهزة العملية حيث لم تكن في السابق.

نصائح أخرى

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

حسنًا ، لكي نكون صادقين ، فإن الكثير من هذه "لغات البرمجة الحديثة" هي مجرد تخليص الأشياء التي كانت في لغات البرمجة المختلفة لأكثر من 50 عامًا.

ما هي فوائد نمذجة لغات البرمجة أو ميزات اللغة على الرياضيات؟ ما هي فوائد نمذجة لغة على مبادئ المنطق الرسمي؟

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

هل يمكن أن تتخلى لغة الغرض العام إما المنطق أو الرياضيات؟

لا. كيف يمكنك القيام بعمليات منطقية أو حسابية بدون منطق أو رياضيات. قد تعني شيئًا هنا لا أفهمه.

ما هي بعض اللغات التي تظهر حقًا فوائد أي من النهج؟

Haskell ، ML ، Ocaml ، Miranda ، Alice ، Oz ، Erlang ، Twelf ، CoQ ، Prolog ، جميعها تُظهر تطبيقات أكثر صرامة للرياضيات للبرمجة.

ما هي ميزات الأجهزة التي تجعل طريقة واحدة أكثر جاذبية من الآخر؟

لا أعتقد أن الجهاز يغير الأمور كثيرًا من حيث فوائد النهج الرياضية الصارمة للبرمجة. فوائد التعليمات البرمجية الشفافة المرجعية هي في الغالب على مستوى المترجم.

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