راک‌استار گیمز

راک‌استار گیمز (به انگلیسی: Rockstar Games) یک شرکت توسعه‌دهنده و ناشر بازی‌های ویدئویی در نیویورک، که مالک اصلی آن شرکت تیک-تو اینتراکتیو است. این شرکت به دلیل توسعهٔ بازی‌هایی هم‌چون سری اتومبیل‌دزدی بزرگ، سری مکس پین، ال. ای. نویر، بولی، سری شکارچی انسان، سری باشگاه شبانه و رزمندگان و هم‌چنین استفاده از سبک دنیای آزاد به شهرت بسیار رسید.





راک‌استار اولین بار در سال ۱۹۹۸ در نیویورک به وسیلهٔ سم و دن هوسر، تری دونوان، جیمی کینگ و گری فورمن، توسعه‌دهنده‌های انگلیسی، ساخته شد. دفتر مرکزی شعبه اصلی راک‌استار در نیویورک (که با نام راک‌استار ان‌وای‌اس شناخته می‌شود) و در نزدیکی محلهٔ سوهوی آن شهر است.

در فوریه سال ۲۰۱۴، کپی‌های بازی‌های راک‌استار، به ۲۵۰ میلیون کپی رسید و بیشتر موفقیتش را مدیون سری بازی‌های اتومبیل‌دزدی بزرگ است که تنهایی ۱۵۷٫۵ میلیون فروش رفت. در مارس ۲۰۱۴ نیز راک‌استار جایزه فلوشیپ آکادمی بفتا برای سری بازی‌های اتومبیل‌دزدی بزرگ کسب کرد.

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






بازی‌های ساخته شده توسط راک‌استار

سری اتومبیل‌دزدی بزرگ (۱۹۹۷-تاکنون)
سری باشگاه شبانه (۲۰۰۰-تاکنون)
سری مکس پین (۲۰۰۱-تاکنون)
سری شکارچی انسان (۲۰۰۳-تاکنون)
سری سرخپوست مرده (۲۰۰۴-تاکنون)
رزمندگان (۲۰۰۵)
بولی (۲۰۰۶)
ال. ای. نویر (۲۰۱۱)






راک‌استار ژاپن
راک‌استار ژاپن از شرکت‌های تابعه‌ی راک‌استار گیمز که مکانش در کشور ژاپن است. این شرکت بازی‌های راک‌استار را در آسیا منتشر می‌کند.





راک‌استار لینکلن
راک‌استار لینکلن (به انگلیسی: Rockstar Lincoln)، شرکت بریتانیایی توسعه‌دهنده بازی‌های ویدئویی از شرکت‌های تابعه‌ی راک‌استار گیمز که مکانش در لینکلن، انگلستان است. این شرکت جوابگوی تست و ترجمه بازی‌های ویدئویی راک‌استار دیگر شرکت‌های راک‌استار است.





راک‌استار نرت
راک‌استار نرت (به انگلیسی: Rockstar North) یک توسعه‌دهنده بازی‌های ویدئویی اسکاتلندی است. این شرکت بخشی از راک‌استار گیمز، و متعلق به تیک-تو اینتراکتیو است. راک‌استار نرت توسعه دهندهٔ اصلی سری اتومبیل‌دزدی بزرگ از جمله اتومبیل‌دزدی بزرگ ۳، اتومبیل‌دزدی بزرگ: وایس سیتی، و اتومبیل‌دزدی بزرگ: سن آندریاس می‌باشد.





راک‌استار سن‌دیگو

راک‌استار سن‌دیگو (به انگلیسی: RockStar San Diego) نام یک استودیوی بازی‌سازی آمریکایی است که عمده شهرت خود را مدیون ساخت دو بازی سرخپوست مرده: رستگاری و سرخپوست مرده: شش‌لول است.

این استودیو زیرمجموعه شرکت راک استار گیمز محسوب می شود. استودیو راک‌استار سن‌دیگو تنها استودیوی راک‌استار است که از موتور بازی پیشرفته راک‌استار برای بازی‌هایش از جمله اتومبیل‌دزدی بزرگ ۴ استفاده کرده است.





بازی اکشن-ماجراجویی

بازی اکشن-ماجراجویی (به انگلیسی: Action-adventure game) سبکی در بازی رایانه‌ای است که خود زیرمجموعهٔ سبک اکشن قرار می‌گیرد، بازیکن با بازی در این سبک، علاوه بر شرکت در صحنه‌های اکشن، در عمل درگیر داستان بازی نیز خواهید شد. همراه شدن صحنه‌های اکشن با ماجراجویی‌هایی مانند پنهان‌کاری و حل پازل‌های گوناگون، از جمله عناصر تشکیل‌دهنده این سبک از بازی‌ها به‌شمار می‌روند. بازی‌های ندانسته، توم ریدر، کیش یک آدم‌کش و اسپیلنترسل در این سبک قرار می‌گیرند.





لوئیز فرناندو لوپز

لوئیز فرناندو لوپز شخصیت خیالی قابل بازی در اتومبیل‌دزدی بزرگ ۴: حکایت گی تونی است که در که در لیبرتی سیتی زندگی می‌کند. او مباشر آنتونی پرینس (به انگلیسی: Anthony Prince) مشهور به گِی تونی (تونی همجنسگرا) (به انگلیسی: Gay Tony)، مالک چندین باشگاه شبانه در آمریکا است. در داستان بازی، لوئیز لوپز به همراه گی تونی درگیر ماجرای سرقت الماس‌های دو میلیون دلاری می‌شود که نیکو بلیک، جانی کلبیتز (که برای ری باچینو کار می‎کند) و رِی بولگارین نیز به دنبال آن هستند. در این ماجرا حوادث بسییار مرگباری برای لوئیز فرناندو لوپز و گی تونی رخ می‌دهد اما یک مرد ثروتمند عرب به نام یوسف امیر با آنان شریک می‌شود و آن‌ها را نجات می‌دهد اما به هر حال در پایان ماجرا، یک بی‌خانمان الماس‌ها را که در آشغالدانی گم شده‌بود پیدا می‌کند و به ثروت می‌رسد.






دربارهٔ لوئیز

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





فهرست شخصیت‌های اتومبیل دزدی بزرگ ۴
شخصیت‌های اصلی بازی اتومبیل دزدی بزرگ ۴ معرفی شده‌اند.






نیکو بلیک

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






رومن بلیک

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






ولاد

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






الیزابتا

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






مانی

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






بروس کیبوتس

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





نیکو بلیک
نیکو بلیک یا نیکو بلیچ (صربی سیریلیک: Нико Белић - صربی لاتین: Niko Belić) شخصیتی ساختگی در مجموعه بازی رایانه‌ای اتومبیل‌دزدی بزرگ است. او نقش اصلی و شخصیت قابل بازی در اتومبیل دزدی بزرگ ۴ است.






مقدمه

نیکو به عنوان شخصیت اصلی در بازی اتومبیل دزدی بزرگ 4 نقش دارد. او یک سرباز سابق 30 ساله است که برای فرار از گذشتهٔ تلخ و در جستجوی «رویای امریکایی» به شهر آزادی آمده است. او توسط پسر عمویش، رومن بلیک، به آمدن به امریکا ترغیب شده، کسی که در نامه هایش به نیکو ادعا داشت که زندگی عالی با زنهای زیبا، ماشین‌های آخرین مدل و پول بسیار در امریکا دارد. اما بعداً مشخص می‌شود که تمام اینها دروغی بیش نبوده است، رومن فقط یک آژانس تاکسی تلفنی در حال ورشکستگی دارد، مبلغ زیادی بدهی بالا آورده و تمام خلافکاران شهر برای سر او جایزه گذاشته‌اند. در واقع رومن با آگاهی از گذشته وحشتناک پسر عمویش، با این امید که نیکو او را از دست طلبکارانش نجات دهد، یا حتی دروغ او را به واقعیت تبدیل کند، وی را به امریکا کشانده است. با اینحال نیکو برای آمدن به امریکا دلایل دیگری هم در پشت پرده داشت، که در طول داستان بازی مشخص میشود. نیکو علاوه بر زبان انگلیسی، صربی هم صحبت می کند.






زندگی نامه

ملیت نیکو دقیقاً مشخص نشده، با این حال او به زبان صربی صحبت می کند. پدر نیکو یک دائم‌الخمر بوده که مدام بر او، مادر و برادرش (که در جنگ کشته شد) پرخاش می کرده است. میلیسا، مادر نیکو، که مادری دلسوز و مهربان بود از اینکه پسرش در چنین وضعیت سختی زندگی می کرد ناراحت بود. زیرا نیکو در دوران جنگ‌های یوگوسلاوی رشد می کرد، جنگی که بزودی نیکو که یک جوان خشمگین بود در آن شرکت کرد. نیکو شاهد بیرحمی‌های بسیاری در جنگ بود، مانند قتل‌عام و قطعه قطعه کردن 50 کودک، که باعث شد همیشه دید بدگامانه ای در زندگی اش داشته باشد، همراه با باری از حسرت و پشیمانی و افسردگی. خاطره مهم نیکو از جنگ زمانی است که گروه 15 نفره آنها که همگی مردان جوانی از دهکدهٔ او بودند، توسط دشمن قافلگیر شدند. او توانست از آن حمله فرار کرده و جان سالم بدر ببرد، اما چند هفته بعد دریافت که این حمله به دنبال خیانت یکی از اعضای گروه خودشان روی داده است. پس به جایی بازگشت که دوستانش توی گودال به خاک سپرده شده بودند، آنها را شمرد و هریک را شناسایی کرد، در نهایت دریافت که بجز او دو نفر دیگر هم جان سالم بدر برده‌اند: فلوریان کراویچ و دارکو برویچ. نیکو با خودش پیمان بست که فرد خائن را پیدا کند، نه فقط برای انتقام، قصد دیگر او التیام بخشیدن به وضع روحی‌اش بود و بازگشتن به زندگی خودش. علاوه بر این، نیکو در تمرین‌های ابتدایی ارتش مهارت‌های بسیاری را نیز آموخت، از جمله نبرد نزدیک، تیراندازی و شنا.

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

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

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

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

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

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

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






شخصیت

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

او بعضی از ویژگی‌های شخصیتی را نیز از زمان جنگ با خود همراه دارد؛ او همراهانش را بخاطر اینکه در شرایط خطرناک همه چیز را به بازی می گیرند، سرزنش می کند. بزرگترین ضعف نیکو این است که قادر نیست گذشته را فراموش کند-و همین ضعف، زمانی که تصمیم می گیرد کسانی که در جنگ به او و گروهشان خیانت کرده‌اند را پیدا کند، بارها به ضررش تمام میشود. نیکو چندین بار بخاطر ضعفی که دارد از سوی دوستانش، مخصوصا رومن مورد انتقاد قرار می گیرد. علاوه بر آن نیکو عقیده دارد یکی از اصلی‌ترین دلایلی که او را به امریکا کشانده، فراموش کردن و خاتمه دادن به خاطرات گذشته‌اش از جنگ است. نیکو با مواد مخدر میانه ای ندارد-او پیشنهاد جیکاب را برای کشیدن حشیش رد می کند، همچنین گهگاه تنفر خود را از هروئین ـی که معامله می کردند، اعلام می کند.





اتومبیل‌دزدی بزرگ: موسیقی متن

اتومبیل‌دزدی بزرگ: موسیقی متن آلبوم موسیقی متن بازی گرند دفت اوتو که در سال ۱۹۹۷ توسط دی‌ام‌ای دیزاین که امروزه با نام راک‌استار نرت می‌شناسیم، منتشر شد. کولین آندرسون، کرگ کونر و گرنت میدلتون آهنگ‌سازان این آلبوم هستند.






ترک‌های آلبوم
اتومبیل‌دزدی بزرگ: موسیقی متن
شماره عنوان مدت
1. «The Fix FM» ۷:۳۳
2. «Head Radio FM» ۹:۳۹
3. «Radio 76 (On 197.6 FM)» ۹:۴۳
4. «N-CT FM» ۷:۲۷
5. «Brooklyn Underground 77.7» ۸:۴۷
6. «It's Unleashed on 93.5 FM» ۱۱:۰۱
7. «The Fergus Buckner Show» ۳:۱۳
8. «Title Music» ۲:۱۷





اتومبیل‌دزدی بزرگ: ۱۹۶۹، لندن

اتومبیل‌دزدی بزرگ: ۱۹۶۹، لندن (به انگلیسی: Grand Theft Auto: London, 1969) بسته‌ی ماموریتی از بازی اتومبیل‌دزدی بزرگ و دومین بازی از سری اتومبیل‌دزدی بزرگ است که در تاریخ ۳۱ مارس ۱۹۹۹ برای ویندوز و ۳۰ آوریل ۱۹۹۹ برای پلی‌استیشن به بازار عرضه شد. این بازی از همانند بازی اتومبیل‌دزدی بزرگ از یک موتور استفاده شده است و به همین دلیل گرافیک و گیم‌پلی آن شباهت زیادی به نسخه اول دارد. این نسخه، اولین بسته‌ی ماموریتی‌ای بود که برای پلی‌استیشن عرضه شد.






موسیقی متن
اتومبیل‌دزدی بزرگ: ۱۹۶۹، لندن
شماره عنوان مدت
1. «Bush Sounds» ۴:۴۳
2. «Title Music» ۱:۳۱
3. «Heavy Heavy Monster Sound» ۵:۴۵
4. «Blow Upradio» ۱:۵۵
5. «Kaleidoscope» ۳:۱۲
6. «Sound of Soho» ۵:۰۰
7. «Radio Penelope» ۷:۰۱
8. «Radio Andorra» ۲:۲۲
9. «Westminster Wireless» ۷:۱۸
10. «Radio 7» ۵:۴۸
11. «Police Radio Track» ۳:۱۰
12. «GTA Pomp» ۲:۴۶
13. «GTA Spy Theme» ۳:۰۰
14. «Austin Allegro Chase» ۳:۱۴
15. «Ambient» ۱:۰۹
3:42 am
کاربرد برنامه نویسی

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





زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

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

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



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

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

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکسته‌ای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی می‌تواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) می‌آید.
یک لیست تعدادی پرانتز است که می‌تواند صفر یا چند عبارت در خود داشته باشد.

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

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

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

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

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

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




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


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

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.



نوع گذاری ایستا و متحرک

در نوع گذاری ایستا تمام عبارات نوع‌های خود را قبل از اجرای برنامه تعیین می‌کنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمی‌توانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.


زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



نوع گذاری قوی و ضعیف

نوع گذاری ضعیف این امکان را ایجاد می‌کند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

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

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


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “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 در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

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

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

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

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

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