ما هي لغة البرمجة أفضل الجسور الفجوة بين pseudocode ورمز؟ [مغلق

StackOverflow https://stackoverflow.com/questions/953708

  •  11-09-2019
  •  | 
  •  

سؤال

عندما أكتب التعليمات البرمجية من الآن فصاعدا، أخطط لوضع كل شيء في كل شيء في Pseudocode الجميلة والقراءة ثم قم بتنفيذ البرنامج حول هذا الهيكل.

إذا أردت اللغات التي أعرفها حاليا من الأسهل في التصدي للترجمة، أود أن أقول:

Lisp، بيثون، لوا، C ++، جافا، ج

أعلم أن كل لغة لها قوتها وموضعاتها، لكنني أركز على وجه التحديد على PseudoodoD. ما هي اللغة التي تستخدمها هي الأكثر ملاءمة للأنسجة ل Pseudocode-do-code؟ أستمتع دائما بالتقاط لغات جديدة. أيضا، إذا كنت تستخدم هذه التقنية حاليا، فأنا أحب أن أسمع أي نصائح لديك حول الهيكود العملي pseudocode.

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

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

المحلول

قد تكون مهتما برمجة القراءة والكتابة, ، حيث "الكود المصدر" الذي تكتبه هو أشبه بكتابة كتاب، ولكن كتابه الذي يمكن أن يكون "متشابكا" في رمز حقيقي أو "المنسوج" في وثائق تنسيق.

انظر الأمثلة المقدمة في http://www.literateprogramming.com/cweb_download.html..

قد تجد أيضا إيفيل مثير للانتباه:

"... Eiffel Shuns Coding Tricks أو تقنيات الترميز التي تهدف إلى تلميحات التحسين إلى المحول البرمجي. الهدف ليس فقط لجعل الرمز أكثر قابلية للقراءة، ولكن أيضا للسماح للمبرمجين بالتركيز على الجوانب المهمة للبرنامج دون الحصول على مستنقع تفاصيل التنفيذ. ..."

نصائح أخرى

أود أن أقيم بيثون أولا، على LISP، فقط لأن معظم الناس لا يكتبون pseudoodocode باستخدام بناء جملة البادئة البادئة :)

كان باسكال relativery شعبية في هذا النوع من الأوصاف الكفاءة.

أعتقد أنه يعتمد بالضبط على النكهة الكفاءة. الكثير من الكهود الكفاءة التي رأيتها في خوارزميات كتب نصية تبدو وكأنها Pascal من المفارقات. كان باسكال دائما يعتبر Langauge التعليم جيدة.

هنا هو رابط لما أعتقد هو المرجع الأول إلى Python ك "رمز زائفي قابل للتنفيذ". يتم إعادة طباعة المقالة من إصدار أغسطس 2001 لتحديث الكمبيوتر، ومجلة مجموعة مستخدمي ملبورن للكمبيوتر، أستراليا.

لقد وجدت باو أصبح لي لغة "pseudocode" عند اختبار أجزاء صغيرة من التعليمات البرمجية .NET. تشبه إلى حد بعيد بناء جملة نوع بيثون.

ذكرت بالفعل ذلك ولكن ..

بيونثون لديه بناء جملة واضحة جدا. انها قريبة جدا من pseudocode وسهولة مقروءة.

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

بناء جملة TCL هو بسهولة أكثر مثل الرمز الزائف. أوامر ترامب وظائف للقراءة والتعبير عن العمليات ذات المستوى الأدنى أكثر نموذجية من رمز التجميع. في الوقت نفسه، من السهل جدا قراءة الخوارزميات عالية المستوى. يتيح توحيد بناء الجملة للمستخدم التركيز على الخطوات بدلا من القطع الأثرية اللغوية. أود أن أقول حتى أن كلمة "EXPR" الرئيسية للعمليات الرياضية هي ميزة، لأنه يحدد بوضوح أجزاء الرياضيات من البرنامج من أجزاء الخوارزمية. عدد أقل من الرموز مثقلة، والكلمات مثل "مجموعة" تستخدم في مكانها. هذا فوز آخر لرمز الزائفة. أكثر من أي جملة أخرى، يمتد TCL الفجوة بين الأساليب الوظيفية والضرورية.

يمكنك تجربة ActionScript Flash.

أود أن أقول أن Lua هو الأفضل للترجمة من pseudocode (في معظم الحالات). طالما تم تسمية المتغيرات بشكل جيد، يمكن قراءة LUA بسهولة من قبل معظم المبرمجين وسريعة كبيرة أيضا!

وأنا أتفق مع تعليق Nosredna أن ADA يبدو كثيرا مثل الكود الكفوري.

إذا كنت لا تمانع في كل الكتابة الإضافية التي تتطلبها ADA، أعتقد أنها لغة رائعة، حيث يعني الكود حقا ما يقوله.

Prolog هو شيء قد لا تواجهه خلاف ذلك. إنه يتجنب قضية pseudocode معا. بمعنى ما، لا يوجد رمز. هناك حقائق وقواعد فقط.

على سبيل المثال، فإن إلحاق المسند هو مجرد أشياء نعرفها عن القوائم، على النحو التالي:
إلحاق قائمة Y إلى قائمة فارغة غلة Y.

append([], Y, Y).

إذا تم إلحاق XS إلى YS عائدات zs، فيمكننا سرد نفس القيمة إلى XS و ZS وستظل العلاقة تحملها.

append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs). 

نحن لم نكتب كود مكتوبة فعليا. لقد قلنا للتو ما نعرفه عن قوائم إلحاحه. ولكن الآن يمكننا أن نسأل prolog لإلحاق 2 قوائم:

?- append([1,2],[3,4],Z).
Z = [1, 2, 3, 4].

أو إعطاء prolog قائمة واسألها أن تظهر لنا القوائم التي يمكننا إلحاق بها للحصول على القائمة الهدف:

?- append(X,Y,[1,2]).
X = [],
Y = [1, 2] ;
X = [1],
Y = [2] ;
X = [1, 2],
Y = [] ;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top