سؤال

ما يجعل لغة البرمجة لغة ؟ لقد سمعت بعض الناس يقولون "عندما يحصل على تفسير بدلا من تجميعها".التي من شأنها أن تجعل PHP (على سبيل المثال) لغة البرمجة.هو فقط معيار ؟ أم أن هناك معايير أخرى?

انظر أيضا:

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

المحلول

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

نصائح أخرى

بسيطة.عند استخدام إنها ديناميكية حديثة اللغة عند استخدامه, انها مجرد لغة البرمجة!

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

في بعض عيون, طريقة استخدام اللغة يجعل من لغة البرمجة (على سبيل المثال ، مطوري اللعبة من تطوير أساسا في C++ السيناريو الكائنات في لوا).مرة أخرى, خطوط واضحة - لغة يمكن استخدامها في البرمجة من قبل شخص واحد و لغة واحدة يمكن أن تستخدم لغة البرمجة النصية من جانب آخر.

هذا من ويكيبيديا مقال عن لغات البرمجة:

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

ستلاحظ استخدام "عادة", "غالبا", "تقليديا" و "دائما تقريبا" - كل هذه أقول لكم أن هناك لا مجموعة متميزة من الصفات التي تجعل من معين اللغة "لغة البرمجة".

"السيناريو هو ما كنت تعطي الجهات الفاعلة.برنامج ما كنت تعطي الجمهور." -- لاري وول

أنا حقا لا أعتقد أن هناك الكثير من الفرق أي أكثر من ذلك.ما يسمى "البرمجة" اللغات غالبا ما جمعت فقط بسرعة جدا و في وقت التشغيل.وبعض من "البرمجة" لغات أخرى جمعت في وقت التشغيل وكذلك (أعتقد JIT) و المرحلة الأولى من "تجميع" هو التحقق من بناء الجملة من الموارد القرار.

لا تحصل على التعلق على ذلك, انها حقا ليست مهمة.

معنى أن تكون اللغة التي توزع عادة كمصدر بدلا من الثنائية.

هناك الكثير من الإجابات الممكنة على هذا.

الأولى:إنها ليست مسألة الفرق بين لغة البرمجة و لغة البرمجة لأن البرمجة اللغوية هو لغة البرمجة.هو أكثر سؤال ما الصفات تجعل بعض لغة البرمجة لغة البرمجة في حين آخر لغة البرمجة لا لغة البرمجة.

الثانية:من الصعب حقا أن أقول ما XYZ اللغة ، سواء كان ذلك XYZ أن "البرمجة", "البرمجة الوظيفية", "وجوه المنحى البرمجة" أو ما إلى ذلك.تعريف ما هي "البرمجة الوظيفية" هو ، هو واضح جدا ، ولكن لا أحد يعرف ما هو "البرمجة الوظيفية اللغة" هو.

البرمجة الوظيفية أو البرمجة وجوه المنحى البرمجة أنماط;يمكنك كتابة في نمط وظيفي أو وجوه المنحى أسلوب في أي لغة.على سبيل المثال الظاهري لينكس نظام الملفات التبديل لينكس سائق نموذج بشدة وجوه المنحى على الرغم مكتوب في C ، في حين أن الكثير من جافا أو C# كود تراه على شبكة الإنترنت جدا إجرائية وليست وجوه المنحى في كل.OTOH رأيت بعض بشكل كبير وظيفية كود جافا.

لذا ، إذا وظيفية البرمجة وجوه المنحى البرمجة هي مجرد أنماط التي يمكن القيام به في أي اللغة, ثم كيف يمكنك تحديد "وجوه المنحى لغة البرمجة"?هل يمكن أن نقول أن وجوه المنحى لغة البرمجة هي لغة تسمح البرمجة الشيئية.ولكن هذا ليس كثيرا من التعريف: كل اللغات تسمح وجوه المنحى البرمجة ، ولذلك كل اللغات وجوه المنحى?إذا أنت تقول, حسنا لغة هو وجوه المنحى ، إذا كان القوات لك في البرمجة وجوه المنحى النمط.ولكن هذا ليس بكثير من الوضوح ، إما: كل اللغات تسمح البرمجة الوظيفية ، ولذلك لا اللغة هي وجوه المنحى?

لذلك, بالنسبة لي, لقد وجدت التعريف التالي:

لغة هي لغة البرمجة (وجوه المنحى لغة / لغة وظيفية) إذا كان سواء

  • يسهل البرمجة (وجوه المنحى البرمجة / البرمجة الوظيفية) ، أيليس فقط يسمح ولكن يجعل سهلة و الطبيعية و يحتوي على الميزات التي مساعدة مع ذلك ، و
  • تشجع و أدلة نحو برمجة (وجوه المنحى البرمجة / البرمجة الوظيفية).

حتى بعد خمس فقرات ، توصلت إلى:"لغة البرمجة هي لغة البرمجة".ما تعريف عظيم.لا.

من الواضح أننا الآن بحاجة الى ان ننظر في تعريف "البرمجة".

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

حسنا, أولا البرمجة هو البرمجة.انها مجرد نوع خاص من البرمجة.IOW:كل السيناريو هو برنامج ، ولكن ليس كل البرنامج النصي.مجموعة من النصوص هو الصحيح فرعية من مجموعة من البرامج.

في رأيي الشخصي ، الشيء الذي يجعل البرمجة البرمجة و يميزها عن غيرها من أنواع البرمجة ، هو أن ...

البرامج النصية إلى حد كبير التعامل مع الكائنات التي

  • لم يتم إنشاؤها من قبل البرنامج النصي ،
  • لديهم مدى الحياة المستقلة من السيناريو ،
  • يعيش خارج المجال من البرنامج النصي.

أيضا ، أنواع البيانات و الخوارزميات المستخدمة عموما لا يحددها البرنامج النصي ولكن من خارج البيئة.

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

باختصار:السيناريو تعلق نفسها إلى نظام أكبر هو موجود بشكل مستقل من السيناريو ، تعالج جزء صغير من النظام ثم يخرج.

أن أكبر نظام يمكن أن يكون نظام التشغيل في حالة شيل, المتصفح دوم في حالة متصفح نصي ، لعبة (مثلا ، العالم من علب مع Lua أو الحياة الثانية مع الزيزفون لغة البرمجة), تطبيق (على سبيل المثالفإن لغة AutoLisp أوتوكاد أو Excel/Word/مكتب وحدات الماكرو), ملقم ويب مجموعة من الروبوتات أو شيئا آخر تماما.

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

على سبيل المثال ، موندريان هو بدقة بقوة كتابتها بشكل ثابت كسول وظيفية لغة البرمجة مع تجميع التنفيذ.

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

  • الحقيقي لغة البرمجة:بلدي لغة البرمجة
  • لغة البرمجة:لغة البرمجة

يبدو أن هذا هو الطريق هذا المصطلح هو الأكثر استخداما.

انها مثل الإباحية ، أنت تعرف أنه عندما ترى ذلك.الوحيد الممكن تعريف البرمجة اللغوية هو:

A language which is described as a scripting language.

قليلا دائرية, أليس كذلك ؟ (بالمناسبة, أنا لا أمزح).

أساسا لا يوجد شيء يجعل اللغة لغة البرمجة إلا أنه يسمى مثل هذا ، وخاصة من قبل المبدعين.الرئيسية تعيين الحديثة لغات البرمجة PHP, Perl, JavaScript, Python, Ruby and Lua.Tcl هو أول رائد الحديثة لغة البرمجة (لم يكن أول لغة البرمجة على الرغم من أنني أنسى ما هو عليه ، ولكن فوجئت أن تعلم أنه سبقت Tcl).

لقد وصف الميزات الرئيسية لغات البرمجة في ورقتي:

 A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

معظم حيوي كتبته و تفسير, و معظمهم لا يعرف دلالات خارج المرجعية التنفيذ.ومع ذلك ، حتى لو الرئيسية تنفيذ يصبح تجميع أو JITed, هذا لا يغير من "طبيعة" اللغة.

إلا أنها تبقى السؤال هو كيف يمكنك معرفة إذا كان لغة جديدة هي لغة البرمجة.حسنا, إذا كان هذا يسمى لغة البرمجة ، بل هو واحد.لذلك عامل هي لغة البرمجة (أو على الأقل عندما كتب ذلك) ولكن جافا لا.

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

على سبيل المثال في بيرل تفعل: perl my_source.pl

بالنظر إلى المعايير المذكورة أعلاه PHP هي لغة البرمجة (على الرغم من يمكن أن يكون "تجميع" هذه العملية على سبيل المثال عند استخدام زند التشفير "حماية" شفرة المصدر).

PS.في كثير من الأحيان (ولكن ليس دائما) لغات البرمجة تفسيرها.أيضا في كثير من الأحيان (ولكن مرة أخرى, ليس دائما) لغات البرمجة هي كتابة حيوي.

جميع لغات البرمجة هي لغات البرمجة.حتى بالمعنى الدقيق للكلمة ، ليس هناك فرق.

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

أعتقد أن السيد روبرتو Ierusalimschy جيد جدا الإجابة أو السؤال في البرمجة Lua':

ومع ذلك ، فإن السمة المميزة تفسير اللغات ليست أنها لا يتم تجميع هذا المترجم هي جزء من اللغة وقت التشغيل ، وبالتالي ، فمن ممكن (وسهل) إلى تنفيذ التعليمات البرمجية ولدت على الطاير

قسم واحد

  • البرمجة = حيوي تفسير
  • عادي = المترجمة

حيوي تفسير اللغة هو تفسير في وقت التشغيل في حين أن لغة مترجمة جمعت قبل التنفيذ.

وأود أن أضيف أن يورغ قد أشار إلى تفسير / ترجمة التمييز ليس سمة من سمات اللغة ، ولكن التنفيذ المحرك.

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

في عام شعبة ثابت مقابل كتابة حيوي اللغات هو أفضل تعريف له أكثر المترتبة على استخدام اللغة.

لغة البرمجة هي عادة:

  1. كتابة حيوي
  2. تفسير, مع قليل من التركيز على الأداء ، ولكن قابلية جيدة
  3. يتطلب الكثير أقل رمز المتداول, ، مما أدى إلى النماذج السريعة
  4. يستخدم في المهام الصغيرة ، ومناسبة كتابة ملف واحد لتشغيل بعض المعلومات المفيدة في "السيناريو".

بينما غير لغة البرمجة هي عادة:1.كتابتها بشكل ثابت 2.جمعت مع التركيز على الأداء 3.يتطلب المزيد من رمز المتداول ، مما يؤدي إلى تباطؤ النماذج ولكن أكثر قراءة طويلة الأجل الصيانة 4.تستخدم في المشاريع الكبيرة ، تتكيف مع العديد من أنماط التصميم

ولكن إنها أكثر من تاريخية الفرق في الوقت الحاضر, في رأيي.جافا سكريبت بيرل كانت مكتوبة مع صغيرة "البرامج النصية بسيطة" في الاعتبار ، في حين C++ كتب مع التطبيقات المعقدة في الاعتبار ؛ ولكن يمكن استخدامها على حد سواء في كلتا الحالتين.و العديد من لغات البرمجة الحديثة و القديمة على حد سواء ، طمس الخط على كل حال (وكان غامضا في المقام الأول!).

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

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

وأبرزها شيل كان أتمتة العمليات في نواة نظام التشغيل (تقليديا ، AppleScript على أجهزة ماكينتوش);وهو دور أكثر وأكثر مرت في بيرل يد ، ومن ثم الخروج من ذلك في بيثون في الآونة الأخيرة.رأيت مخطط (لا سيما في المكر التنفيذ) تستخدم تعلن تون المشاهد ؛ و في الآونة الأخيرة ، لوا هو جدا شعبية مثل لغة البرمجة النصي الألعاب إلى درجة أن الثابت تلوينها شيء في العديد من الألعاب الجديدة هو الرسومات/محرك الفيزياء ، بينما كل لعبة المنطق هو المشفرة في Lua.في نفس الطريق, جافا سكريبت كان يعتقد أن السيناريو سلوك مستعرض ويب.

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

ومع ذلك ، "لغات البرمجة" هو بالتأكيد ليس مرادفا "تفسير اللغات" - على سبيل المثال الأساسية فسر معظم حياته (أيقبل أن يفقد acronimicity وأصبح Visual Basic) ، ولكن لا أحد يعتقد حقا أنها البرمجة.

تحديث: مادة القراءة كالعادة المتاحة في ويكيبيديا.

النقطة الأولى لغة البرمجة ليست "لغة برمجة" أو شيء آخر.يمكن أن يكون "لغة البرمجة" و شيء آخر.

النقطة الثانية, المنفذ اللغة سوف أقول لكم إذا كانت لغة البرمجة.

السؤال كالتالي: "في ما أن تطبيقات لغة البرمجة تعتبر لغة البرمجة?", ليس "ما هو الفرق بين لغة البرمجة و البرمجة اللغة؟".لا يوجد بين.

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

أرى لغة البرمجة مثل أي شيء لا تتطلب العلني الوزن الثقيل شعور 'تجميع' خطوة.الميزة الرئيسية من المبرمجين نظر:يمكنك تحرير التعليمات البرمجية و تشغيله على الفور.

وبالتالي أود الصدد جافا سكريبت و PHP مثل لغات البرمجة ، بينما ActionScript 3/فليكس ليست حقا.

صديقي لقد كانت هذه الحجة:ما هو الفرق بين لغة البرمجة و لغة البرمجة.

شعبية الحجة هو أن لغات البرمجة هي ترجمة و لغات البرمجة تفسر - ومع ذلك أعتقد أن هذه الحجة أن تكون كاذبة تماما...لماذا ؟

  1. شقرا & V8 (مايكروسوفت و جوجل جافا سكريبت محركات) ترجمة التعليمات البرمجية قبل التنفيذ
  2. QBasic تفسير - هل هذا Qbasic و "البرمجة" اللغة ؟

على هذا الأساس, هذا هو حجتي عن الفرق بين لغة البرمجة و لغة البرمجة:

لغة البرمجة يعمل على مستوى الجهاز و الوصول إلى الجهاز نفسه (الذاكرة الرسومات ، الصوت وما إلى ذلك).

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

في رأيي, وأود أن أقول أنه حيوي تفسير لغات مثل PHP, Ruby, الخ...لا تزال "طبيعية" لغات.أود أن أقول إن الأمثلة على "البرمجة" لغات أشياء مثل باش (أو ksh أو tcsh أو أيا كان) أو sqlplus.هذه اللغات تستخدم في كثير من الأحيان إلى سلسلة معا البرامج الموجودة على نظام في سلسلة متماسكة و الأوامر ذات الصلة ، مثل:

  1. نسخ A.txt إلى /tmp/العمل/
  2. تشغيل ليلا عملية تنظيف على خادم قاعدة البيانات
  3. سجل النتائج وإرسالها إلى sysdamin

لذلك أنا أقول الفرق (بالنسبة لي على أية حال) هو أكثر في كيفية استخدام اللغة.لغات مثل PHP, Perl, Ruby يمكن أن تستخدم في "لغات البرمجة" ، ولكن عادة ما نراهم تستخدم "طبيعية اللغات" (باستثناء بيرل الذي يبدو أن تذهب في كلا الاتجاهين.

سأذهب إلى الأمام و ترحيل جوابي من تكرار السؤال


اسم "لغة البرمجة" ينطبق على دور محدد جدا:اللغة التي تكتب الأوامر إلى إرسال إلى القائمة تطبيق البرمجيات.(مثل التلفزيون التقليدية أو فيلم "script")

على سبيل المثال مرة واحدة بناء على الوقت ، صفحات ويب HTML كانت مملة.كانوا دائما ثابتة.ثم يوم واحد ، Netscape الفكر "ماذا لو تركنا المتصفح قراءة والعمل على القليل من الأوامر في الصفحة؟" و مثل ذلك ، سكريبت تم تشكيلها.

جافا سكريبت بسيط الأمر alert() الأمر الذي يرشد/أوامر المتصفح (برنامج التطبيق) أن يقرأ صفحة ويب لعرض تنبيه.

الآن, لا alert() ذات الصلة بأي شكل من الأشكال إلى C++ أو أي رمز لغة المتصفح فعلا يستخدم عرض تنبيه ؟ بالطبع لا.شخص يكتب "تنبيه()" على .صفحة html لا يوجد لديه فهم كيفية المتصفح يعرض في الواقع في حالة تأهب.إنه مجرد كتابة الأوامر التي سيقوم المتصفح تفسير.

دعونا نرى شفرة جافا سكريبت بسيطة

<script>
var x = 4
alert(x)
</script>

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

ونحن ندعو أن آخر سلسلة من الأوامر "النصي" (والذي هو السبب في أنها المغلقة في <script> tags).فقط من خلال تعريف "السيناريو" ، بالمعنى التقليدي: سلسلة من التعليمات و الأوامر المرسلة إلى الجهات.يعلم الجميع أن سيناريو (سيناريو فيلم) ، على سبيل المثال ، هو السيناريو.

السيناريو (سيناريو) ، لا والجهات الفاعلة ، أو الكاميرا أو المؤثرات الخاصة.سيناريو يقول لهم ما يجب القيام به.

والآن ما هو البرمجة اللغة, بالضبط ؟

هناك الكثير من لغات البرمجة مثل أدوات مختلفة في مجموعة الأدوات ؛ بعض اللغات صممت على وجه التحديد أن تستخدم البرامج النصية.

Javasript هو مثال واضح;هناك عدد قليل جدا من التطبيقات جافا سكريبت التي لا تقع ضمن مجال البرمجة.

أكشن (لغة الرسوم المتحركة فلاش) ومشتقاته هي لغات البرمجة, لأنها ببساطة إصدار الأوامر إلى مشغل فلاش/مترجم.من المؤكد أن هناك تجريدات مثل وجوه المنحى البرمجة ، ولكن كل هذا هو مجرد وسيلة إلى النهاية:إرسال الأوامر إلى فلاش لاعب.

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

لأن من طبيعتها ، لغات البرمجة نادرا ما 'تجميع' -- وهذا هو ، وترجم إلى رمز الجهاز و قراءة مباشرة من خلال جهاز الكمبيوتر.

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

هناك خط من الغموض ، بالطبع.لماذا لا تقول أن لغة الآلة/C لغات البرمجة لأنها هي النصوص التي يستخدم الكمبيوتر على التفاعل مع اللوحة الأساسية/بطاقات الرسومات/الرقائق ؟

هناك بعض الخطوط يمكننا رسم لتوضيح:

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

  2. لغة البرمجة يعني الأوامر المرسلة إلى مجمع برنامج التطبيق ؛ هذا هو السبب في أننا كتابة النصوص في المقام الأول-لذلك أنت لا تحتاج إلى معرفة تعقيدات كيف يعمل البرنامج لإرسال الأوامر إلى ذلك.لذا لغات البرمجة تميل إلى أن تكون لغات إرسال (نسبيا) أوامر بسيطة إلى معقدة تطبيقات البرمجيات...في هذه الحالة, آلة اللغة رمز التجميع لا قطع عليه.

أقترح أن لغات البرمجة تم مصطلح الكثير من الناس تتحرك بعيدا.أود أن أقول أنه في الغالب يتلخص جمعت اللغات اللغات الديناميكية في الوقت الحاضر.

أعني حقا لا يمكنك أن تقول شيئا مثل بايثون او روبي هي "البرمجة" اللغات في هذا اليوم وهذا العصر (حتى يكون لديك أشياء مثل IronPython و جيت الخاص بك المفضلة-اللغة, الفرق كان واضح حتى أكثر).

أن نكون صادقين, أنا شخصيا لا أشعر PHP هي لغة البرمجة بعد الآن.لا تتوقع من الناس أن مثل تصنيف PHP بشكل مختلف من يقول جافا على سيرهم الذاتية.

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

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

كل compilable اللغة في البرنامج النصي اللغة والعكس صحيح كل هذا يتوقف على تنفيذ مترجم أو مترجم ، على سبيل المثال C++ مترجم لذلك يمكن أن تسمى لغة البرنامج النصي إذا استخدمت لذلك (ليس من العملي جدا في مثل C++ هي لغة معقدة جدا), واحدة من الأكثر فائدة اللغات النصي في الوقت الحاضر هو الثعبان...

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

أنا أفضل أن الناس لا تستخدم مصطلح "البرمجة اللغوية" كما أعتقد أنه يقلل من الجهد.تأخذ اللغة مثل Perl, وغالبا ما تسمى "لغة البرمجة".

  • بيرل هي لغة برمجة!
  • بيرل هو تجميع مثل Java و C++.انها مجرد تجميع أسرع كثيرا!
  • بيرل وقد الكائنات و مساحات و الإغلاق.
  • بيرل قد ايديس و مصححات و المحللون.
  • بيرل التدريب ودعم المجتمع.
  • بيرل ليس فقط على شبكة الإنترنت.بيرل ليس مجرد مسؤول النظام.بيرل ليست مجرد شريط لاصق من الإنترنت.

لماذا نحتاج إلى التمييز بين اللغة مثل جافا التي يتم جمعها و روبي أنه ليس كذلك ؟ ما هي قيمة في وضع العلامات ؟

لمزيد من المعلومات حول هذا راجع http://xoa.petdance.com/Stop_saying_script.

فارق هام هو الكتابة قوية (مقابل ضعف الكتابة). لغات البرمجة غالبا ما تكون ضعيفة كتبته, ، مما يجعل من الممكن كتابة برامج صغيرة بسرعة أكبر.كبيرة من البرامج هذا هو العيب ، كما يمنع مترجم/مترجم إلى العثور على بعض الحشرات بشكل مستقل ، مما يجعل من الصعب جدا ريفاكتور رمز.

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

انها شائعة نسبيا عن لغات البرمجة أن تكون قادرة على دعم جلسة تفاعلية حيث يمكن للمستخدمين فقط اكتب في البرنامج قد نفذ على الفور.وهذا لأن هذا هو تافهة امتداد شرط أساسي من أول الفقرة ؛ الرئيسية اضافية شرط هو إضافة آلية لمعرفة عندما كتبته-في بيان كاملة بحيث يمكن إرسالها إلى تنفيذ المحرك.

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

لغة البرمجة هي لغة بتكوين أو يمتد برنامج موجود.
لغة البرمجة هي لغة البرمجة.

تعريف "لغة البرمجة" هو غامض جدا.كنت قاعدة على الاعتبارات التالية:

  1. لغات البرمجة عادة لا يكون المستخدم مرئية ترجمة الخطوات.عادة يمكن للمستخدم فقط تشغيل البرامج في واحدة سهلة القيادة.

  2. برامج لغات البرمجة عادة تداولهما في المصدر النموذج.

  3. لغات البرمجة عادة أوقات التشغيل التي تكون موجودة على عدد كبير من أنظمة أوقات التشغيل يمكن تركيبها بسهولة على معظم الأنظمة.

  4. لغات البرمجة تميل إلى أن تكون عبر منصة وليس آلة محددة.

  5. لغات البرمجة تجعل من السهل استدعاء البرامج الأخرى واجهة مع نظام التشغيل.

  6. لغات البرمجة هي عادة ادراجها بسهولة إلى أكبر أنظمة مكتوبة في أكثر لغات البرمجة التقليدية.

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

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

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

إذا كان لا/لن تشغيل على وحدة المعالجة المركزية ، هذا سيناريو بالنسبة لي.إذا مترجم تحتاج إلى تشغيل على وحدة المعالجة المركزية أدناه البرنامج ، ثم إنه نصي لغة البرمجة.

لا يوجد سبب يجعل الأمر أكثر تعقيدا من هذا ؟

وبطبيعة الحال في معظم (99%) من الحالات ، فإنه من الواضح ما إذا كانت اللغة هي لغة البرمجة.ولكن نعتبر أن VM يمكن أن تحاكي x86 مجموعة التعليمات ، على سبيل المثال.هذا لن يجعل x86 بايت كود لغة البرمجة عندما تعمل على VM ؟ ما إذا كان شخص ما أن يكتب مترجم تحويل كود بيرل إلى الأم للتنفيذ ؟ في هذه الحالة, أنا لا أعرف ماذا أسمي اللغة نفسها بعد الآن.سيكون الناتج أن المسألة ليست لغة.

ثم مرة أخرى, أنا لست على علم بأي شيء من هذا القبيل بعد أن تم القيام به, حتى الآن أنا لا تزال مريحة تدعو تفسير لغات من لغات البرمجة.

A السيناريو نسبيا صغيرة البرنامج.A نظام نسبيا كبيرة أو برنامج أو جمع كبيرة نسبيا البرامج.

بعض لغات البرمجة مصممة مع ميزات اللغة مصمم البرمجة المجتمع تنظر إلى أن تكون مفيدة عند كتابة برامج صغيرة نسبيا.هذه لغات البرمجة المعروفة لغات البرمجة, مثلاPHP.

وبالمثل, لغات البرمجة الأخرى مصممة مع ميزات اللغة مصمم البرمجة المجتمع تنظر إلى أن تكون مفيدة عند كتابة كبيرة نسبيا البرامج.هذه لغات البرمجة المعروفة نظم لغات, مثلاJava.

الآن, الصغيرة والكبيرة البرامج يمكن أن تكون مكتوبة في أي لغة.برنامج Java الصغيرة هو السيناريو.على سبيل المثال, جافا "مرحبا العالم" البرنامج النصي وليس النظام.كبير أو برنامج أو مجموعة من البرامج مكتوب في PHP هو النظام.على سبيل المثال, Facebook, مكتوب في PHP ، هو نظام لا النصي.

النظر في لغة واحدة ميزة "اختبارا" لتحديد ما إذا كانت اللغة هي الأنسب البرمجة أو أنظمة البرمجة أمر مشكوك فيه.على سبيل المثال, مخطوطات قد سيتم تجميعها إلى بايت كود أو رمز الجهاز ، أو أنهم قد يتم تنفيذها من قبل المباشرة جملة مجردة شجرة (AST) في التفسير.

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

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