تاریخچه
شاید بتوان اولین ایدهٔ مکتوب در مورد وسیلهٔ نقلیه‌ای را که بدون نیروی انسان یا حیوانات قادر به حرکت باشد، در ایلیاد اثر هومر یافت. در قسمتی از رمان، هفاستوس (خدای آتش و فلزکاری) یک سه‌چرخهٔ متحرک می‌سازد و از آن برای جابجایی استفاده می‌کند. ∗ اما در عالم واقع، این وسیله برای اولین بار در سال ۱۶۷۸ توسط پدر فردیناند فربیست مبلغ مسیحی بلژیکی در چین طراحی و ساخته شد که توسط






بخار کار می‌کرد. این خودرو اولیه ۶۵ سانتی متر طول داشت و به عنوان وسیله سرگرمی برای امپراطور چین ساخته شده بود. اولین اتومبیل واقعی با نیروی بخار که برای جابجائی انسان و بار بکار گرفته شد در سال ۱۷۶۷ توسط نیکلاس جوزف کان فرانسوی طراحی و ساخته شد. خودرو کان می‌توانست ۴ تن بار به همراه ۲ خدمه را با سرعت ۷/۸ کیلومتر بر ساعت به حرکت در آورد. اولین تصادف خودروئی جهان نیز با این خودرو در سال ۱۷۷۱ اتفاق افتاد.

موتور احتراقی در سال ۱۸۶۰ میلادی به‌وسیلهٔ یک بلژیکی به نام اتین لونوار اختراع شد. پس از آن، روند تکامل صنعت خودروسازی تداوم یافت و در بین سال‌های ۱۸۶۰ تا ۱۹۷۰ میلادی در اروپا اختراعات مختلفی به وسیله چند تن از مهندسان انجام گرفت.

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

اختراع خودرو به کارل بنز نسبت داده می‌شود. او در سال ۱۸۸۵ موفق به ساخت اولین خودرو با موتور احتراقی گردید. در سال ۱۸۸۸ برتا بنر همسر کارل بنز اولین سفر خودروئی را با خودرو سه چرخ ساخت بنز انجام داد. در این سفر او فاصله ۱۰۶ کیلومتری مانهایم تا فورتزهایم را برای بر گرداندن فرزندانش ریچارد و یوگن بصورت رفت و طی کرد. او دلیل این سفر را دیدار مادرش در فورتزهایم ذکر کرد ولی در حقیقت هدف او از این سفر نشان دادن قابلیتهای خودرو بود.

درعین حال، برخی به اشتباه، هنری فورد را به عنوان مخترع خودرو می‌دانند. این اشتباه به این خاطر رخ می‌دهد که هنری فورد، در واقع، ایدهٔ تولید اتومبیل ارزان قیمت را تحقق بخشید و استفاده از خودرو را در مقیاس گسترده و توسط مردم عادی امکان‌پذیر نمود. هنری فورد در سال ۱۸۹۱ یک موتور کوچک گازوئیلی طراحی کرد و سه سال بعد، یک ماشین گازوئیلی ساخت که به نام کالسکه بدون اسب شناخته می‌شود. ۵ سال بعد، هنری فورد طراحی ماشین‌های موسوم به مدل A و مدل T را آغاز کرد. او سرانجام توانست خط تولید و مونتاژ این اتومبیل‌ها را توسعه دهد تا تولید ماشین‌ها سریع‌تر و اقتصادی‌تر شود. مدل T اتومبیلی بود که در همه جای اروپا به‌راحتی استفاده می‌شد و موتورش آنقدر قوی بودکه در زمین‌های ناهموار به راحتی حرکت می‌کرد. این اتومبیل، به سادگی تعمیر می‌شد و حتی یک کشاورز با کمی دقت می‌توانست قطعات معیوب آن را عوض کند. قیمت این اتومبیل در آن زمان، ۸۵۰ دلار بود. این قیمت اگرچه نسبت به درآمد مردمان عادی، قیمت بالایی محسوب می‌شد، ولی نسبت به اتومبیل‌های زمان خودش بسیار ارزان بود.







چندی از مقاطع بسیار مهم و تحولات اساسی در تاریخچه خودرو:

سال ۱۷۶۷ میلادی: ساخت اولین وسیله نقلیه خودروئی قابل استفاده توسط کان
سال ۱۸۷۶ میلادی: ساخت موتور چهارزمانه توسط اتو و لانگن
سال ۱۸۸۳ میلادی: ساخت موتور کاربوراتوردار با دور زیاد توسط دیملر
سال ۱۸۸۴میلادی: ساخت اولین موتور سیکلت با قدرت ۲/۱ اسب بخار توسط دیلمر
سال ۱۸۸۵ میلادی:ساخت اتومبیل سه چرخه با دستگاه اشتعال برقی توسط بنز
سال ۱۸۹۳ میلادی: ساخت کاربراتورردولف دیزل
سال ۱۹۰۰ میلادی: طراحی ساختمان کلی اتومبیل به نحوی که امروزه هم رایج است
سال ۱۹۲۴ میلادی: ساخت یک خودرو با استفاده از موتور دیزل توسط کارخانه بنز
سال ۱۹۵۷ میلادی: ساخت موتور وانکل







ساختمان خودروها

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

مولد قدرت(موتور): در این واحد که انرژی شیمیایی بنزین به انرژی مکانیکی تبدیل می‌شود حرارت ناشی از سوختن هیدروکربورها با بالاتر از ۷۰۰درجهٔ سانتیگراد می‌رسدکه به علت بازده مفید سیستم از هر ۴ قسمت حرارت تولید شده۱ قسمت به انرژی مکانیکی تبدیل می‌شدو بقیه به صورت هوای گرم یا دودهای حاصل از احتراق از موتور خارج می‌شود

در یک موتور در حدود ۱۲۰ تا ۱۵۰ قطعهٔ متحرک وجود دارد که همه نیاز به روغن کاری دارند با توجه به درست کار کردن سیستم روغنکاری و لی باز هم عمر مفید یک خودرو ۸ سال کار و یا پیمودن۱۵۰۰۰۰کیلومترمسافت است.در حقیقت، عملکرد موتور چهار مرحله است که به اختصار به توضیح آن‌ها می‌پردازیم.

1. در مرحله اول، سوپاپ ورود هوا باز شده و با حرکت رو به پایین پیستون، مخلوط هوا و سوخت وارد سیلندر می‌شود.

2. در این مرحله، سوپاپ‌ها بسته شده و با حرکت رو به بالای پیستون، مخلوط هوا و سوخت به شدت فشرده می‌شود.

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

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

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







طرز کار خودرو

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

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






خودروی پرنده

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






خودروی برقی

خودرو برقی به خودروی می‌گویند که از باتری جهت نیروی محرکه به‌جای موتور درون‌سوز استفاده می‌کند.

اولین خودروهای برقی در قرن نوزدهم ظاهر شدند. تولید اینگونه خودروها با تولید انبوه اتومبیل احتراقی دچار افت شدید گردید. اما برخی خودروهای برقی همانند تسلا رودستر (یک خودروی لوکس برقی) و جنرال موتورز ای‌وی-۱ موفقیت آمیز بوده‌اند.






برخی نمونه خودروی برقی

خودروی تماماً الکتریکی Tesla Model S، سریع‌ترین خودروی سدانی است که تاکنون در آمریکا ساخته شده. جالب است بدانید که 0 تا 100 این خودرو چیزی درحدود 3.9 ثانیه است. قدرت موتور این خودرو 416 اسب بخار معادل یک Audi R8 تولید شرکت تیونیگ "منصوری" است. در Tesla Model S که از بدنه‌ای آلومینیومی ساخته شده است، یک موتور الکتریکی 16,000 دوربردقیقه با گشتاور 600 نیوتن-متر به‌کار رفته است. این موتور توسط تعداد بسیار زیادی از پکیج‌های باتری متشکل از 7,000 سلول لیتیم ـ یون که در کف خودرو جاسازی شده‌اند، به چرخش درمی‌آید و نکته قابل‌توجه همین باتری‌ها هستند که وزنی در حدود 455 کیلوگرم دارند. باتری‌ها در هر شکل و اندازه‌ای می‌توانند باشند. شارژ باتری‌های این خودرو از طریق شارژرهای 110 ولت یا 220 ولت خانگی به راحتی امکان‌پذیر است.






REVA

خودروی REVAi که در بریتانیا به نام G-Wiz شناخته می‌شود یک خودروی کوچک الکتریکی است که به وسیله تولیدکننده هندی به نام REVA Electric و از سال ۲۰۰۱ تولید می‌گردد. شرکت REVA تا سال ۲۰۱۱ بیش از ۴۰۰۰ دستگاه از این نوع خودرو را در ۲۶ کشور جهان به فروش رسانده‌است. در بسیاری از کشورها REVAi استانداردهای کافی جهت به رسمیت شناخته شدن به عنوان یک خودروی کامل را بدست نیاورده به نحوی که در سایر کلاسها نظیر خودروی شبه برقی در آمریکا و چهارچرخه موتوری در اروپا طبقه‌بندی شده‌است. این خودرو در ابتدا تحت نام REVA شناخته می‌شد که بعداً با تغییرات و بهینه سازی‌های انجام شده بر روی آن تحت نام REVAi و با قابلیت‌های بهتر عرضه گردید. رویهمرفته مدل قدیمی و جدید آن لقب پرفروشترین خودروی برقی جهان را تا اواخر سال ۲۰۰۹ به خود اختصاص داده‌است.






طراحی

REVAi یک خودروی هاچ بک ۳ در و کوچک است که دارای ابعاد 2.6m طول، 1.3mعرض و 1.5m ارتفاع می‌باشد. این خودرو قابلیت حمل ۲ بزرگسال در جلو و ۲ کودک را در صندلیهای عقب دارا بوده و صندلیهای عقب می‌توانند به منظور ایجاد فضا برای حمل بار بیشتر کاملاً خوابانده شوند. حداکثر وزن مسافر و بار این خودرو به صورت توام ۲۷۰ کیلوگرم می‌باشد. REVAi به منظور سفرهای درون شهری و به ویژه تردد بین منزل و محل کار خصوصاً در ترافیکهای سنگین طراحی شده و در اروپا این خودرو تحت عنوان چهارچرخه سنگین (Category L7) طبقه بندی شده‌است. این خودرو دارای اجازه صادرات به آمریکا است به شرطی که دارای محدودکننده سرعت به کمتر از ۲۵ مایل در ساعت بوده و به منظور رفت‌وآمدهای کوتاه (Neighborhood Electric Vehicle) از آن استفاده گردد.






مدل‌ها
REVA

مدل اولیه این خودرو که از سالهای ۲۰۰۱ تا ۲۰۰۷ تولید می‌شد REVA نام گرفت (در بریتانیا G-Wiz). نیروی محرکه این خودرو از طریق یک موتور 4.8 Kw (4.6 hp) تامین می‌گردد که توسط یک کنترلر DC با جریان خروجی 400A کنترل شده و حداکثر توان آن به 13.1kw (17.6hp) بالغ می‌گردد. این توان از طریق ۸ عدد باتری 6V-200Ah که به صورت سری و دارای ولتاژ نهایی 48V هستند بدست آمده و در زیر صندلی جلوی خودرو تعبیه شده‌اند. این مدل به دلیل عدم وجود شاسی قدرتمند قادر به گذراندن تستهای استاندارد تصادف با سرعت 40 km/h (25mph) نبود.






REVAi

در ژانویه سال ۲۰۰۸ یک مدل جدید از این خودرو به نام REVAi به بازار معرفی شد که دارای یک سیستم درایو AC است و باعث می‌شود سرعت آن به حداکثر 80km/h (50mph) افزایش یابد. این درایو ۳۵۰ آمپری یک موتور AC سه فاز با توان حداکثر 13Kw (17 hp) که نیروی محرکه خودرو است را کنترل می‌نماید. همانند مدل REVA توان الکتریکی این خودرو نیز از طریق ۶ عدد باتری 6V-200Ah که در زیر صندلیهای جلو تعبیه شده‌اند بدست می‌آید. این خودرو دارای یک سوئیچ تقویتی (boost) می‌باشد که با فعال شدن آن ۴۰% گشتاور اضافی جهت شتابگیری بهتر و توانائی بالا رفتن از مسیرهای کوهستانی به آن افزوده شده و حدکثر سرعت آن را نیز به 80km/h می‌رساند. وزن این خودرو 665kg بوده که 270kg از آن مربوط به باتریهاست. مسافت نرمال پیموده شده توسط REVAi با یک بار شارژ حدود 80km است که البته درصورت رانندگی سریع یا استفاده از بخاری و کولر خودرو این مسافت کاهش خواهد یافت. جهت تصحیح مشکلات ایمنی مدل قبلی با همکاری شرکت لوتوس، ویژگیهای ایمنی متعدد و جدیدی به این خودرو افزوده شده‌است که از جمله ترمزهای دیسکی در جلو و شاسی تقویت شده را می‌توان نام برد که به خوبی تست‌های تصادف در سرعت 40km/h را بوسیله موسسه استاندارد ARIA در کشور هند گذرانده‌است.






REVA L-ion

در ژانویه سال ۲۰۰۹ مدل جدیدی به بازار ارائه شد که REVA L-ion نام گرفت. این مدل از نظر ظاهر مشابه مدل REVAi است ولی باتریهای آن از نوع Li-ion (Lithium-ion) بوده که علاوه بر کاهش وزن خودرو به 565kg، کاهش زمان شارژ به ۶ ساعت و افزایش مسافت طی شده بعد از یک شارژ کامل تا 120km را نیز به همراه داشته‌است. همچنین عملکرد این باتریها کمتر تحت تاثیر تغییرات دما قراردارد. علاوه بر تغییر در باتریها، REVA L-ion دارای یک پانل خورشیدی جهت شارژ باتریها به وسیله انرژی خورشیدی برروی سقف آن است. همچنین افزون بر باتری شارژر نصب شده برروی خودرو، یک ایستگاه شارژ باتری ۳فاز که نیازمند اتصال برق ۳فاز است نیز آماده ارائه می‌باشد که در عرض ۱ ساعت قادر به شارژ ۹۰ درصد ضرفیت باتری‌های خودرو خواهد بود.






قیمت

بیش از ۴۰۰۰ دستگاه از مدلهای مختلف REVA تا اواسط مارس ۲۰۱۱ فروخته شده که کشورهای واردکننده این خودرو عبارتند از: اتریش، برزیل، شیلی، کلمبیا، کاستاریکا، قبرس، فرانسه، آلمان، یونان، مجارستان، ایسلند، هند، ایرلند، نروژ، ژاپن، مالتا، موناکو، نپال، جزایر نورفولک، پرو، فیلیپین، پرتغال، اسپانیا، سریلانکا و بریتانیا. قیمت این خودرو، هم اکنون در بریتانیا تقریباً ۹۹۹۵ یورو برای مدل استاندارد (مدل G-Wiz) است. این خودرو از پرداخت شارژ مربوط به نقاط پرترافیک لندن معاف است چرا که به عنوان خودروی الکتریکی طبقه‌بندی شده‌است. این خودرو همچنین در کشورهای اروپایی دیگر نظیر اسپانیا و نروژ نیز فروخته شده‌است. در کاستاریکا، REVAi در مارس ۲۰۰۹ وارد شد و به قیمت ۱۳۰۰۰ دلار آمریکا فروخته شد. در بازار شیلی این خودرو ۱۲۰۰۰ دلار آمریکا قیمت گذاری شده‌است. در جمهوری ایرلند خودروی REVAi به قیمت ۱۱۵۰۰ یورو قیمت گذاری شده و مدل بهتر آن با نام REVA L-ion به قیمت ۱۷۵۰۰ یورو به فروش می‌رسد. همچنین در هندوستان REVA به مبلغ ۳۵۰،۰۰۰ روپیه به فروش رسیده و هزینه شارژ آن 0.8 cent/Km برآورد می‌گردد که باید در کنار قیمت 1.3 USD/Liter برای بنزین در هند مورد توجه قرار گیرد.






ملاحظات ایمنی

REVA از اکثر مقررات ایمنی تصادفات در اروپا به دلیل وزن کم و طبقه‌بندی شدن در ردیف چهارچرخه‌های سنگین به جای خودرو معاف شده‌است. دپارتمان حمل و نقل بریتانیا پس از آزمون تصادم، یک دستگاه خودروی REVA مدل G-Wiz (که اکنون از رده تولید خارج است) با مانع غیر قابل انعطاف در ۲۴ آوریل ۲۰۰۷، ملاحظات جدی ایمنی را در این خودرو مشخص نمود. مشابه همین تست، یک آزمایش دیگر نیز که به وسیله مجله Top Gear و بر اساس مقررات تست تصادفات NCAP اروپا انجام پذیرفت، مشخص کرد که سرنشینان این خودرو در تصادفات با سرعت 64 Km/h متحمل صدمات جدی و بعضاً بسیار جدی خواهند شد. در نتیجه آزمونهای یاد شده، مدلهای REVAi و REVA L-ion شامل ویژگیهای متعدد ایمنی نظیر ترمزهای دیسکی جلو و شاسی تقویت شده و با طراحی مجدد هستند که آزمون تصادفات آن توسط ARAI در هند موفقیت‌آمیز بوده‌است. فیلم آزمون تصادف از جلوی مدل جدید با سرعت 40 Km/h هم اکنون به صورت آنلاین در دسترس قراردارد. کمپانی تولید REVA (RECC) در سال ۲۰۰۸ مدعی شد که این خودرو دارای رکورد ایمنی عالی است به نحوی که در مجموع ۸۰ میلیون کیلومتر کاربرد این خودرو در سراسر جهان، حتی یک مورد فوت یا وارد آمدن صدمه جدی به سرنشینان رخ نداده‌است.






ریزترین خودروی برقی جهان

خودروهای برقی متعددی طی سالهای گذشته تولید شده‌اند که از ابعاد کوچکی برخوردار بوده‌اند، با این همه تمامی این خودروهای کوچک در مقایسه با خودروی برقی که دانشمندان سوئیسی ابداع کرده‌اند بسیار غول پیکر به شمار می‌روند. به گزارش خبرگزاری مهر، گروه سوئیسی «امپتا» طی همکاری با دانشمندان هلندی دانشگاه گرونینگن یکی از بی نظیرترین خوردوهای برقی جهان را ساخته‌اند که ابعاد آن 4x2 نانومتر است.

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

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

بر اساس گزارش گیزمگ، اجرایی کردن این کار برای هماهنگ سازی حرکت همزمان چرخها در عمل بسیار دشوار است با این همه در نهایت پس از ۱۰ تحریک الکتریکی، نانوخودرو توانست ۶ نانومتر به جلو حرکت کند.






کاربرد خودرو

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







ترابری:

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







تولید توان کششی:

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






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






بررسی

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






خودروی اسپرت در مقابل خودروهای ورزشی

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

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





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

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

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

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

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

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

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

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