نقدی بر کتاب
واکرفت را با شیوه ای مهندسی نوشته اند.برای درک کامل این کتاب نیاز به مطالعه های قبلی در زمینه ی جادوگری دارید.هم چنین ذخیره واژگان باستانی و جادویی خوبی نیز باید داشت.ترجمه این کتاب ها که توسط نشر زهره انجام گرفته است(غیر از جلد آخری) ترجمه ای فنی و تا حدودی دشوار است و خواندنش برای افراد گروه سنی 16 به بالا مناسب است.





دنیای وارکرافت
دنیای وارکرافت (به انگلیسی: World of Warcraft) یا به اختصار WoW، یک بازی سبک خیال‌پردازی از سری وارکرافت که توسط بلیزارد انترتینمنت ساخته شده و در سال ۲۰۰۴ توسط شرکت بلیزارد انترتینمنت برای رایانه منتشر شده‌است.این بازی چهارمین سری از مجموعه بازی وارکرافت می‌باشد، که اولین بازی از این سری با عنوان وارکرافت: ارک‌ها و انسان‌ها در سال ۱۹۹۴ منتشر شده‌است.اولین بسته الحاقی این بازی با عنوان دنیای وارکرافت: جهاد سوزان در ۱۶ ژانویه ۲۰۰۷، و دومین بسته الحاقی با عنوان دنیای وارکرفت: خشم پادشاه لیچ در ۱۳ نوامبر ۲۰۰۸ منتشر شده‌استو سومین بسته الحاقی به نام دنیای وارکرفت: تحول بزرگ، در سال ۲۰۱۰ منتشر شد.




وارکرفت: سلطنت آشوب
وارکرفت: سلطنت آشوب (به انگلیسی: Warcraft ۳ : Reign of Chaos) یک بازی ویدئویی استراتژی از شرکت بیلیزارد است که در تاریخ ۳ ژانویه ۲۰۰۲ منتشر شده‌است. وارکرفت ۳ شامل ۴ نژاد : انسان و اورک هاو نایت الف‌ها و آنددها است. بازی ثابت کرد به یکی از آزادترین پیش بینی بازی‌های کامپیوتری و محبوب همیشه، با ۴٫۵ میلیون واحد حمل به فروشگاه‌های خرده فروشی و بیش از یک میلیون واحد فروخته شده در ۱ ماه وارکرفت ۳ موفق به کسب جوایز بسیاری از جمله "بازی سال" از بیش از ۶ نشریات مختلف است. این بازی یکی از بهترین بازی های زمان خویش بوده و از ادامه این بازی می توان به بازی FROZEN THERON اشاره کرد.




کانتر استرایک
کانتر استرایک (به انگلیسی: Counter-Strike، (به اختصار CS)) یک بازی رایانه‌ای رزمی تیراندازی اول شخص است که توسط شرکت والو توسعه‌داده می‌شود. این بازی برگرفته از تغییراتی است که توسط مینه لی و جس کلیف بر روی بازی نیمه‌جان انجام شده. بازی پس از انتشار اولین نسخه در سری نسخه‌های دیگری نیز منتشر شد که در حال حاضر شامل کانتر استریک: ۱٫۶ و کانتر استرایک: کاندیشن زیرو و کانتر استرایک: سورس و کانتر استرایک: گلوبال آفنسیو می‌شود. همچنین این بازی به صورت آنلاین در گیم نت‌ها و حتی در خانه‌ها طرفداران بسیاری دارد.



جنگ خان‌ها
جنگ خان‌ها یک بازی تحت مرورگر (به انگلیسی: Browser Game) در سبک استراتژیک آنلاین می‌باشد و در قرون وسطا می‌گذرد.بازیکن می‌تواند با انتخاب یکی از 12 قوم بلغارها، فرانک‌ها، مغول ها، ژاپنی ها، لیتوانی، آلمان‌ها، پارس‌ها، روم شرقی، بریتانیایی‌ها، اعراب، گوت‌ها و روس‌ها فرمانروایی خود را بنا کند و با تسخیر قلعه‌های دیگر بازیکنان، آن را گسترش دهید و قدرتمند تر سازد.



جنگ نهایی تام کلنسی
جنگ نهایی تام کلنسی(به انگلیسی: Tom Clancy's EndWar)یک بازی استراتژی همزمان ساخته شده توسط یوبی‌سافت شانگهای برای پلی‌استیشن ۳، ایکس‌باکس ۳۶۰ و مایکروسافت ویندوز است .این بازی در ۴ نوامبر ۲۰۰۸ برای ایالات متحده آمریکا،۶ نوامبر برای کانادا و ۸ نوامبر همان سال برای اروپا منتشر شد.نسخه مایکروسافت ویندوز آن در ۴ فوریه ۲۰۰۹ نیز به بازار روانه شد.




جنگ‌های صلیبی (بازی ویدئویی)
جنگ‌های صلیبی (به انگلیسی: Stronghold: Crusader) یکی از بازی‎های سری استراتژی قلعه، ساخت استودیوی فایرفلای بود که در سال ۲۰۰۲ منتشر شد.این بازی دارای گرافیک بالایی نبود اما طرفداران زیادی پیدا کرد و با استقبال زیادی روبرو شد.این بازی توسط گروه نرم‌افزاری دارینوس به فارسی دوبله شد.



تراوین
تراوین یک بازی تحت وب می‌باشد که بازیکن با دیگر بازیکنان به صورت برخط بازی می‌کند و کار خود را به عنوان رئیس یک دهکده کوچک شروع می‌کند. هر بازیکن قادر به انتخاب از میان سه نژاد رومی‌ها، گول‌ها و توتن‌ها می‌باشد که هر کدام نسبت به دیگری دارای مزایا و یا معایبی است. در این بازی می‌توان به دهکده‌های دیگر حمله کرد و با آنها جنگید و غنائم بدست آورد و یا دهکده‌های جدید احداث یا تصرف نمود.




وجه تسمیه
اسم تراوین برگرفته از یک کلمه یونانی به اسم تراویزاجوس است که به معنی گرگ سیاه می‌باشد. جورج کبریل فیلسوف و روانشناس قرن ۱۲ معتقد است که چون گرگ‌های سیاه با غارت گله‌های گوسفندان زندگی خود را می‌گذرانند این به این دلیل برای تراوین انتخاب شده که اشاره به افراد غارت‌گر در تراوین دارد و افراد غارت‌گر بازی به گرگ‌های سیاه تشبیه شده‌اند.




ساده و خلاصه
این بازی نیازی به دانلود ندارد و به صورت آنلاین (حتی با دایال آپ) می‌شود بازی کرد. از مزیت‌های این بازی این است که باعث افزایش قدرت مدیریتی و تئوری پردازی شما می‌شود چون شما باید یک دهکده یا حتی چندین دهکده را در یک اتحاد کنترل کنید و بتوانید در مقابل حملات و نقشه‌های دشمن ایستادگی کنید هم اکنون سرور فارسی این بازی حدود ۱۵۰۰۰۰ نفر بازیکن دارد. هر سرور حداکثر ۳۲۰۰۰ بازیکن دارد. هچنین در تمام سرورهای تراوین مسابقه قهرمانی ۲۰۱۲ آغاز شده‌است که جوایز آن بیش از ۱۵۰۰۰۰ یورو می‌باشد. این بازی سبک‌های مختلفی دارد مانند تراوین ۴ و ۳ که دو سبک پر طرفدار این بازی است در بعضی سبک‌های این بازی نژادهای پارس و مغول هم وجود دارد این بازی سرورهایی مانند سرورهای اسپید با سرعت چند برابر نیز دارد



داستان بازی

منابع

در تراوین چهار منبع چوب، خشت، آهن و گندم وجود دارد که برای توسعه معادن و مرکز دهکده به آن‌ها نیاز است. منابع توسط مزارع و معادن تولید می‌گردد و برای افزایش میزان تولید منابع با توسعه منابع و مزارع می‌توان منابع تولیدی را افزایش داد.

همهٔ منابع برای توسعه دهکده، مورد نیاز است ولی مصرف گندم در هنگام توسعه روستا افزایش می‌یابد. تمام نژادها از یک منبع نسبت به منابع دیگر بیش تر استفاده می‌کنند که به طور مثال می‌توان استفاده از چوب توسط توتن‌ها و خشت توسط گول‌ها و استفاده از آهن توسط رومی‌ها اشاره کرد.

سربازان می‌توانند برای غارت منابع، به دهکده‌های مجاور دهکده صاحب سربازان حمله کنند. هم چنین جا به جایی منابع یک طرفه با استفاده از بازار می‌تواند انجام بگیرد و برای جابه جایی دو طرفه منابع باید حتماً هر دو طرف جابجایی پیشنهاد جابجایی را قبول کرده باشند.




بازی گرز

بازی گرز، یک بازی استراتژیک جنگی ایرانی تحت وب است که در ایران طراحی شده. مراحل ساخت بازی از اردیبهشت ۱۳۹۰ آغاز شده و نسخه بتای بازی در تاریخ ۱۲ اسفندماه ۱۳۹۰ به طور رسمی در اختیار گروهی از بازی دوستان ایرانی برای تست قرار گرفت. این بازی با سایر بازی‌های استراتژیک مرسوم تحت وب تفاوت دارد و سبک بازی بیشتر به روند بازی‌های کامپیوتری ای نظیر وارکرفت و همین طور برخی سبک‌های نبرد کال آو دیوتی می‌ماند. در بازی گرز، هر فرد با ثبت نام و انتخاب نژاد، لشگر خود را ساخته و با قهرمان لشگر به مبارزه با سایر فرماندهان و کاربران موجود در بازی می‌پردازد.

بازی به زبان PHP و تحت پلت فرم لینوکس نوشته شده و تغییرات و نسخه دهی آن همچنان ادامه دارد.
خلاصه بازی
پس از ثبت نام و انتخاب نژاد، هر کاربر می‌تواند با سرمایه‌ای که در اختیار دارد به تمرین لشگریان و همین طور خرید جادو‌ها و زره‌های مختلف برای قهرمان خود بپردازد. سپس می‌تواند با شرکت در نبردهای مختلف، با کاربران دیگر جنگیده و با پیروزی، تجربه کسب کند.




هدف از بازی
هدف اصلی فرماندهان این بازی، کسب تجربه بیشتر و دسترسی به سطوح بالاتر بازی است.




قوانین بازی
این بازی طبق مجوز رسمی, برای کاربران ۳ سال به بالا طراحی شده و توجه به ردهٔ سنی بازی ضروری است و تخطی از آن مسوولیت‌های بعدی را بر عهدهٔ والدین خاطی می‌اندازد
.
هر کاربر می‌تواند فقط و فقط یک عضویت در سایت داشته باشد. اطلاعات مرتبط به بازی کاربران به طور کامل ثبت و بررسی می‌شود و در صورت تخطی کاربر و ساخت دو یا تعداد بیشتری عضو از طریق یک کاربر، کلیهٔ عضویت‌های مرتبط با آن کاربر لغو می‌شوند.




مجوزها
بازی گرز، ثبت شده در "بنیاد بازی‌های رایانه ای" و همین طور مورد تایید ستاد ساماندهی پایگاه‌های اینترنتی است.




ایکاریم

ایکاریم (به آلمانی: Ikariam) یک بازی رایگان تحت‌وب در سبک استراتژی است. این بازی در سال ۲۰۰۸ توسط شرکت گیم‌فورج منتشر شده‌است. در ایکاریم، بازیکن اختیار یک شهر را در یک جزیره در دست می‌گیرد، با پیشرفت منابع و ساختمان‌ها، تجارت و بستن قراردادهای مختلف می‌تواند پیشرفت کند و در نقاط دیگر نقشه جهان، شهرهای دیگر بنا کند.

این بازی از چند سرور مختلف تشکیل شده است. نام هر سرور،کشور خاصی است. در هر سرور این بازی یک یا چند جهان وجود دارد که با حروف یونانی نامگذاری شده‌اند. در حال حاضر نسخه فارسی این بازی دارای سه جهان Beta،Alpha و Gamma می‌باشد.
نمای بازی ایکاریم در قالب نسخه ۰.۵.۰ در تاریخ ۵ ژوئیه ۲۰۱۲ تغییر کرد. هم‌اکنون ایکاریم با نمای جدید می‌درخشد و با این نما می‌توان بازی ایکاریم را به‌صورت تمام‌صفحه تجربه کرد.

شرکت گیم‌فورج، برای بازی ایکاریم نسخه‌های ویژه‌ای برای تلفن هوشمند و همچنین تبلت منتشر کرده‌است.

ایکاریم از طرف منتقدان در سال ۲۰۱۱ به عنوان بهترین بازی استراتژی تحت وب انتخاب شد و جوایز متعددی دریافت کرد.




نام
نام انگلیسی بازی Ikariam است. واژه Ikariam از نام اسطوره‌ای در یونان باستان به نام ایکاروس برگرفته شده‌است.همچنین جزیره‌ای به نام Ikaria (یا Icaria) در استان اژه شمالی یونان و در دریای اژه وجود دارد که نام این جزیره نیز از ایکاروس برگرفته شده‌است. m- یک پسوند یونانی است که برای نام بازی و تلفظ بهتر به Ikaria افزوده شده‌است.




خلاصه داستان
ایکاریم یک بازی چند نفره تحت وب در جزایر باستانی از دریای مدیترانه است . این بازی روی تجارت، جنگ، شهرها و ساختمان‌سازی تمرکز دارد. بازیکنان می توانند منابع و اشیاء باارزش تجاری را با مدیریت خود و با کشتی‌های باربری به شهرهای بازیکنان مختلف جهان منتقل کنند.




شخصیت‌ها
شخصیت‌های این بازی که وظیفه مدیریت کارهای بازیکن را برعهده دارند، با عنوان مشاور شناخته می‌شوند. هر مشاور همانطور که از اسمش پیدا است، وظایف خاصی دارد. هنگامی که چراغ این مشاوران روشن می‌شوند، بدین معنی‌است که اخبار جدیدی برای بازیکن دارند. هنگامی که این اخبار مشاهده شوند، چراغ مشاوران خاموش می شود.همزمان با نمای جدید نسخه ۰.۵.۰ شخصیت دیگری به نام کیرا در بازی ظاهر گردید. این شخصیت که همسر مشاور شهرها معرفی گردید، تا به‌روزرسانی بازی به نسخه ۰.۵.۰، وظایف مشاور شهرها در بازی را برعهده گرفت.




گیم‌پلی
ایکاریم به بازیکن اجازه تشکیل اتحاد، ساختن شهرها، گسترش قلمرو و آموزش دادن بهترین نیروها را می‌دهد. در ابتدا بازیکن یک پایتخت در یک جزیره دارد. هر جزیره که می‌تواند حداکثر ۱۷ شهر داشته باشد، یک کارگاه چوب‌بری، معجزه و یکی از چهار منبع تجمّلی (سنگ، کریستال، گوگرد و آب‌انگور) را دارد. اولین چشم اندازی که بازیکن در هنگام اولین ورود به بازی دارد، یک شهرداری است که در وسط شهری قرار دارد و قسمت‌های مختلف آن‌شهر با پرچم‌های آبی و قرمز مشخص شده‌است. وقتی که بازیکن بازی را شروع کند، با گذر زمان، شهر بازیکن رونق می‌یابد، صدها شهروند خواهد داشت و می‌تواند سربازان و کشتی‌های جنگی مختلف و همچنین ساختمان‌های زیادی با توجه به تحقیقاتی که انجام داده‌است، بسازد.



نمای کلی بازی
در ایکاریم سه روش برای نمایش وجود دارد. با کمک ابزار هدایت کننده می‌توان به راحتی حالت‌های نمایش را تغییر داد. این سه نما به ترتیب عبارت اند از:نمایش جهان:

بر روی نقشه جهان یک بررسی مناسب از دنیای ایکاریم به دست می‌آید. می‌توان با کمک فلش‌های هدایت کننده در منوی سمت راست، نقشه را بررسی کرد. با کلیک برروی هر جزیره می‌توان تمام اطلاعات لازم را دربارهٔ آن دریافت کرد.



نمایش جزیره:

نقشه جزیره، تمام شهرها، معجزات، معدن و کارگاه چوب بری موجود در آن‌ها را نشان می‌دهد.



نمایش شهر:

نقشه شهر شهرهای هم‌اتحادی، تصرف شده (توسط بازیکن یا هم اتحادی) و جاسوسی‌شده را نشان می‌دهد. از این‌جا می‌توان در شهر خودی ساختمان‌های جدید ساخت و آن‌ها را تقویت کرد و منابع را مدیریت کرد.
قوانین بازی، ضوابط و شرایط
هنگامی که بازیکن در بازی ثبت‌نام می‌کند، با تیک زدن جعبه، ضوابط و شرایط را می‌پذیرد. هرزمان که بازیکن وارد بازی می‌شود، با وارد شدن به بازی، ضوابط و شرایط گیم‌فورج را می‌پذیرد. بازیکن باید زمانی را صرف خواندن ضوابط و شرایط و قوانین به منظور جلوگیری از توقیف شدن کند. بازیکنان تازه‌وارد زیادی به علت اینکه قوانین را نخوانده‌اند، توقیف می‌شوند.




منابع بازی
زمانی که بازیکن بازی را شروع می‌کند، مقدار معینی منابع به دست می‌آورد. منابع برای پیشرفت تمدن و فرهنگ الزامی هستند. در بازی ۵ منبع وجود دارد:
چوب: چوب یک منبع معیار بازی است. از چوب در همه چیز استفاده می‌شود: ساختمان‌ها، واحدهای نظامی، کشتی‌های جنگی و اهدا به منابع جزیره (غیر از معجزه).
سنگ: برای همه ساختمان‌ها جز دانشگاه و معبد استفاده می‌شود.
شیشه کریستالی: برای ساخت دانشگاه، معبد، تقویت واحدهای نظامی و کشتی‌های جنگی، ساخت زیردریایی، ساخت دکتر و جاسوس و ساخت قصر یا مقر فرمانداری مرحلهٔ ۵ و بالاتر استفاده می‌شود.
آب‌انگور: بعد از تحقیق پرورش آب‌انگور در آب‌میوه فروشی استفاده می‌شود. همچنین آب‌انگور در قصر یا مقر فرمانداری مرحلهٔ ۴ و بالاتر و همچنین در ساخت آشپز (در سربازخانه) استفاده می‌شود.
گوگرد: برای آموزش واحدهای نظامی و ساخت کشتی‌های جنگی جز سنگ انداز، شمشیرباز، دژکوب، دکتر، آشپز و زیردریایی و همچنین در ساخت قصر یا مقر فرمانداری مرحلهٔ ۳ و بالاتر مورد استفاده قرار می‌گیرد.




تحقیق
انجام تحقیق‌ها در بازی ایکاریم به منظور پیشرفت و ساخت ساختمان‌ها و واحدهای نظامی جدید ضروریست. در ایکاریم موضوعات تحقیق به چهار گروه تقسیم می‌شوند

:

دریانوردی: انجام تحقیق‌های این گروه سبب ایجاد املاک و کشتی‌های جنگی جدید به منظور دفاع و حمله به بندرگاه‌های شهرهای بازیکنان دیگر می‌شود.
اقتصاد: انجام تحقیق‌های این گروه سبب رونق شهر و وضعیت اقتصادی بازیکن می‌شود.
علم و دانش: انجام تحقیقات این گروه سبب رشد علم و دانش در شهرها می شود.
نظامی: انجام تحقیق‌های این گروه سبب ساخته شدن درجات بالاتر واحدهای نظامی زمینی به منظور دفاع و حمله به شهرهای بازیکنان دیگر می‌شود.

بازیکن برای تکمیل یک موضوع تحقیق نیاز به امتیازات تحقیق دارد. امتیازات تحقیق با ساخت دانشگاه و استخدام دانشمندان به دست می‌آید. بازیکن در کتابخانه می‌تواند تمام موضوعات تحقیق و کاربردهای آن‌ها را ببیند.




ساخت


جهان‌ها
ایکاریم در سرور ایران از سه جهان تشکیل شده‌است. بازیکنان می‌توانند در هر یک از جهان‌ها ثبت نام کنند. نام جهان‌های ایکاریم با حروف یونانی مشخص شده است و جهان‌ها به‌ترتیب ایجاد، نامگذاری شده‌اند. در حال حاضر، ایکاریم در سرور ایران سه جهان دارد.




نسخه رایانه
طراحی جدید ایکاریم به شما این امکان را می‌دهد که جهان ایکاریم را به صورت تمام‌صفحه تجربه کنید. این طراحی شامل تغییراتی در موارد زیر است:

قسمت طراحی بازی اکنون از کل ابعاد پنجرهٔ مرورگر برای نمایش تصویر استفاده می‌کند و اگر اندازه پنجره تغییر کند، مرورگر به‌صورت خودبه‌خود اندازه تصویر را تغییر خواهد داد.
نقشهٔ جهان، نقشهٔ جزیره و نقشهٔ شهر مجدداً طراحی شده‌اند و اکنون دارای وضوح تصویر بالاتری هستند. `منوی سمت راست` در صفحه بازی با اجزای جدیدی جایگزین شده‌است. قسمت‌های موقعیت یابی در نقشه جهان اکنون در قسمت پایین صفحه قرار گرفته‌اند و با کلیک بر روی علامت پیکان در وسط آن قابلیت ظاهر شدن یا بسته شدن را دارد. در قسمت نمایش جزیره می‌توان با استفاده از همین منوی جدید با وارد کردن مختصات‌ها به یک جزیره دیگر هدایت شد. در سمت راست نمایش شهر، می‌توان قسمت‌های "سربازان موجود در شهر"، "تجارت ممتاز"، "نیروهای شبیه سازی شده"، "لیست ساختمان سازی"، "ترخیص سربازها" و "جاسوسی" (در شهرهای دیگر توسط جاسوسان) را مشاهده کرد.
حداقل وضوح تصویر در بازی ایکاریم ۷۶۸×۱۰۲۴ پیکسل به عنوان طراحی قدیمی باقی می‌ماند. با این حال جزیره‌ها و شهرها اکنون بزرگتر شده‌اند، این بدان معنی است که گاهی ممکن است بعضی تصاویر دیده نشوند. با حرکت دادن ماوس هر بازیکن می‌تواند تصویر را جابه‌جا نماید تا قسمت‌های غیرقابل رویت را ببیند. اگر این روش برای بازیکن امکان پذیر نباشد، می‌تواند از قسمت کنترل موقعیت در پایین صفحه استفاده کند.
در صفحات بازی، ساختمان‌ها و قسمت‌های زیادی تغییر کرده‌اند تا با طرّاحی جدید هماهنگ شوند.
بعضی از تصاویر برای طرّاحی جدید بهینه شده‌اند و یا اندکی تغییر کرده‌اند. این تغییرات در "بندرگاه"، "موزه"، "محل‌تجارت"، "مشاور سیاسی" و "قسمت راهنما" صورت گرفته‌اند.
10:23 pm
معناشناسی اجرا

وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیات‌ها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین می‌کند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.

برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی می‌شوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا می‌کنند.






کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازی‌های زبان هستند.



خصوصیات

یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کننده‌های زبان می‌توانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب می‌تواند بگیرد، مانند مثال‌های زیر:

تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص می‌شود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبان‌های مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.


پیاده سازی

پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سخت‌افزار و نرم‌افزار را فراهم می‌کند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش می‌توان یک زبان را پیاده سازی کرد.

خروجی یک کامپایلر ممکن است با سخت‌افزار و یا برنامه‌ای به نام مفسر اجرا شود. در برخی پیاده سازی‌ها که از مفسر استفاده می‌شود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازی‌های زبان برنامه نویسی بیسیک کامپایل می‌کنند و سپس کد را خط به خط اجرا می‌کنند.

برنامه‌هایی که مستقیماً روی سخت‌افزار اجرا می‌شوند چندین برابر سریعتر از برنامه‌هایی که با کمک نرم‌افزار اجرا می‌شوند، انجام می‌شوند.

یک تکنیک برای بهبود عملکرد برنامه‌های تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوک‌های کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سخت‌افزار ترجمه می‌کند.



تاریخچه
پیشرفت‌های اولیه

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

در دهه ۴۰، اولین رایانه‌های دیجیتال که توسط برق تغذیه می‌شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال‌های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.

کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شوند جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویا توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان‌های برنامه نویسی به شدت متاثر از محدودیت‌های رابط بودند.



پالایش

دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال‌های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه‌های آن بهینه سازی ایده‌های اولیه نسل سوم زبان برنامه نویسی بود:

APL برنامه نویسی آرایه‌ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایده‌های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می‌کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به

عنوان اولین زبان کاملاً شئ گرا معرفی شد.

C بین سال‌های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان‌های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.

هر یک از این زبان‌ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان‌ها از تبار حداقل یکی از زبان‌های فوق به شمار می‌آیند.

دهه‌های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان‌های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.

"ادسگر دیکسترا" در نامه‌ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان‌های سطح بالا حذف شود.

در دهه‌های ۶۰ و ۷۰ توسعهٔ تکنیک‌هایی صورت گرفت که اثر یک برنامه را کاهش می‌داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.




یکپارچگی و رشد

دهه ۸۰ سال‌های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه‌های گزافی صرف تحقیق در مورد زبان نسل پنجم می‌شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثال‌های جدید، تمام این تلاش‌ها ایده‌هایی که در دهه‌های قبل حلق شده بودند را بهتر کرد.

یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم‌های بزرگ از طریق مدول‌ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم‌های مدولی برجسته‌ای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبان‌های دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستم‌های مدولی غالباً با ساختارهای برنامه نویسی عام همراه شده‌اند.

رشد سریع اینترنت در میانه دهه ۹۰ فرصت‌های ایجاد زبان‌های جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وب‌گاه‌های دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعه‌ها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثال‌های موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا می‌کند، هم در تحقیقات و هم در صنعت. جهت‌های فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونه‌های جدید مدولی(mixin، نماینده‌ها، جنبه‌ها) و تجمع پایگاه داده.

۴GLها نمونه‌ای از زبان‌هایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه داده‌های اسکالر را برگردانند، مجموعه‌هایی را تغییر داده و بر می‌گردانند که برای اکثر زبان‌ها متعارفند. Perl برای مثال، با "مدرک اینجا" خود می‌تواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.




سنجش استفاده از زبان

مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

شمارش تعداد تبلیغات شغلی که از آن زبان نام می‌برند.
تعداد کتاب‌های آموزشی و شرح دهندهٔ آن زبان که فروش رفته‌است.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبان‌هایی را که در جستجوها کمتر پیدا می‌شوند دست کم گرفته شوند.
شمارش ارجاع‌های زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.

طبقه بندی‌ها هیچ برنامه غالبی برای دسته بندی زبان‌های برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبان‌ها معمولاً با ترکیب المان‌های چند زبان پیشینه بوجود می‌آیند که هربار ایده‌های جدید درگردشند. ایده‌هایی که در یک زبان ایجاد می‌شوند در یک خانواده از زبان‌های مرتبط پخش می‌شوند، و سپس از بین خلاهای بین خانواده‌ها منتقل شده و در خانواده‌های دیگر ظاهر می‌شوند.

این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق می‌کند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.

در نگاه کلی، زبان‌های برنامه نویسی به مثال‌های برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم می‌شوند. مثال‌ها شامل برنامه نویسی رویه‌ای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبان‌ها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبان‌های برنامه نویسی ممکن است همه منظوره باشند، زبان‌های برنامه نویسی سیستمی، زبان‌های اسکریپتی، زبان‌های محدوده مشخص، زبان‌های همزمان/ گسترده(و یا ترکیب اینها). برخی زبان‌های همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شده‌اند.

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 10:23 pm | نویسنده : admin | مای اف | مطلب قبلی
مای اف | next page | next page