سه شنبه ۲۶ دی ۰۲

آموزش برنامه نويسي كودكان و نوجوانان

۶ بازديد

برنامه‌هاي رايانه ممكن است در يك فرآيند آموزش برنامه نويسي كودكان و نوجوانان دسته‌اي بدون تعامل انساني اجرا شوند، يا كاربر ممكن است دستورات را در يك جلسه تعاملي يك مفسر تايپ كند. در اين مورد، "فرمان ها" صرفاً برنامه هايي هستند كه اجراي آنها به هم متصل مي شود. هنگامي كه يك زبان بتواند دستورات خود را از طريق يك مفسر (مانند پوسته يونيكس يا ديگر رابط خط فرمان) بدون كامپايل اجرا كند، به آن زبان برنامه نويسي مي گويند.[67]

 

اندازه گيري استفاده از زبان

هنر اصلي le: اندازه گيري محبوبيت زبان برنامه نويسي

تعيين پركاربردترين زبان برنامه نويسي دشوار است زيرا تعريف كاربرد بسته به زمينه متفاوت است. يك زبان ممكن است تعداد ساعات آموزش برنامه نويسي كودكان و نوجوانان برنامه نويس بيشتري را اشغال كند، زبان ديگر داراي خطوط كد بيشتري است و زبان سوم ممكن است بيشترين زمان CPU را مصرف كند. برخي از زبان ها براي انواع خاصي از برنامه ها بسيار محبوب هستند. براي مثال، COBOL هنوز در مركز داده شركتي قوي است، اغلب بر روي مين‌فريم‌هاي بزرگ؛ [68][69] Fortran در برنامه‌هاي علمي و مهندسي. Ada در هوافضا، حمل و نقل، نظامي، زمان واقعي و برنامه هاي كاربردي تعبيه شده؛ و C در برنامه هاي كاربردي و سيستم عامل هاي تعبيه شده. زبان هاي ديگر به طور منظم براي نوشتن انواع مختلف برنامه ها استفاده مي شوند.

 

روش‌هاي مختلفي براي اندازه‌گيري محبوبيت زبان، كه هركدام به يك سوگيري متفاوت نسبت به آنچه اندازه‌گيري مي‌شود، پيشنهاد شده‌اند:

 

شمارش تعداد آگهي‌هاي استخدامي كه آموزش برنامه نويسي كودكان و نوجوانان به زبان اشاره مي‌كنند[70]

تعداد كتاب‌هاي فروخته شده كه اين زبان را آموزش مي‌دهند يا توصيف مي‌كنند[71]

تخمين‌هايي از تعداد خطوط كد موجود نوشته شده در زبان - كه ممكن است زبان‌هايي را كه اغلب در جستجوهاي عمومي يافت نمي‌شوند دست كم بگيرند[72]

تعداد ارجاعات زبان (به عنوان مثال به نام زبان) كه ايرانيان سايبر با استفاده از موتور جستجوي وب يافت مي شود.

stackify.com با تركيب و ميانگين گيري اطلاعات از سايت هاي اينترنتي مختلف، ده زبان برنامه نويسي محبوب را به عنوان (به ترتيب نزولي بر اساس محبوبيت كلي) گزارش كرد: Java، C، C++، Python، C#، JavaScript، VB.NET، R، PHP، و متلب.[73] سوالات متداول (سؤالات متداول)

س: آيا من اجازه دارم نمايه TIOBE را در وبلاگ/ارائه/انتشار خود نشان دهم؟

پاسخ: بله، تنها شرط مراجعه به منبع اصلي آن «www.tiobe.com» است.

 

س: چگونه مي توانم زبان جديدي را براي افزودن به فهرست TIOBE معرفي كنم؟

پاسخ: اگر زباني معيارهاي فهرست شدن را داشته باشد (يعني تورينگ كامل است و يك ورودي ويكي پديا دارد كه نشان مي دهد مربوط به يك آموزش برنامه نويسي كودكان و نوجوانان زبان برنامه نويسي است) و به اندازه كافي محبوب باشد (بيش از 5000 بازديد براي برنامه نويسي +"" براي Google)، سپس لطفاً يك ايميل به tpci@tiobe.com بنويسيد.

 

س: من مي خواهم مجموعه داده هاي كامل شاخص TIOBE را داشته باشم. آيا اين ممكن است؟

پاسخ: ما تلاش زيادي براي به دست آوردن تمام داده ها و به روز نگه داشتن شاخص TIOBE صرف كرديم. به منظور جبران كمي اين موضوع، ما مبلغ 5000 دلار آمريكا براي مجموعه داده كامل درخواست مي كنيم. مجموعه داده ها از ژوئن 2001 تا امروز اجرا مي شود. آموزش برنامه نويسي كودكان و نوجوانان در سال 2001 با 25 زبان شروع شد و اكنون بيش از 150 زبان را يك بار در ماه اندازه گيري مي كند. داده ها در قالب جدا شده با آموزش برنامه نويسي كاما در دسترس هستند. لطفا براي اطلاعات بيشتر با sales@tiobe.com تماس بگيريد.

آموزش برنامه نويسي كودكان و نوجوانان

۸ بازديد

زبان هاي اختصاصي

اگرچه اكثر زبان‌هاي برنامه‌نويسي رايج داراي آموزش برنامه نويسي كودكان و نوجوانان مشخصات و پياده‌سازي‌هاي كاملاً باز هستند، بسياري از زبان‌هاي برنامه‌نويسي فقط به عنوان زبان‌هاي برنامه‌نويسي اختصاصي وجود دارند كه پياده‌سازي آن تنها از يك فروشنده در دسترس است، كه ممكن است ادعا كند كه چنين زبان اختصاصي مالكيت معنوي آنهاست. زبان هاي برنامه نويسي اختصاصي معمولاً زبان هاي خاص دامنه يا زبان هاي برنامه نويسي داخلي براي يك محصول واحد هستند. برخي از زبان هاي اختصاصي فقط به صورت داخلي در يك فروشنده استفاده مي شوند، در حالي كه برخي ديگر براي كاربران خارجي آموزش برنامه نويسي كودكان و نوجوانان در دسترس هستند.

 

برخي از زبان هاي برنامه نويسي در مرز بين زبان هاي اختصاصي و باز وجود دارند. براي مثال، Oracle Corporation حقوق انحصاري برخي از جنبه‌هاي زبان برنامه‌نويسي جاوا را ارائه مي‌كند، [61] و زبان برنامه‌نويسي C# مايكروسافت، كه اجراي باز اكثر بخش‌هاي سيستم را دارد، همچنين داراي Common Language Runtime (CLR) به عنوان يك محيط بسته است. [62]

 

بسياري از زبان هاي انحصاري عليرغم ماهيت اختصاصي آنها به طور گسترده مورد استفاده قرار مي گيرند. نمونه هايي از جمله MATLAB، VBScript، و Wolfram Language است. برخي از زبان‌ها ممكن است از بسته به باز تبديل شوند. براي مثال، Erlang در اصل زبان برنامه نويسي آموزش برنامه نويسي كودكان و نوجوانان داخلي اريكسون بود.[63]

 

استفاده كنيد

هزاران زبان برنامه نويسي مختلف عمدتاً در زمينه محاسبات ايجاد شده است.[64] پروژه هاي نرم افزاري فردي معمولاً از پنج زبان برنامه نويسي يا بيشتر استفاده مي كنند.[65]

 

زبان هاي برنامه نويسي با بسياري از اشكال ديگر بيان انسان تفاوت دارند زيرا به دقت و كاملي بيشتري نياز دارند. هنگام استفاده از زبان طبيعي ايرانيان سايبر براي برقراري ارتباط با افراد ديگر، نويسندگان و سخنرانان انساني ممكن است مبهم باشند و اشتباهات آموزش برنامه نويسي كودكان و نوجوانان كوچكي مرتكب شوند و همچنان انتظار دارند كه مقصودشان درك شود. با اين حال، به بيان مجازي، كامپيوترها "دقيقاً همان كاري را انجام مي دهند كه به آنها گفته شده است"، و نمي توانند "درك" كدي را كه برنامه نويس قصد نوشتن آن را داشته است. تركيبي از تعريف زبان، يك برنامه و ورودي هاي برنامه بايد به طور كامل رفتار خارجي را كه هنگام اجراي برنامه رخ مي دهد، در محدوده كنترل آن برنامه مشخص كند. از سوي ديگر، ايده‌هاي مربوط به يك الگوريتم را مي‌توان بدون دقت لازم براي اجرا با استفاده از كد شبه، كه زبان طبيعي را با كدهاي نوشته شده در يك زبان برنامه‌نويسي تداخل مي‌كند، به انسان منتقل كرد.

 

يك زبان برنامه نويسي مكانيزمي ساختاريافته براي تعريف قطعات داده و عمليات يا تبديل هايي كه ممكن است به طور خودكار روي آن داده انجام شود، فراهم مي كند. يك برنامه نويس از انتزاعات موجود در زبان براي نمايش مفاهيم درگير در يك محاسبات استفاده مي كند. اين مفاهيم به‌عنوان مجموعه‌اي از ساده‌ترين عناصر موجود (به نام اوليه‌ها) نشان داده مي‌شوند.[66] برنامه نويسي فرآيندي است كه طي آن برنامه نويسان اين برنامه هاي اوليه را براي ايجاد برنامه هاي جديد تركيب مي كنند يا برنامه هاي موجود را با استفاده هاي جديد آموزش برنامه نويسي يا آموزش برنامه نويسي كودكان و نوجوانان محيطي در حال تغيير تطبيق مي دهند.

 

آموزش برنامه نويسي كودكان و نوجوانان

۹ بازديد

برنامه نويسي زبان طبيعي به عنوان راهي آموزش برنامه نويسي كودكان و نوجوانان براي رفع نياز به زبان تخصصي براي برنامه نويسي پيشنهاد شده است. با اين حال، اين هدف بسيار دور است و مزاياي آن قابل بحث است. Edsger W. Dijkstra اين موضع را گرفت كه استفاده از يك زبان رسمي براي جلوگيري از معرفي ساختارهاي بي معني ضروري است و برنامه نويسي زبان طبيعي را به عنوان "احمقانه" رد كرد.[55] آلن پرليس نيز به همين ترتيب اين ايده را رد كرد.[56] رويكردهاي تركيبي به زبان انگليسي ساختاريافته و SQL اتخاذ شده است.

 

طراحان و كاربران يك زبان بايد تعدادي مصنوع بسازند كه برنامه نويسي را كنترل كرده و امكان اجراي آن را فراهم كند. از مهمترين اين مصنوعات مي توان آموزش برنامه نويسي كودكان و نوجوانان به مشخصات و پياده سازي زبان اشاره كرد.

 

مشخصات

مقاله اصلي: مشخصات زبان برنامه نويسي

مشخصات يك زبان برنامه‌نويسي مصنوع است كه كاربران زبان و پياده‌كننده‌ها مي‌توانند از آن براي توافق بر سر اينكه آيا يك قطعه كد منبع يك برنامه معتبر در آن زبان است و اگر چنين است، چه رفتاري داشته باشد، استفاده كنند.

 

مشخصات زبان برنامه نويسي مي تواند اشكال مختلفي داشته باشد، از جمله:

 

تعريفي صريح از نحو، معناي ايستا، و معنايي اجرايي زبان. در حالي كه نحو معمولاً با استفاده از گرامر رسمي مشخص مي شود، تعاريف معنايي ممكن است به زبان طبيعي (مثلاً در زبان C) يا يك معناشناسي رسمي (مثلاً به عنوان مثال) نوشته شوند. آموزش برنامه نويسي كودكان و نوجوانان در مشخصات استاندارد ML[57] و Scheme[58].

شرح رفتار يك مترجم براي زبان (به عنوان مثال، مشخصات C++ و Fortran). نحو و معناي زبان بايد از اين توصيف استنتاج شود، كه ممكن است به زبان طبيعي يا رسمي نوشته شود.

يك مرجع يا پياده سازي مدل، كه گاهي اوقات به زباني كه مشخص مي شود نوشته مي شود (به عنوان مثال، Prolog يا ANSI REXX[59]). نحو و معناي ايرانيان سايبر زبان در رفتار پياده سازي مرجع صريح است.

پياده سازي

مقاله اصلي: پياده سازي زبان برنامه نويسي

پياده سازي يك زبان برنامه نويسي راهي براي نوشتن برنامه ها به آن زبان و اجراي آنها بر روي يك يا چند پيكربندي سخت افزار و نرم افزار فراهم مي كند. به طور كلي، دو رويكرد براي پياده سازي زبان برنامه نويسي وجود دارد: كامپايل و تفسير. به طور كلي آموزش برنامه نويسي كودكان و نوجوانان مي توان يك زبان را با استفاده از هر يك از تكنيك ها پياده سازي كرد.

 

خروجي يك كامپايلر ممكن است توسط سخت افزار يا برنامه اي به نام مفسر اجرا شود. در برخي از پياده سازي هايي كه از رويكرد مفسر استفاده مي كنند، مرز مشخصي بين كامپايل و تفسير وجود ندارد. به عنوان مثال، برخي از پياده‌سازي‌هاي BASIC، منبع را يك خط در يك زمان كامپايل و سپس اجرا مي‌كنند.

 

برنامه هايي كه مستقيماً روي سخت افزار اجرا مي شوند معمولاً بسيار سريعتر از برنامه هايي كه در نرم افزار تفسير مي شوند اجرا مي شوند.

 

يكي از تكنيك‌هاي بهبود عملكرد برنامه‌هاي تفسير شده، آموزش برنامه نويسي كودكان و نوجوانان كامپايل‌سازي به‌موقع است. در اينجا ماشين مجازي، درست قبل از اجرا، آموزش برنامه نويسي بلوك‌هاي بايت كد را كه قرار است براي كد ماشين استفاده شوند، براي اجراي مستقيم روي سخت‌افزار ترجمه مي‌كند.

آموزش برنامه نويسي كودكان و نوجوانان

۶ بازديد

خط بين الف زبان و كتابخانه اصلي آن از زباني به زبان ديگر متفاوت است. آموزش برنامه نويسي كودكان و نوجوانان در برخي موارد، طراحان زبان ممكن است كتابخانه را به عنوان يك موجوديت مجزا از زبان در نظر بگيرند. با اين حال، كتابخانه اصلي يك زبان اغلب به عنوان بخشي از زبان توسط كاربران آن در نظر گرفته مي شود، و برخي از مشخصات زبان حتي ايجاب مي كند كه اين كتابخانه در همه پياده سازي ها در دسترس باشد. در واقع، برخي از زبان‌ها طوري طراحي شده‌اند كه حتي نمي‌توان معاني ساختارهاي نحوي خاص را بدون آموزش برنامه نويسي كودكان و نوجوانان مراجعه به كتابخانه اصلي توصيف كرد. به عنوان مثال، در جاوا، يك string literal به عنوان نمونه اي از كلاس java.lang.String تعريف مي شود. به طور مشابه، در Smalltalk، يك عبارت تابع ناشناس (يك "بلوك") نمونه اي از كلاس BlockContext كتابخانه را مي سازد. برعكس، Scheme شامل چندين زيرمجموعه منسجم است كه براي ساخت بقيه زبان به عنوان ماكروهاي كتابخانه كافي است، و بنابراين طراحان زبان حتي به خود زحمت نمي‌دهند بگويند كدام بخش از زبان بايد به عنوان ساختار زبان پياده‌سازي شود و كدام بخش بايد به عنوان بخش اجرا شود. از يك كتابخانه

 

طراحي و پياده سازي

زبان‌هاي برنامه‌نويسي ويژگي‌هايي را با زبان‌هاي طبيعي به اشتراك مي‌گذارند كه مربوط به هدفشان به‌عنوان وسيله‌اي براي ارتباط است، شكل نحوي جدا از معنايي آن، و نشان دادن خانواده‌هاي زباني زبان‌هاي مرتبط كه يكي آموزش برنامه نويسي كودكان و نوجوانان از ديگري منشعب شده‌اند.[50][51] اما به‌عنوان سازه‌هاي مصنوعي، از جهات اساسي با زبان‌هايي كه از طريق استفاده تكامل يافته‌اند نيز متفاوت هستند. يك تفاوت قابل توجه در اين است كه يك زبان برنامه نويسي را مي توان به طور كامل توصيف و مطالعه كرد زيرا داراي تعريف دقيق و متناهي است.[52] در مقابل، زبان هاي طبيعي معاني در حال تغييري دارند كه توسط كاربرانشان در جوامع مختلف داده مي شود. در حالي كه زبان هاي ساخته شده نيز زبان هاي مصنوعي هستند كه از ابتدا با هدف خاصي طراحي شده اند، اما فاقد تعريف معنايي ايرانيان سايبر دقيق آموزش برنامه نويسي كودكان و نوجوانان و كاملي هستند كه يك زبان برنامه نويسي دارد.

 

بسياري از زبان هاي برنامه نويسي از ابتدا طراحي شده اند، براي رفع نيازهاي جديد تغيير يافته اند و با زبان هاي ديگر تركيب شده اند. بسياري از آنها در نهايت از كار افتاده اند. اگرچه تلاش‌هايي براي طراحي يك زبان برنامه‌نويسي «جهاني» صورت گرفته است كه تمام اهداف را برآورده مي‌كند، اما همه آنها به‌عنوان اين نقش به طور كلي پذيرفته نشده‌اند.[53] نياز به زبان هاي برنامه نويسي متنوع از تنوع زمينه هايي كه در آن زبان ها استفاده مي شود ناشي مي شود:

 

برنامه ها از اسكريپت هاي كوچك نوشته شده توسط افراد سرگرم كننده گرفته تا سيستم هاي بزرگ نوشته شده توسط صدها برنامه نويس متغير است.

برنامه نويسان داراي تخصص هستند، از مبتدياني كه بيش از هر چيز به سادگي نياز دارند تا كارشناساني كه ممكن است با پيچيدگي قابل توجهي راحت باشند.

برنامه ها بايد سرعت، اندازه و سادگي را در سيستم هاي مختلف از ميكروكنترلرها تا ابررايانه ها متعادل كنند.

برنامه ها ممكن است يك بار نوشته شوند و براي نسل ها آموزش برنامه نويسي كودكان و نوجوانان تغيير نكنند، يا ممكن است به طور مداوم دستخوش تغييرات شوند.

برنامه نويسان ممكن است به سادگي در سليقه خود متفاوت باشند: آنها ممكن است به بحث در مورد مشكلات و بيان آنها به يك زبان خاص عادت داشته باشند.

يكي از روندهاي رايج در توسعه زبان هاي برنامه نويسي، افزودن توانايي بيشتر براي حل مسائل با استفاده از سطح بالاتري از انتزاع بوده است. اولين زبان هاي برنامه نويسي بسيار نزديك به سخت افزار زيرين رايانه گره خورده بودند. با توسعه زبان‌هاي برنامه‌نويسي جديد، ويژگي‌هايي اضافه شده‌اند كه به برنامه‌نويسان اجازه مي‌دهد ايده‌هايي را بيان كنند كه از ترجمه ساده به دستورالعمل‌هاي سخت‌افزاري زيربنايي فاصله دارند. از آنجايي كه برنامه نويسان كمتر به پيچيدگي كامپيوتر وابسته هستند، برنامه هاي آنها آموزش برنامه نويسي مي توانند محاسبات آموزش برنامه نويسي كودكان و نوجوانان بيشتري را با تلاش كمتر برنامه نويس انجام دهند. اين به آنها امكان مي‌دهد عملكردهاي بيشتري را در واحد زمان بنويسند.[54]

 

آموزش برنامه نويسي كودكان و نوجوانان

۱۴ بازديد

تايپ پويا كه تايپ پنهان نيز ناميده مي شود، آموزش برنامه نويسي كودكان و نوجوانان ايمني نوع عمليات را در زمان اجرا تعيين مي كند. به عبارت ديگر، انواع به جاي عبارات متني، با مقادير زمان اجرا مرتبط هستند.[46] مانند زبان‌هاي استنباط‌شده با نوع، زبان‌هاي تايپ پويا نيازي به نوشتن حاشيه‌نويسي نوع صريح روي عبارت‌ها از سوي برنامه‌نويس ندارند. از جمله، اين ممكن است به يك متغير اجازه دهد تا به مقادير مختلف در نقاط مختلف اجراي برنامه اشاره كند. با اين حال، تا زماني كه يك قطعه كد واقعاً اجرا نشود، نمي‌توان خطاهاي نوع را به‌طور خودكار شناسايي كرد، كه احتمالاً اشكال‌زدايي را دشوارتر آموزش برنامه نويسي كودكان و نوجوانان مي‌كند. Lisp، Smalltalk، Perl، Python، JavaScript و Ruby همگي نمونه هايي از زبان هاي تايپ شده پويا هستند.

 

تايپ ضعيف و قوي

تايپ ضعيف اجازه مي دهد تا يك مقدار از يك نوع به عنوان يك نوع ديگر در نظر گرفته شود، براي مثال در نظر گرفتن يك رشته به عنوان يك عدد.[46] اين مي‌تواند گاهي مفيد باشد، اما همچنين مي‌تواند باعث شود كه برخي از اشكالات برنامه در زمان كامپايل و حتي در زمان اجرا شناسايي نشوند.

 

تايپ قوي از اين خطاهاي برنامه جلوگيري مي كند. آموزش برنامه نويسي كودكان و نوجوانان تلاش براي انجام عمليات بر روي نوع نامناسب مقدار يك خطا را ايجاد مي كند.[46] زبان‌هايي كه با تايپ قوي تايپ مي‌شوند، اغلب به عنوان ايمن يا ايمن ناميده مي‌شوند.

 

يك تعريف جايگزين براي «تايپ ضعيف» به زبان‌هايي مانند پرل و جاوا اسكريپت اشاره دارد كه تعداد زيادي تبديل نوع ضمني را مجاز مي‌كنند. به عنوان مثال، در جاوا اسكريپت، عبارت 2 * x به طور ضمني x را به يك عدد تبديل مي كند، و اين تبديل حتي اگر x خالي، تعريف نشده، يك آرايه يا يك رشته حروف باشد، موفق مي شود. چنين تبديل هاي ضمني اغلب مفيد هستند، اما مي توانند خطاهاي برنامه نويسي را پنهان كنند. قوي و استاتيك ايرانيان سايبر در حال حاضر به طور كلي مفاهيم متعامد در نظر گرفته مي شوند، اما استفاده در ادبيات متفاوت است. برخي از اصطلاح قوي تايپ شده را به معناي تايپ قوي، ايستا، يا حتي گيج كننده تر، آموزش برنامه نويسي كودكان و نوجوانان به معناي ساده تايپ شده استاتيك استفاده مي كنند. بنابراين C را هم به شدت تايپ و هم ضعيف، تايپ ايستا مي نامند.[48][49]

 

ممكن است براي برخي از برنامه نويسان حرفه اي عجيب به نظر برسد كه C مي تواند "ضعيف، به صورت ايستا تايپ شود". با اين حال، توجه داشته باشيد كه استفاده از اشاره‌گر عمومي، نشانگر void*، امكان ارسال اشاره‌گرها به ديگر اشاره‌گرها را بدون نياز به ارسال صريح مي‌دهد. اين بسيار شبيه به ريختن آرايه اي از بايت ها به هر نوع داده اي در C بدون استفاده از ريخته گري صريح، مانند (int) يا (char) است.

 

كتابخانه استاندارد و سيستم زمان اجرا

مقاله اصلي: كتابخانه استاندارد

اكثر زبان هاي برنامه نويسي داراي يك كتابخانه هسته مرتبط هستند (كه گاهي اوقات به عنوان "كتابخانه استاندارد" شناخته مي شود، به خصوص اگر به عنوان بخشي از استاندارد زبان منتشر شده باشد)، كه به طور معمول توسط همه پياده سازي هاي آموزش برنامه نويسي كودكان و نوجوانان زبان در دسترس است. كتابخانه‌هاي اصلي معمولاً شامل تعاريفي براي الگوريتم‌هاي رايج، ساختارهاي داده و مكانيسم‌هايي آموزش برنامه نويسي براي ورودي و خروجي هستند.