صفحه‌کلید پیشرفته:

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






ابزارهای بهتر برای مدیریت دستگاه و کارایی بالاتر باتری:

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






پشتیبانی از دوربین مکالمه تصویری:

گرچه تا اواسط سال 2010 میلادی طول کشید تا سرویس Google Talk از قابلیت چت ویدئویی بهره‌مند شود، اما نان زنجبیلی زیرساخت لازم برای پشتیبانی از این امکان را دارا می‌باشد و می‌تواند به خوبی از دوربین‌های چندگانه در یک دستگاه پشتیبانی کند. گوگل نیز با هوشمندی و دور‌اندیشی سخت‌افزار این دوربین‌ها را از قبل در گوشی Nexus S جای داده بود گرچه تا مدت‌ها کاربران نمی‌توانستند از آن استفاده کنند!
گوگل از عرضه نان زنجبیلی به عنوان فرصتی برای سفت کردن جای پای خود در بازار بازی‌های ویدئویی بر بستر تلفن‌های همراه بهره‌برداری کرد

از دیگر قابلیت‌های تازه‌ی نان زنجبیلی می‌توان به این موضوع اشاره کرد که در این نسخه گوگل توجه خود را بیشتر به توسعه دهندگان معطوف ساخته بود تا کاربران نهایی. برای اثبات این ادعا می‌توان به پشتیبانی از NFC اشاره کرد که در گوشی‌ Nexus S وجود داشت. البته تا ماه‌ها، این قابلیت کارایی چندانی نداشت و تنها در برخی مراکز می‌شد از آن استفاده کرد. اما بعدتر گوگل از نسخه‌ی Sprint گوشی Nexus S برای راه‌اندازی کیف پول خود بهره برد، سیستم پرداخت ویژه‌ی موبایل که بسیاری از شرکت‌ها معتقدند آینده‌ی فناوری NFC در گروی آن خواهد بود و نان زنجبیلی زیرساخت لازم برای نیل به این مهم را دارا می باشد.

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






نسخه 3.0 یا «شانه‌ عسل»

اندروید نسخه 3 را می‌توان پدیده‌ای عجیب و کم نظیر دانست. سیستم عاملی که در حقیقت برای گوشی‌های هوشمند تلفن همراه نوشته شده بود، حالا توجه خود را به تبلت‌ها معطوف ساخته بود. به همین منظور گوگل رجعتی به موتورولا کرد، همان شرکتی که در ارائه اندروید 2.0 همکاری خوب و سازنده‌ای با آن داشت. آنها قصد داشتند تا دستگاهی در خانواده‌ی نکسوس بسازند تا کلیه قابلیت‌های برتر اندروید 3.0 را داشته باشد. که نهایتاً این همکاری به تولید تبلت Xoom منتج شد.
اندروید نسخه 3 را می‌توان پدیده‌ای عجیب و کم نظیر دانست. سیستم عاملی که در حقیقت برای گوشی‌های هوشمند تلفن همراه نوشته شده بود، حالا توجه خود را به تبلت‌ها معطوف ساخته بود







برخی از قابلیت‌های شانه عسل یا Honeycomb عبارتند از:
جایگزینی تم رنگی آبی به جای سبز:

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

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






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






بهینه‌سازی قابلیت چندوظیفه‌ای:

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






نمونه‌ای تازه از چینش برنامه‌ها:

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

اندروید 3.1 و 3.2 با عنوان یکسان هر یک نسخه‌های اصلاحی بودند که برای اندروید 3.0 منتشر شدند. با این حال هر یک از این نسخه‌ها توانستند قابلیت‌های مهمی را از خود نشان دهند که به خصوص برای تبلت‌ها از اهمیت ویژه‌ای برخوردار بودند. در نسخه 3.1 پشتیبانی از ویجت‌های صفحات خانگی قابل، تغییر ارائه شد (برای این منظور نشانه‌ی لنگر مانند ویژه‌ای نمایش داده می‌شد که کاربر می‌توانست برای ارزیابی اندازه از آن کمک بگیرد).






نسخه 4.0 یا «ساندویچ بستنی»
این نسخه از اندروید را اولین بار در گوشی Galaxy Nexus مشاهده کردیم، که رجعتی به برنامه نکسوس گوگل و همکاری مجدد این شرکت با سامسونگ کره جنوبی است. کمتر از یک سال قبل از آن این دو شرکت، گوشی Nexus S را همراه با اندروید نان زنجبیلی ارائه کرده بودند.
ساندویچ بستنی یا Ice Cream Sandwich را می‌توان بی شک بزرگترین تغییر اندروید در حوزه گوشی‌های هوشمند به شمار آورد

ساندویچ بستنی یا Ice Cream Sandwich را می‌توان بی شک بزرگترین تغییر اندروید در حوزه گوشی‌های هوشمند به شمار آورد.

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

کاربران همیشگی اندروید با فونت‌های بکار گرفته شده در این سیستم‌عامل به خوبی آشنایی دارند. گوگل برای ارائه حس بهتر به کاربرانش در این نسخه از فونت تازه‌ای با نام Roboto استفاده کرده است که قرار است به خوبی با صفحات نمایش با کیفیت امروزی همراه شد و به قول ماتیاس دوآرت (Matias Duarte)، مدیر طراحی پروژه‌ اندروید، «حس بهتر آزادی و حجم بالای اطلاعات موجود را به کاربران ساندویچ بستنی ببخشد».

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

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

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






ارتقای صفحه خانگی:

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

میانبر برنامه‌های تلفن و مرورگر به طور دائمی به پایین صفحه متصل شده است. کادر مزبور نیز به کاربر اجازه می‌دهد تا میانبر برنامه‌های دلخواه را به آن منتقل کند. (که این میانبرها می‌تواند شامل برنامه‌های Phone ،People، پیام‌رسان (Messaging)، مرورگر با هر مورد دیگری باشد).






قابلیت Android Beam:

پشتیبانی از فناوری NFC پس از عرضه نسخه‌ی نان زنجبیلی و گوشی Nexus S بسیار چشمگیر شد اما به جز برنامه Google Wallet مورد کاربردی و عملی دیگری را نمی‌توان در این بین برشمرد که بتواند از چنین قابلیت‌هایی بهره ببرد. در این بین ICS نظر به تغییر این رویه دارد و به همین منظور قابلیت Android Beam را اضافه کرده است که به دو گوشی دارای چنین برنامه‌ای اجازه می‌دهد تا انتقال داده‌ها را به سادگی انجام دهند.






قفل تشخیص چهره:

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






تحلیل میزان استفاده از پهنای باند:

همانطور که اندروید نان زنجبیلی مصرف بهینه انرژی باتری را مد نظر داشت، در اندروید 4.0 نیز همین اتفاق برای استفاده از پهنای باند صورت گرفته است. بدین ترتیب کاربر قادر خواهد بود تا میزان مصرف پهنای باند هر یک از برنامه ها را به صورت منفرد یا کلی تحلیل نموده و زیر نظر بگیرد.






برنامه‌ی جدید تقویم و مدیریت ایمیل:

برنامه‌ جیمیل در اندروید 4.0 با بازطراحی مواجه شده و تجربه‌ی تازه‌ای را به کاربر خود اهدا می‌کند، از این پس این برنامه‌ از قابلیت Action Bar پشتیبانی خواهد کرد. برنامه تقویم (Calendar) نیز برای نخستین بار رویکردی یکپارچه را در پیش خواهد گرفت که برای افرادی که به دنبال استفاده از چندین حساب کاربری در یک برنامه هستند گزینه‌ی خوب و قابل قبولی است.






نسخه 4.1 یا «آبنبات پاستیلی»
گوگل در نشست I/O سال 2012 از نسخه 4.1 سیستم عامل اندروید خود پرده برداری کرد. قابلیت‌های این نسخه نیز بسیار فراتر از آن عدد 0.1 است و می‌توان به نسبت نسخه ساندویچ بستنی ویژگی‌های بسیار بیشتری را در آن یافت. آبنبات پاستیلی یا Jelly Bean را می‌توان بازتعریف استراتژی گوگل در بازار تبلت‌ها دانست چرا که این نسخه از اندروید بر روی تبلت Nexus 7 ایسوس نصب شده است. از سوی دیگر با طراحی مجدد اجزای گوناگون، این آبنبات پاستیلی خوشمزه می‌تواند ارائه‌گر تجربه‌ی جدیدی به کاربران باشد.
آبنبات پاستیلی یا Jelly Bean را می‌توان بازتعریف استراتژی گوگل در بازار تبلت‌ها دانست چرا که این نسخه از اندروید بر روی تبلت Nexus 7 ایسوس نصب شده است

بیایید نیم نگاهی به این نسخه از سیستم‌عامل موبایل گوگل بیاندازیم و از صفحه‌ی خانگی بررسی را آغاز کنیم. در این بخش به نظر نمی‌رسد که تغییر محسوسی وجود داشته باشد، اما با نگاهی موشکافانه درمی‌یابیم که بهینه سازی‌هایی صورت پذیرفته است. (نشانگر ماوس را برروی تصویر بالا نگه دارید!) از این گذشته گوگل مدعی است که قابلیت‌های بصری و لمسی این سیستم عامل را با بکارگیری واحد گرافیک سه‌گانه ارتقا داده و بدین ترتیب بازنگاری کلیه تصاویر گرافیکی را به 16 میلی ثانیه تقلیل داده است. این برنامه در جهت حرکت نرم و روان در بین منو‌ها و صفحات صورت پذیرفت، به «پروژه کَره» معروف شد. از این گذشته آنها مدعی انجام تغییرات مثبتی در بخش لمسی و ورود اطلاعات دستگاه هستند. از زمان ارائه اندروید، کارایی این سیستم عامل همیشه از نظر بخش لمسی عقب‌تر از iOS اپل بوده است، اما به نظر می‌رسد که گوگل می‌کوشد تا این اختلاف را از بین ببرد.






Google Now ویژگی بسیار مهمی است در نسخه ۴.۱ اندروید معرفی شد

بی‌شک Google Now یکی از بزرگ‌ترین و مهم‌ترین بلندپروازی‌های گوگل است. اندروید هم‌اکنون به عنوان یک پلتفرم کامل محسوب می‌شود که قادر به پردازش انواع داده‌ها، زمانبدی امور، مکان، زمان و... است.

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

از دیگر قابلیت‌های اندروید 4.1 (آبناب پاستیلی) می‌توان به این موارد اشاره کرد:
بازطراحی فونت Roboto:

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






توسعه و دستورپذیری بخش اعلانات:

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






انعطاف‌پذیری ویجت‌ها:

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






پیش‌بینی متون:

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






اندروید 4.2 با همان نام آبنبات پاستیلی

گوگل به همراه تلفن نکسوس ۴ و تبلت نکسوس ۱۰ از سیستم‌عامل اندروید 4.2 نیز پرده برداری کرد. گوکل اندروید 4.2 را «طعم تازه‌ای از آبنبات پاستیلی» می‌نامد و دلیل آن هم شباهت زیاد این نسخه نسبت به اندروید 4.1 است. اما این بدین معنی نیست که اندروید 4.2 فاقد قابلیت‌های اساسی و تازه است. در ادامه لیستی از قابلیت‌های جدید اندروید 4.2 را مشاهده می کنید:






اتصال بی‌سیم به تلویزیون از طریق Miracast

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






ژست‌های تازه کی‌برد

اندروید ۴.۲ از ژست‌های تایپی تازه‌ای در کی‌برد بهره می‌برد. شما تنها کافی‌ است تا انگشت خود را برروی حروف کلمه مورد نظر خود بکشید، تا سیستم‌ کلمه مورد نظر شما را تشخیص دهد. همانطور که حتما حدس زده‌اید این قابلیت کاملا شبیه به آن چیزی است که پیش‌تر در کی‌برد Swype مشاهده کرده بودیم. علاوه بر این صفحه‌کلید اندروید ۴.۲ بصورت خودکار کلمات مکمل را نیز پیشنهاد می‌دهند. به عنوان مثال شما وقتی با کشیدن انگشتان خود برروی حروف، کلمه Good را تایپ می‌کنید کلمه Morning نیز پیش‌بینی شده و به شما پیشنهاد می‌شود.






عکاسی پاناروما

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






استفاده چندکاربر از یک تبلت

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

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

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

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






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

اندروید 4.3 آبنبات پاستیلی در روز ۲۴ جولای ۲۰۱۳ بر روی نکسوس 7 دوم معرفی گردید. این بروزرسانی فقط شامل برخی ویژگی های جزئی نسبت به نسخه قبلی اندروید است. پشتیبانی از چند کاربر با پروفایل‌های کاملا مجزا یکی از اصلی‌ترین ویژگی‌های اندروید 4.3 است.

گوگل مدت‌ها بود که سعی می‌کرد، تجربه بازی بر روی تبلت‌ها را بهبود بخشد و نسخه 4.3 آبنبات پاستیلی گامی مهم در این راستا محسوب می‌گشت، چرا که این سیستم عامل توان پشتیبانی از استاندارد گرافیکی OpenGL ES 3.0 (یک موتور نرم‌افزاری پیشرفته برای بازی) را با خود به همراه داشت. پس از این بود که اپل نیز پس از مدت کوتاهی با بروزرسانی سیستم عامل iOS، پشتیبانی از این موتور نرم‌افزاری را به دستگاه‌های خود اضافه کرد تا همچنان در صنعت بازی همراه، یکه‌تاز میدان باشد.

سایر قابلیت‌های اندروید 4.3 عبارتند از پشتیبانی از TRIM برای بهبود مدیریت منابع حافظه، بلوتوث هوشمند برای استفاده بهینه‌تر از لوازم جانبی کم مصرف، سیستم صوتی Virtual Sorround، شماره‌گیر هوشمندتر که شماره مدنظر کاربر را پیش‌بینی می کند و سرویس مکان‌یابی مبتنی بر Wi-Fi بهینه‌تر.

اندروید 4.3 در واقع پروژه تکمیل و تصحیح آبنبات پاستیلی بود که بهترین تجربه استفاده از اندروید آبنبات پاستیلی را بر روی دستگاه‌های مختلف ارائه می نمود.





اندروید 4.4 کیت‌کت
اکتبر ۲۰۱۳ زمان معرفی نسخه کاملا جدید و متفاوتی از سیستم عامل خوشمزه اندروید بود. کیت‌کت به همراه گوشی فوق‌العاده قدرتمند نکسوس ۵ معرفی گردید و این اولین باری بود که با همکاری یک برند دیگر، اندروید جدید خود را نام‌گذاری می‌نمود.

نستله، تولیدکننده بیسکوئیت‌های کاکائویی مشهور کیت‌کت به همکاری با گوگل پرداخت و این دو شرکت کمپین‌های تبلیغاتی مشترک بسیاری را نیز برپا نمودند.

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

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

گوگل می‌گوید که «با اندروید کیت‌کت به دنبال ارائه تجربه کاربری عالی برای همه» است.

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

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

مهم‌ترین ویژگی‌های اختصاصی اندروید 4.4 کیت‌کت عبارتند از: یکپارچه شدن Google Now با صفحه خانه، شماره‌گیر هوشمند کاملا جدید که بر اساس نیازهای کاربر تنظیم می‌گردد، اپلیکیشن‌های تمام صفحه به لطف نوار اطلاع‌رسانی و نوار کنترل شفاف، اپلیکیشن یکپارچه هنگ‌اوت برای تمام پیام‌رسانی‌ها، اپلیکیششن‌های «ساعت» و «دانلودها»ی بازطراحی شده، کیبورد جدید و پشتیبانی از Emoji ها و شکلک‌ها، بهینه‌سازی‌هایی در امکانات و بهره‌وری دستگاه‌های اندرویدی (مثل اضافه شدن اپلیکیشن Quicoffice و قابلیت‌های جدید Play Books و Play Newsstand) و پشتیبانی از عکاسی +HDR.
6:07 pm
برنامه‌نویسی

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

برنامه‌نویسی کامپیوتر (که اغلب در انگلیسی programming یا coding گفته می‌شود) فرایند نوشتن، اشکال زدایی(debug) و نگهداری کد منبع (source code) برنامه کامپیوتر می‌باشد. این کد منبع با یک زبان برنامه نویسی نوشته شده است. این کد منبع ممکن است تغییر داده شده یک کد قبلی و یا یک کد کاملاً جدید باشد. هدف برنامه نویسی ساختن یک برنامه می‌باشد که یک رفتار خواسته شده را به نمایش بگذارد.






تاریخچه
موضوع دستگاه‌هایی که به دنباله‌ای از دستورالعمل‌های از قبل تعریف شده عمل می‌کند بر می‌گردد به Greek Mythology.

برنامه نویسی مدرن
اندازه گیری کاربرد زبان

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


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



برنامه‌نویسی دستوری

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

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





زبان برنامه‌نویسی

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

نسل اول زبان ماشین - زبان صفرو یک
نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
نسل سوم زبانهایی مانند کوبول و پی ال وان و... -دستورات قابل فهم تر برای انسان و نیاز به کمپایلرها
نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها - نزدیک به محاوره‌های انسانی
نسل پنج زبانهایی مانند prolog , ops5 - تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط

برنامه نویس

یک زبان برنامه نویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شده‌است.زبان‌های برنامه نویسی برای ایجاد برنامه‌هایی به کار می‌روند که رفتار یک ماشین را مشخص می‌کنند، الگوریتم دقیق را بیان می‌کنند، و یا روشی برای ارتباط انسانند. بسیاری از زبان‌های برنامه نویسی تعدادی قالب از ویژگی‌های نوشته شده دستوری(syntax) و معناشناسی (semantics) دارند، چرا که رایانه‌ها دستورات دقیقاً مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شده‌اند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیاده سازی غالبی می‌باشند.(مانند Perl) اولین زبان برنامه نویسی به قبل از اختراع رایانه باز می‌گردد، و برای هدایت رفتار ماشین‌هایی مانند دستگاه‌های نساجی اتوماتیک و نوازنده‌های پیانو به کار می‌رفت. هزاران زبان برنامه نویسی خلق شده‌اند، بیشتر در زمینهٔ رایانه، زمینه‌ای که هر ساله بسیاری دیگر ایجاد می‌شوند.


تقسیم‌بندی
زبان‌های برنامه نویسی را می‌توان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد: الف)روش‌های برنامه نویسی ۱-زیر روالی ۲-ساخت یافته ۳-مدولار ۴-شئ گرا ب)نزدیکی به زبان ماشین ۱-سطح پایین ۲-سطح میانی ۳-سطح بالا ج)نوع ترجمه ۱-مفسری ۲-کامپایلری د)رابط برنامه نویسی ۱-مبتنی بر متن ۲-مبتنی بر گرافیک (ویژوال)



تعاریف

ویژگی‌هایی که غالباً برای تشکیل یک زبان برنامه نویسی مهم شمرده می‌شوند:

تابع :یک زبان برنامه نویسی، زبانی است که برای نوشتن برنامه‌های رایانه‌ای به کار می‌رود که رایانه‌ای را برای انجام محاسبات یا اجرای الگوریتم و یا احتمالاً کنترل دستگاه‌های خارجی مثل چاپگر، ربات و... درگیر می‌کنند.





هدف: زبان‌های برنامه نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورات با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(post script) غالباً توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد می‌شوند.
ساختارها: زبان‌های برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
توان بیانگر: نظریه محاسبات، زبان‌ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی می‌کند. تمام زبان‌های "کامل تورینگ" می‌توانند مجموعه یکسانی از الگوریتم‌ها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثال‌هایی هستند از زبان‌هایی که کامل تورینگ نیستند، ولی غالباً زبان برنامه نویسی نامیده می‌شوند.

برخی مولفین اصطلاح" زبان برنامه نویسی" را محدود به آنهایی می‌کنند که می‌توانند تمام الگوریتم‌های ممکن را پیاده سازی کنند، گاهی اوقات اصطلاح" زبان رایانه" برای زبان‌های برنامه نویسی محدودتر به کار می‌رود. زبان‌های غیر محاسباتی، مانند زبان‌های مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولاً زبان برنامه نویسی محسوب نمی‌شوند. یک زبان برنامه نویسی(که می‌تواند کامل تورینگ نباشد) ممکن است در این زبان‌های غیر محاسباتی (میزبان) تعبیه شوند.


کاربرد

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

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

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




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


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

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

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



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

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

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
ساعت : 6:07 pm | نویسنده : admin | کاکاپو | مطلب قبلی
کاکاپو | next page | next page