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

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

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

فورث در بوت لودر نرم‌افزار Open Firmware، در برنامه‌های فضایی[۱] مانند فضاپیمای Philae ,[۲][۳] و در سایر سامانه‌های تعبیه شده شده که تعامل با سخت‌افزار دارند، استفاده می‌شود. همچنین پرفروش‌ترین بازی رایانه ای سال 1986 Starflight، ساخته شرکت الکترونیک آرتس، توسط نسخه ای سفارشی شده از زبان فورث نوشته شده‌است.[۴]

پیاده‌سازی آزاد این زبان برنامه نویسی که Gforth نام دارد هنوز به شکل مستمر پشتیبانی می‌شود

بررسی اجمالی

Forth یک زبان ساده و در عین حال قابل گسترش است. وجود قابلیت گسترش (ماژولار بودن) در این زبان اجازه نوشتن برنامه‌های مهم را می‌دهد.

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

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

کاربردها

فورث دارای کاربردهای نجومی و فضایی[۶] و همچنین دارای سابقه استفاده در سیستم‌های نهفته‌است. رام‌های راه اندازی Open Firmware که توسط اپل، IBM، Sun و OLPC XO-1 استفاده می‌شوند دارای از زبان Forth استفاده می‌کنند.

دو بازی رایانه ای که الکترونیک آرتس، در دهه ۱۹۸۰ منتشر کرده‌است، Worms (1983)[۷] و Starflight (1986). توسط این زبان نوشته شده‌اند[۸] شرکت آتاری برای نمایش توانایی‌های رایانه‌های خانواده ۸ بیتی آتاری در فروشگاه‌ها از یک نسخهٔ نمایشی که توسط زبان Forth نوشته شده بود استفاده کرد.[۹]

مثال برنامه‌نویسی

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

با استفاده از نشانه گذاری معکوس لهستانی می‌توان نتیجه عبارت ریاضی (25 * 10 + 50) این طریق بدست آورید:

 25 10 * 50 + CR .
 300 ok

ابتدا اعداد ۲۵ و سپس ۱۰ را داخل داده ساختار پشته قرار می‌دهیم.

خواندن کلمه * از ورودی دو عدد بالا را از پشته خارج می‌کند، آنها را ضرب می‌کند و نتیجه ضرب را دوباره داخل پشته قرار می‌دهد.

سپس عدد ۵۰ از ورودی خوانده شده و داخل پشته قرار می‌گیرد.

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

حتی سایر ساختارهای این زبان نیز از ویژگی‌های داده ساختار پشته استفاده می‌کنند. برای مثال :

: FLOOR5 ( n -- n' )   DUP 6 < IF DROP 5 ELSE 1 - THEN ;

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

زیر روال دستورات زیر را انجام می‌دهد:

DUPعدد داخل پشته را تکرار می‌کند 6 عدد ۶ را به بالای پشته اضافه می‌کند. > دو عدد بالای پشته را با هم مقایسه می‌کند (عدد ۶ و عددی که DUP شده‌است)

و آنرا با یک عبارت درست یا غلط (true or false) جایگزین می‌کند. سپس در صورت درست بودن گزاره قبلی شرط IFاجرا شده DROP تمامی مقادیر داخل پشته را نادیده گرفته و ۵ عدد ۵ را به بالای پشته اضافه می‌کند در صورت غلط بودن شرط قسمت ELSEاجرا می‌شود و مقدار بالای پشته را یک واحد کم می‌کند THEN;به معنای پایان کلمه است اگر بخواهیم مشابه کلمه FLOOR5در زبان برنامه‌نویسی سی یک تابع تعریف کنیم به شکل زیر آنرا می‌نویسیم:

int floor5(int v) {
  return (v < 6) ? 5 : (v - 1);
}

منابع

  1. NASA applications of Forth (original NASA server no longer running, copy from archive.org)
  2. "Intersil's RTX processors and Forth software controlled the successful Philae landing" (PDF). MicroProcessor Engineering Limited. October 13, 2014. Archived from the original (PDF) on 2 July 2015. Retrieved 21 April 2021.
  3. "Here comes Philae! Powered by an RTX2010". The CPU Shack Museum. October 12, 2014. Retrieved May 23, 2017.
  4. Maher, Jimmy (October 28, 2014). "Starflight". The Digital Antiquarian. Retrieved May 23, 2017.
  5. Brodie, Leo. "Starting Forth". Forth dot com. Forth, Inc. Retrieved July 14, 2020.
  6. "Space Related Applications of Forth". Archived from the original on 2010-10-24. Retrieved 2007-09-04.
  7. Maynard, David S. "David Maynard: Software Artist".
  8. Maher, Jimmy (October 28, 2014). "Starflight". The Digital Antiquarian. Retrieved May 23, 2017.
  9. "Atari In-Store Demonstration Program". Atari Mania.

Read other articles:

إيما جوهانسون (بالسويدية: Emma Johansson)‏  معلومات شخصية الميلاد 23 سبتمبر 1983 (العمر 40 سنة)السويد الطول 1.68 متر  الجنسية  السويد الوزن 54 كيلوغرام  الحياة العملية الدور دراج الفرق تيم كوب هايتك بوردكتس  [لغات أخرى]‏ (2011–2012)بيزكايا دورانجو  [لغات أخرى]‏ (2006–20...

 

طواف سيبيو للدراجات 2015 تفاصيل السباقسلسلة5. طواف سيبيو للدراجاتمنافسةطواف أوروبا للدراجات 2015 2.1‏مراحل5التواريخ01 – 05 يوليو 2015المسافات683٫6 كمالبلد رومانيانقطة البدايةسيبيونقطة النهايةسيبيوالفرق17عدد المتسابقين في البداية107عدد المتسابقين في النهاية96متوسط السرعة39٫643 كم/

 

BTS video discographyBTS in a photoshoot in Los Angeles, November 2017Video albums49Music videos72Films4Television7 South Korean boy band BTS debuted on the music scene in June 2013. They have since released or featured in 72 music videos, and released 49 video albums. Known for their high quality music videos—and accompanying choreography therein—the band have achieved multiple world records with several of these, additionally winning various domestic and international awards for them. T...

Brigadir Jenderal TNI (Purn.)Mochammad BachrunInformasi pribadiLahir(1911-02-12)12 Februari 1911Purwokerto, Jawa Tengah, Hindia BelandaMeninggal6 Mei 1979(1979-05-06) (umur 68)JakartaAlma materPeta (1943)Karier militerPihak IndonesiaDinas/cabang TNI Angkatan DaratMasa dinas1943-1959Pangkat Brigadir Jenderal TNISatuanInfanteriSunting kotak info • L • B Brigadir Jenderal TNI (Purn.) Mochammad Bachroen (12 Februari 1911 – 6 Mei 1979) merupakan seorang...

 

Lidoriki Entidad subnacional Coordenadas 38°31′38″N 22°12′13″E / 38.5273, 22.2035Entidad Pueblo • País  GreciaSuperficie   • Total 47,76 km² Altitud   • Media 560 m s. n. m.Población (2011)   • Total 875 hab. • Densidad 18,32 hab/km²Huso horario UTC+02:00 y UTC+03:00Código postal 330 53Prefijo telefónico 2266[editar datos en Wikidata] Lidoriki o Loidoriki (en griego: Λ[ο]ιδω

 

Negara berdasarkan produksi mentimun pada tahun 2016 Ini adalah daftar negara berdasarkan produksi mentimun pada tahun 2016 dan 2017, berdasarkan data dari Food and Agriculture Organization Corporate Statistical Database.[1][n 1] Total produksi dunia untuk mentimun pada tahun 2017 mencapai 83,753,861 metrik ton, naik 3.9% dari 80,616,692 ton pada tahun 2016. Tiongkok sejauh ini merupakan produsen terbesar, terhitung lebih dari 77% dari total dunia dengan produksi 64,824,643 to...

Abd el-Aziz el-ZoubiFaction represented in the Knesset1965–1969Mapam1969–1974Alignment Personal detailsBorn4 February 1926Nazareth, Mandatory PalestineDied14 February 1974(1974-02-14) (aged 48) Abd el-Aziz el-Zoubi (Arabic: عبد العزيز الزعبي, Hebrew: עבד אל-עזיז א-זועבי‎; 4 February 1926 – 14 February 1974) was an Israeli Arab politician who served as a member of the Knesset for Mapam and the Alignment from 1965 until his death in 1974. When appo...

 

The Impossible Virgin Hardcover first edition, 1971, Souvenir PressAuthorPeter O'DonnellCountryUnited KingdomLanguageEnglishSeriesModesty BlaiseGenreSpy fictionPublisherSouvenir PressPublication date1971Media typePrint (hardback and paperback)Pages284Preceded byA Taste for Death Followed byPieces of Modesty  The Impossible Virgin is the title of the fifth novel chronicling the adventures of crime lord-turned-secret agent Modesty Blaise. The novel was published in 1971...

 

Архітектура Тернопільської області Тернопільська область за потенціалом і величиною архітектурної спадщини — один із найбагатших регіонів України. Нині тут на державному обліку — майже 1,5 тис. пам'яток архітектури, з них — 34 фортеці (третина всіх українських з...

Italian actress Carla Del PoggioDel Poggio in 1955BornMaria Luisa Attanasio(1925-12-02)2 December 1925Naples, Kingdom of ItalyDied14 October 2010(2010-10-14) (aged 84)Rome, ItalyOccupationActressYears active1940–1966Spouse Alberto Lattuada ​ ​(m. 1945; died 2005)​ Maria Luisa Attanasio (2 December 1925 – 14 October 2010),[1] known by her stage name Carla Del Poggio, was an Italian cinema, theatre, and television actress. A ...

 

الوصف: الجزء الداخلي من مخبزك المسلم الأسود رقم 1، الذي كان يقع سابقًا في شارع سان بابلو في أوكلاند، كاليفورنيا. تمنح اللوحة الموجودة في الأعلى مرتبة الشرف لمحمد س. باي من جامعة هوارد؛ العنصر المؤطر الموجود أدناه هو نسخة طبق الأصل من علامة Jim Crow من الجنوب. أمة الإسلام تنتسب إ...

 

4

『4』を称する作品名については「4 (曖昧さ回避)」をご覧ください。 3 ← 4 → 5素因数分解 22二進法 100三進法 11四進法 10五進法 4六進法 4七進法 4八進法 4十二進法 4十六進法 4二十進法 4二十四進法 4三十六進法 4ローマ数字 IV漢数字 四大字 四算木 位取り記数法 四進法 「四」の筆順 4(四、肆、よん、し、す、よつ、よ)は、自然数また整数において、3の次で5の前...

1984 single by The JacksonsTortureSingle by The Jacksonsfrom the album Victory B-sideTorture (Instrumental)ReleasedAugust 1984 (1984-08)Recorded1983–84Genre Hard rock[1] Length4:53 (album version) 4:25 (7 version) 6:17 (12 dance mix)LabelEpicSongwriter(s) Jackie Jackson Kathleen Wakefield Producer(s)Jackie JacksonThe Jacksons singles chronology State of Shock (1984) Torture (1984) Body (1984) Music videoTorture on YouTube Torture is the second single released off the album...

 

This article is about a local government that included Chelsea Heights, Victoria but not the neighbour Chelsea, Victoria. For the local government that did, see City of Chelsea. For the suburb, see Springvale, Victoria. For other municipal entitites, see Springvale (disambiguation). Local government area in Victoria, AustraliaCity of SpringvaleVictoriaLocation in MelbournePopulation93,900 (1992)[1] • Density962.1/km2 (2,491.8/sq mi)Established1857Area97.60 km2 (3...

 

1979 science fiction novel by John Varley This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Titan Varley novel – news · newspapers · books · scholar · JSTOR (September 2008) (Learn how and when to remove this template message) Titan Cover of first edition (hardcover)AuthorJohn VarleyIllustratorFreffCover&...

View southwest from Ben Lawers, Scottish Highlands This is a list of the 100 highest mountains in Scotland by elevation. List of 100 highest mountains in Scotland Mountains are ranked by height and by prominence via Simms classification (DoBIH, October 2018).[1] Height Prominence Name Image Height (m) Prom. (m) Height (ft) Prom. (ft) 1 1 Ben Nevis 1,345 1,345 4,411 4,411 2 7 Ben Macdui 1,309 950 4,295 3,117 3 162 Braeriach 1,296 461 4,252 1,512 4 602 Cairn Toul 1,291 166 4,236 545 5 1...

 

Autonomous county in Liaoning, ChinaQingyuan 清原县ᠴᡳᠩᠶᡠᠸᠠᠨ ᠰᡳᠶᠠᠨAutonomous county清原满族自治县ᠴᡳᠩᠶᡠᠸᠠᠨ ᠮᠠᠨᠵᡠ ᠪᡝᠶᡝ ᡩᠠᠰᠠᠩᡤᠠ ᠰᡳᠶᠠᠨQingyuan Manchu Autonomous CountyQingyuan in FushunFushun in LiaoningCoordinates: 42°06′02″N 124°55′27″E / 42.1005°N 124.9241°E / 42.1005; 124.9241CountryChinaProvinceLiaoningPrefecture-level cityFushunCounty seatQingyuanArea •...

 

Frank HagneyHagney dalam The General (1926)LahirFrank Sidney Hagney(1884-03-20)20 Maret 1884Sydney, New South Wales, AustraliaMeninggal25 Juni 1973(1973-06-25) (umur 89)Los Angeles, California, Amerika SerikatMakamForest Lawn Memorial Park, GlendaleTahun aktif1919–1966Suami/istriEdna Shephard Frank S. Hagney (20 Maret 1884 – 25 Juni 1973) adalah seorang pemeran asal Australia. Ia dikenal atas karyanya pada It's a Wonderful Life (1946), Ride Him, Cowboy (1932) dan ...

Archivos Nacionales del Reino Unido The National Archives LocalizaciónPaís Reino UnidoMunicipio KewLocalidad Richmond upon ThamesCoordenadas 51°28′52″N 0°16′47″O / 51.48106, -0.2797Información generalJurisdicción Inglaterra y GalesTipo archivo nacional y departamento no ministerial del Reino UnidoSede Kew, Richmond upon Thames, Gran Londres.OrganizaciónMinistros Matthew HancockEntidad superior Digital Preservation Coalition, Open Preservation Foundation, Wo...

 

Campionato nazionale Dante BerrettiSport Calcio TipoClub FederazioneFIGC Paese Italia OrganizzatoreLega Pro TitoloCampione d'Italia Berretti Aperturaottobre PartecipantiSquadre giovanili della Serie C e, facoltativamente, delle Serie A e B StoriaFondazione1966 Soppressione2020 Numero edizioni54 Record vittorie Torino (11) (Serie A-B)[1] Giulianova (5) (Serie C/Lega Pro)[2] Conegliano e Irpinia (2 a testa) (Serie D)[3] Modifica dati su Wikidata ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!