موضوع مقاله: جان باکوس | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # جان باکوس | مقدمه: جان وارنر باکوس (زاده ۳ دسامبر، ۱۹۲۴ (میلادی) - درگذشته ۱۷ مارس، ۲۰۰۷ (میلادی دانشمند آمریکایی در زمینهٔ علم رایانه بود. | ## بخش 1: جان باکوس | او رهبری گروهی را به عهده داشت که اولین زبان برنامه‌نویسی سطح بالا (فورترن) را اختراع نمودند. او همچنین مخترع فرم باکوس نائور (یا به اختصار BNF) نیز بود که تقریباً پراستفاده‌ترین نمادگری برای تعریف نحو (Syntax) زبان‌های صوری است. او در سال ۱۹۷۷ (میلادی) برای «مشارکت‌های ژرف، اثرگذار، و ماندگارش برای طراحی سامانه‌های برنامه‌نویسی کاربردی سطح بالا، و خصوصاً بخاطر کار بر روی فورترن» و انتشار اولین مقالات در مورد شیوه‌های صوری برای توصیف زبان‌های برنامه‌نویسی، جایزه تورینگ را دریافت کرد. در آنجا در یک آزمون استعدادسنجی شرکت کرد و نتیجه این آزمون، جانش را نجات داد؛ دوستانش به جبهه‌های جنگ فرستاده شدند و او به کالج هاورفورد برای آموزش پزشکی فرستاده شد. در دانشکدهٔ پزشکی نباید فکر کرد!» پس از خروج از دانشکده پزشکی، آپارتمان کوچکی در نیویورک به قیمت ماهانه ۱۸ دلار اجاره کرد. در آن روزها دستگاه خوب وجود نداشت بنابراین به یک مدرسه فنی رفتم تا درست کردن دستگاه‌های صوتی را یاد بگیرم. به یاد دارم که محاسبات ساده ولی بسیار وقتگیر و خسته‌کننده‌ای بود ولی مرا به ریاضیات علاقه‌مند ساخت. کاربردی بودن آن برایم خیلی جالب بود.» کار در شرکت آی‌بی‌ام باکوس در دانشکده علوم دانشگاه کلمبیا ثبت نام کرد تا با درس‌های ریاضی بیشتر آشنا شود. در بهار سال ۱۹۴۹، باکوس ۲۵ ساله که تنها چند ماه تا اخذ لیسانس ریاضی فاصله داشت، هنوز برنامه خاصی برای زندگی آینده‌اش نداشت. در آن روزها یکبار بازدیدی از مرکز رایانه شرکت آی‌بی‌ام داشت و از نزدیک با ماشین حساب الکترونیکی SSEC که یکی از نخستین ماشینهای الکترونیکی آی‌بی‌ام (با لامپ خلاء) بود آشنا شد. او ابتدا امتناع کرد زیرا سر و وضع مناسبی نداشت ولی با اصرار راهنمای تور به دیدار مدیر مربوط رفت و سپس در آزمونی شرکت کرد. نتیجه آزمون رضایت‌بخش بود و او به استخدام آی‌بی‌ام درآمد تا بر روی SSEC کار کند. حافظه‌ای برای ذخیره نرم‌افزار نداشت و برنامه‌ها را باید از طریق نوار منگنه کاغذی به آن می‌خوراندند. همچنین به دلیل به کار رفتن هزاران مؤلفه الکترومکانیکی، این ماشین قابلیت اطمینان پائینی داشت. | ## بخش 2: جان باکوس | باید بالاسر آن حاضر می‌بودیم زیرا هر دو سه دقیقه یکبار از کار می‌افتاد و باید می‌دانستیم که چگونه آن را دوباره به راه اندازیم.» او ۳ سال با SSEC کار می‌کرد و در خلال این مدت چیزهای زیادی آموخت. برنامه‌سازی هنوز در مراحل اولیه‌اش قرار داشت و بکوس نیز نخستین تجربیاتش را در زمینه محاسبات علمی کسب کرد. اعداد با ممیّز شناور ضریب مقیاس‌گذاری را با خود حمل می‌کردند و برنامه ساز را از کار پر زحمت تخصیص ضرایب رهایی می‌بخشیدند. میلیون‌ها دلار صرف اجاره رایانه‌ها می‌شد و هزینهٔ برنامه سازی نیز اگر از آن بیشتر نبود کمتر هم نبود. باید تعداد زیادی برنامه ساز استخدام می‌شدند تا برنامه‌هایی به زبان اسمبلی که تنها یک قدم از صفر و یک‌ها فاصله داشت بنویسند. برنامه‌سازی به زبان اسمبلی بسیار وقت‌گیر و پر خطا بود و اشکال‌زدایی برنامه‌ها در اکثر اوقات باعث می‌شد که هدف نهایی برنامه گم شود.» در دسامبر ۱۹۵۳، بَکوس یادداشتی برای رئیسش در آی‌بی‌ام، گوتبرت هرد ، نوشت و پیشنهاد کرد که یک زبان برنامه‌نویسی برای ماشین آی‌بی‌ام ۷۰۴ طراحی شود. بَکوس می‌گوید: «منظور من فقط به دست آوردن ابزاری بود که برنامه‌سازی با آن بسیار سریع تر انجام گیرد. اصلاً در فکر این نبودم که این ابزار ممکن است در ماشین‌های دیگر هم مورد استفاده قرار بگیرد. البته ماشین‌های دیگر هم در آن زمان به ندرت یافت می‌شدند.» در ابتدا اظهار نظرهای منفی فن نویمان جلوی پروژه را گرفت. فکر می‌کنم یکی از دلایل عمدهٔ مخالفت او این بود که از دقت محاسبات با ممیّز شناور اطمینان نداشت. در مورد محاسبات با ممیز ثابت، اگر اشکالی وجود می‌داشت حداقل می‌شد به راحتی محل آن را یافت. او واقعاً احساس می‌کرد فورترن یک تلاش بیهوده است.» سر انجام هرد پروژه را تصویب کرد و فن نویمان هم دست از مخالفت برداشت. بَکوس تعدادی برنامه ساز با تجربه و چند ریاضیدان جوانِ تازه فارغ‌التحصیل شده‌استخدام کرد. در پاییز ۱۹۵۴ تیم برنامه‌سازی و تحقیقاتی او هدف روشنی پیش رو داشت: تولید زبانی که برنامه‌سازی را برای ماشین آی‌بی‌ام ۷۰۴ ساده‌تر کند. | ## بخش 3: جان باکوس | آن‌ها به زودی دریافتند که طراحی زبان، بخش سادهٔ کار است و چالش اصلی، ترجمهٔ آن به زبان قابل درک برای ماشین است؛ یعنی برنامه‌ای که امروز، مترجم (کامپایلر) خوانده می‌شود. بَکوس و تیم او الگوریتم‌هایی را که این روزها هر دانشجوی دورهٔ کارشناسی می‌تواند به کمک آن‌ها در طول یک ترم به طراحی و پیاده‌سازی یک کامپایلر جدید برپردازد در دست نداشتند. مخصوصاً روش خوبی برای طراحی قلب کامپایلر که تجزیه گر خوانده می‌شود به نظرشان نمی‌رسید. پس از مدتی اولین نرم‌افزار کاربری که به زبان فورترن نوشته شد با موفقیت اجرا گردید ولی دانشمندان وستینگهاوس بزودی تعداد زیادی خطا در کامپایلر فورترن پیدا کردند. قالب زبان‌های نابسته به متن بَکوس در اواخر دههٔ ۱۹۵۰ کار بر روی زبان فورترن را متوقف کرد. در ماه مِهٔ ۱۹۵۸، یک کمیتهٔ بین‌المللی متشکل از دانشمدانی از بخش‌های تجاری و دانشگاهی در زوریخ تشکیل شد. هدف آنها، توسعهٔ زبان فورترن و دستیابی به یک زبان واحد و استاندارد برای برنامه‌سازی بود. به گفتهٔ او: «آنها همه چیز را به انگلیسی توضیح داده بودند و به نظرم رسید که باید کاری کرد تا بتوان به صورت دقیقتری به بیان این‌گونه مفاهیم پرداخت.» برای حل این مشکل، بَکوس گرامر مستقل از متن را که به تازگی توسط نوام چامسکی زبان‌شناس معروف اختراع شده بود، به کار گرفت. اختراع تازهٔ باکوس بعداً به نام فرم باکوس نائور معروف شد که آن هم داستان جالبی دارد. افتخارات و جوایز کار در آی‌بی‌ام (۱۹۶۳) برنده جایزهٔ مک‌داول والاس(۱۹۶۷) دریافت نشان ملی علوم (۱۹۷۵) برنده جایزهٔ تورینگ (۱۹۷۷) عضو فرهنگستان هنر و دانش آمریکا (۱۹۸۵) دریافت نشان افتخار از دانشگاه هانری پوانکاره (۱۹۸۹) برنده جایزهٔ دراپر (۱۹۹۳) برنده جایزهٔ موزه تاریخ کامپیوتر (۱۹۹۷) نام‌گذاری سیارکی به نام ۶۸۳۰ Johnbackus به افتخار وی توسط دو ستاره‌شناس ژاپنی (ژوئن ۱، ۲۰۰۷) بازنشستگی باکوس در سال ۱۹۹۱ بازنشسته شد و از دنیای علوم کامپیوتر و حتی علوم کناره گرفت. از آن تاریخ دانشمندان دیگر کار بر روی زبان‌های تابعی و حل مشکل آن‌ها را ادامه داده‌اند. او خود به درون نگری و مکاشفه پرداخته‌است و می‌گوید: «اغلب دانشمندان به این دلیل دانشمند شده‌اند که از مواجه با زندگی می‌هراسیده‌اند. آن‌ها در کنج آزمایشگاه‌ها یا کتابخانه‌ها از خلاقیت علمی خود لذت برده‌اند بی‌آنکه با مردم مواجه شوند و مشکلات ناشی از ارتباط با دیگران را تجربه کنند و راه خود را در زندگی هموار کنند. | ## جمع‌بندی | دنیای خود ساختهٔ آن‌ها بسیار جالب است، دنیای پر از امکانات ارضاءکننده و شادی بخش و خالی از رنج و ناراحتی.