در ماه تاریخ زنان، بررسی میکنیم که نوآوریهای زنان چگونه با نقشآفرینی پررنگ خود حوزه برنامهنویسی کامپیوتر را متحول کرده است.
سالها پیش از آن که برنامهنویسان نرمافزار در دفترهای شیک و وسیع شرکتهای فناوری پشت صفحهکلیدهای خود بنشینند، زنان در شرایطی نه چندان درخشان، زیربنای برنامهنویسی رایانههای مدرن را بنا کردند.
در بخش بزرگی از سالهای آغازین این حوزه، برنامهنویسی کاری تکراری و خستهکننده به حساب میآمد. بنا بر گزارش موزه تاریخ زنان آمریکا در اسمیتسونین، پژوهشگران بسیاری نشان دادهاند که بخش عمده این کار را زنان انجام میدادند.
اکنون که ماه تاریخ زنان رو به پایان است، نگاهی میکنیم به نوآوریهایی که زنان رقم زدهاند و مسیر علم رایانه را شکل دادهاند؛ از نوشتن نخستین برنامه رایانهای تا بافتن نرمافزاری که فضانوردان آمریکایی را به ماه رساند.
نخستین برنامه رایانهای
آدا لاولیس، ریاضیدان بریتانیایی، هنگام ترجمه مقالهای از ریاضیدان ایتالیایی لوئیجی منابریا درباره «ماشین تحلیلی» ـ که معمولا نخستین رایانه جهان دانسته میشود ـ بهجای آن که صرفا متن او را برگردان کند، یادداشتهایش را تصحیح کرد و در عمل نخستین برنامه رایانهای را نوشت.
لاولیس، دختر لرد بایرون شاعر، از کودکی به ریاضیات علاقه داشت. استعداد او به همکاری نزدیک حرفهای با ریاضیدان و مخترع، چارلز ببیج، بهویژه درباره «ماشین تحلیلی» او انجامید.
لاولیس در سال ۱۸۴۳ هنگام ترجمه مقاله منابریا، با نوشتن توضیحها و پاورقیهای مفصل، سهم تعیینکننده خود را در علم رایانه رقم زد. او در این یادداشتها برای نخستین بار پیشنهاد کرد که یک ماشین میتواند نه تنها با اعداد کار کند و حاصلهای ریاضی بهدست دهد، بلکه توانایی دستکاری نمادها را هم داشته باشد.
لاولیس در یکی از یادداشتهای مترجم (منبع به زبان انگلیسی) خود نوشت که ماشین تحلیلی «ممکن است بر چیزهایی جز عدد نیز اثر بگذارد، به شرط آن که اشیایی یافت شوند که روابط بنیادی متقابلشان را بتوان با روابط علم مجردِ عملیات بیان کرد و این اشیا برای سازگار شدن با نمادگذاری و سازوکار عملیاتی خودِ ماشین نیز قابل انطباق باشند».
او همچنین پیشنهاد کرد که میتوان از اعداد برای نمایش چیزی بیش از کمیتها استفاده کرد و از این راه، دامنه نقشی را که یک ماشین میتواند فراتر از محاسبه صرف داشته باشد نشان داد. لاولیس در یادداشتهای خود امکان ترجمه «صداها» و «آثار موسیقایی» به عملیاتی را ترسیم کرد که یک ماشین بتواند به کمک آنها «قطعات موسیقی مفصل و علمی در هر درجهای از پیچیدگی یا طول» بسازد.
محاسبات و توضیحهای این ریاضیدان طول مقاله اصلی را تقریبا سه برابر کرد و نخستین مجموعه دستورالعملها برای رایانهها را شکل داد. یادداشتهای لاولیس بعدها در دوران جنگ جهانی دوم برای آلن تورینگ، ریاضیدان و منطقدان بریتانیایی، در کار شکستن کدها الهامبخش بود.
کامپایلر و صحبت با ماشینها
تا سالها برنامهها را بهصورت رشتههای بلند و طاقتفرسایی از اعداد مینوشتند تا رایانهها بتوانند آنها را درک کنند.
در سال ۱۹۵۲، گریس هاپر، دانشمند علوم رایانه و افسر پیشین نیروی دریایی آمریکا، «کامپایلر» را ساخت؛ برنامهای که کد را از زبانهای سطح بالا که برنامهنویس در آنها مینویسد (چند نمونه امروزی آن جاوا و پایتون است) به زبانهای سطح پایینِ قابل فهم برای رایانه، مانند کد باینری، تبدیل میکند.
این کامپایلر که A-0 نام داشت، کدهای نمادین ریاضی را به کد قابل خواندن برای ماشین تبدیل میکرد و در شکلگیری زبانهای مدرن برنامهنویسی نقشی کلیدی داشت.
کامپایلر هاپر حاصل سالها تلاش او برای سادهتر کردن برنامهنویسی رایانهای بود.
هاپر هنگام کار بر روی «مارک ۱» ـ نخستین ماشینحساب خودکار در ابعاد بزرگ ـ در خلال جنگ جهانی دوم، متوجه شد که در یک محاسبه واحد، برخی محاسبات بارها تکرار میشوند و به همین دلیل مجموعهای کوچک از بخشهای پرکاربرد کد را آرشیو کرد.
از دل این کار، مفهوم امروزی «زیرروال» متولد شد؛ بخشهای کوچک کد در دل یک برنامه بزرگتر که کارهایی را انجام میدهند که ممکن است در برنامه اصلی به تکرار نیاز باشد. زیرروالها زمان را صرفهجویی میکنند، چون کد آنها از پیش نوشته و آزمایش شده است.
کامپایلر A-0 هاپر که چند سال پس از جنگ توسعه یافت، این امکان را میداد که کاربران طرح کلی یک برنامه را با زبانی سادهتر بنویسند. هاپر بهتدریج آرشیو زیرروالهای خود را گسترش داده بود، آنها را روی نوار ذخیره میکرد و برای هر یک شماره فراخوان اختصاص میداد. وقتی کاربر برنامه مورد نیاز خود را توصیف میکرد، کامپایلر بهطور خودکار زیرروالهای لازم را روی نوار پیدا و مرتب میکرد.
هاپر سپس در توسعه یکی از نخستین زبانهای برنامهنویسی سطح بالا بر پایه زبان انگلیسی به نام COBOL (سرواژه Common Business-oriented Language) نقشآفرینی کرد و در طراحی و ساخت کامپایلرهای آن سهیم بود.
هاپر با A-0 و کوبول، صحبت کردن با ماشینها را بسیار آسانتر کرد.
دقیقتر کردن سامانه مدرن موقعیتیابی جهانی
کارهای گلدیس وست، ریاضیدان آمریکایی، مسئول دقت سامانه مدرن موقعیتیابی جهانی (GPS) است؛ فناوریای که امروز تقریبا همهجا حاضر است و گردشگران، رانندگان تاکسی و خلبانان به یکسان از آن استفاده میکنند.
وست در سال ۱۹۵۶ به پایگاه آزمایش نیروی دریایی آمریکا پیوست و در آن زمان دومین زن آفریقاییآمریکایی بود که به این مجموعه راه مییافت. او رهبری گروهی از تحلیلگران را بر عهده گرفت که با استفاده از دادههای حسگرهای ماهوارهها، اندازه و شکل زمین و مدارهای گرداگرد آن را محاسبه میکردند.
این محاسبات مبنای مسیرهای پروازی است که ماهوارههای GPS امروز بر اساس آنها حرکت میکنند.
کارهای وست تا سالها ناشناخته ماند تا این که در سال ۲۰۱۸ جایزه «پیشگامان فضا و موشک» نیروی هوایی آمریکا به او اهدا شد. او در سال ۲۰۲۱ به نخستین زنی بدل شد که مدال پرنس فیلیپ، جایزه آکادمی سلطنتی مهندسی بریتانیا، را دریافت میکند.
بافتن نرمافزار برای رفتن به ماه
در تاسیساتی در حومه بوستون آمریکا، زنانی بافنده دستورالعملهای نرمافزار ماموریتهای آپولو را در رشتهای بلند و سیمی ذخیره میکردند که به آن «طناب» میگفتند.
مارگارت همیلتون، دانشمند علوم رایانه و برنامهنویس نرمافزار آمریکایی، رهبری توسعه و تولید نرمافزار برای ماموریتهای آپولو آمریکا را بر عهده داشت و کار او برای شش پرواز به ماه بین سالهای ۱۹۶۹ تا ۱۹۷۲ حیاتی بود.
تیم او زیر نظر همیلتون راهی مبتکرانه برای ذخیره برنامههای رایانهای در رایانههای هدایتگر آپولو پیدا کرد: بافتن آنها در یک طناب مسی.
رایانهها اطلاعات را در قالب کد باینری، یعنی دنبالهای از صفر و یک، ذخیره میکنند. حافظه رایانههای امروزی معمولا این اطلاعات را روی تراشههای کوچک سیلیکونی نگه میدارد. اما در زمان ماموریتهای آپولو، این اطلاعات با مغناطیسی کردن هستههایی به شکل حلقههای دوناتمانند ذخیره میشد.
برای نمایش عدد یک در سیستم باینری، سیم از میان سوراخ هر هسته عبور داده میشد و برای نمایش صفر، سیم از کنار هسته میگذشت و از سوراخ آن رد نمیشد. این فناوری «حافظه طنابیِ هستهای» نام داشت.
در ماموریتهای آپولو، پس از آن که برنامهای نوشته میشد، به کد ترجمه میشد و روی کارتهای کاغذی پانچ میشد، این کد به تاسیساتی فرستاده میشد که در آن زنان، که اغلب پیشتر در کارخانههای نساجی کار میکردند، سیمهای مسی و هستهها را به شکل طنابی بلند میبافتند تا حجم عظیمی از کد را در خود جای دهد.
فراتر از استفاده از این شیوه هوشمندانه ذخیرهسازی، تمرکز اصلی همیلتون طراحی نرمافزاری برای تشخیص خطاهای سامانه و بازیابی نرمافزار در صورت از کار افتادن رایانه بود؛ قابلیتی که در ماموریت آپولو ۱۱، که با موفقیت روی ماه فرود آمد، نقشی حیاتی ایفا کرد.
همیلتون در سال ۲۰۰۹ در گفتوگو با پایگاه خبری امآیتی نیوز، در توضیح تجربه خود در ماموریتهای آپولو گفت: «خودِ تجربه نرمافزار (طراحی آن، توسعه و تکاملش، دیدن عملکرد آن و آموختن از آن برای سامانههای بعدی) دستکم به اندازه رخدادهای پیرامون ماموریت هیجانانگیز بود.»
او افزود: «وقتی به گذشته نگاه میکنیم، ما خوششانسترین آدمهای جهان بودیم؛ چارهای جز پیشگام بودن نداشتیم و وقتی برای مبتدی بودن نبود.»