زنگ تفریح شماره 164
میدانیم که زبانهای برنامه نویسی مختلفی وجود دارند که بعضی از آنها مستقیما توسط کامپیوترها قابل فهم هستند و بعضی دیگر باید به زبان کامپیوتر یا ماشین ترجمه شوند تا قابل فهم باشند. امروزه صدها زبان برنامه نویسی وجود دارند اما با توجه به این تنوع گسترده میتوان آنها را به سه دسته کلی تقسیم کرد:
1.زبانهای ماشین
2.زبانهای اسمبلی
3.زبانهای سطح بالا
1.زبانهای ماشین
هر کامپیوتر میتواند مستقیما زبان ماشین خودش را درک کند که زبان طبیعی آن کامپیوتر نام دارد و توسط طراح سخت افزار آن تعریف شدهاست. زبانهای ماشین به طور کلی رشتهای از اعداد هستند که در نهایت به صفرها و یکها تبدیل میشوند. این اعداد معنای خاصی دارند و به کامپیوتر دستور میدهند هر بار یکی از عملیات خودش را اجرا کند. زبانهای ماشین وابسته به ماشین هستند یعنی هر ماشین زبان خاص خودش را داراست. کارکردن با این زبانها برای انسانها بسیار دشوار است، نمونهای از دستورالعملهای زبان ماشین میتواند به شرح زیر باشد که هر کدام معنای خاصی دارند:
+1300042774
+1400593419
+1200274027
2.زبانهای اسمبلی
اغلب برنامه نویسان به کندی و به سختی میتوانند با زبانهای ماشین برنامه بنویسند. به جای استفاده از رشتهای از اعداد که کامپیوتر مستقیما میتواند آنها را درک کند، برنامه نویسان برای نمایش عملیات اصلی ماشین از واژههای خلاصه انگلیسی استفاده کردند. این واژههای خلاصه، مبنای زبان اسمبلی شدند. برنامههایی که کار ترجمهی برنامه زبان اسمبلی را به برنامه زبان ماشین انجام میدهمند اسمبلر نام دارند. نمونههایی از دستورات زبان اسمبلی عبارتند از:
Load basePay
Add overPay
Store grossPay
گرچه چنین کدی برای انسانها واضح تر است اما تا زمانی که به زبان ماشین ترجمه نشدهاند برای ماشینها قابل فهم نیستند.
3.زبانهای سطح بالا
با اختراع زبانهای اسمبلی، کاربرد کامپیوترها گسترش یافت، اما هنوز برنامه نویسان برای انجام کارهای ساده دستورالعملهای زیادی استفاده میکردند. برای تسریع در فرآیند برنامه نویسی زبانهای سطح بالا اختراع شدند که در آنها هر دستور العمل میتواند چندین کار اساسی را انجام دهد. برنامههای مترجم که برنامههای زبان بالا را به زبان ماشین تبدیل میکنند کامپایلر نام دارند. زبانهای سطح بالا به برنامه نویسان اجازه میدهند دستورالعملهایی بنویسند که شبیه عبارت ریاضی و زبان ممحاوره انگلیسی باشند. به عنوان مثال تمام برنامهعلی حقوق و دستمزد از دستور زیر برای محاسبه حقوق ناخالص استفاده میکنند:
grossPay=basePay+overTimePay
از دیدگاه برنامه نویس زبانهای سطح بالا نسبت به زبانهای ماشین و اسمبلی ارجحاند. زبانهایی مثل ویژوالC#، ویژوال C++، ویژوال بیسیک، C، C++ و جاوا زبانهای سطح بالایی هستند که به وفور مورد استفاده قرار میگیرند. فرآیند ترجمه زبان سطح بالا به زبان ماشین میتواند وقت زیادی از کامپیوتر بگیرد. برنامههای مفسر(interpreter) اختراع شد تا برنامههای زبانهای سطح بالا را مستقیما اجرا کند. مفسرها در محیطهایی استفاده میشوند که ویژگیهای جدیدی به برنامه اضافه میشوند و برنامهها باید اشکال زدایی شوند. وقتی برنامه به طور کامل ایجاد شد، نسخه ترجمه شدهی آن میتواند به طور کارامد اجرا گردد. مفسرها به زبانهای اسکریپتی در وب معروف هستند.
محیط کاری.NET
تقریبا هر 10 سال روش برنامه نویسی جدیدی مطرح شدهاست. در اوایل دهه 1980 فناوری جدید، سیستم عامل یونیکس و زبان قدرتمند جدیدی به نام C بود. در اوایل دهه 1990، سیستم عامل ویندوز و زبان C++ مطرح شدند. هر یک از این دو توسعه، تغییر اساسی در روش برنامه نویسی ایجاد کردند. موج بعدی .NET و C# بودهاست که در سال 2000 مطرح شدند.
سکوی .NET
شرکت مایکروسافت در جولای 2000، توسعه سکوی .NET را اعلان کرد. سکوی .NET در اصل یک محیط کاری جدید است که یک واسط برنامه نویسی کاربردی(API) را برای سیستم عامل ویندوز فراهم میسازد. سکوی .NET بسیاری از فناوریهای پراکندهای را که در دهه 1990 توسط مایکروسافت به وجود آمدند در کنار هم قرار داد. به عنوان مثال سرویس قطعات COM+، محیط کاری توسعه وب ASP، تثبیت زبان XML و طراحی شیگرا، پشتیبانی از پروتکلهای جدید وب سرویس مثل SOAP، WSDL و UDDI و تاکید بر اینترنت، همگی در یک معماری گنجانده شدهاست.
مایکروسافت نشان داد که 80% از بودجه توسعه را صرف .NET و فناوریهای مرتبط با آن کردهاست. خلاصه این که، حوزه .NET بسیار وسیع است. سکوی .NET شامل 4گروه از محصولات است:
• مجموعهای از زبانها C#.NET و J#.NET و Visual Basic.NET . مجموعهای از ابزارهای توسعه، زبان مشترک زمان اجرا (CLR) برای اجرای اشیای ایجاد شده.
• مجموعهای از سرویس دهندههای .NET مثل SQL Server 2005 و غیره.
• وب سرویسهای اقتصادی، توسعه دهندگان میتوانند با استفاده از اینها کاربردهای جالبی را بنویسند.
• دستگاههای غیر PC که توسط .NET فعال میشوند، مثل تلفنهای سلولی (تلفنهای همراه) تا جعبههای بازی.