Hacker News

Nnianim asɛm a wɔboaboa ano kosi Forth [pdf].

Nsɛm a wɔka

17 min read Via vfxforth.com

Mewayz Team

Editorial Team

Hacker News

Nkitahodi a Ɛnyɛ Yie: Logic Programming hyia Low-Level Execution

Prolog ne Forth wiase ahorow no gyina hɔ ma nhyehyɛe ho nyansapɛ abien a ɛtra so. Prolog, ntease nhyehyɛe kasa a ɛkorɔn, a wɔde asi abstraction fɛfɛ a ɛfa ntease abusuabɔ, nhwɛso a ɛne ne ho hyia, ne declarative problem-solving so. Nea ɛne eyi bɔ abira no, nea ɛto so anan yɛ kasa a ɛho hia a ɛba fam, a egyina stack so, a wɔsom bo wɔ ne minimalism, hardware control tẽẽ, ne execution ahoɔhare a ɛyɛ hyew no ho nhwɛso. Ebia adwene a ɛne sɛ wɔbɛboaboa kan no ano akɔ nea etwa to no mu no bɛyɛ te sɛ nea wɔrekyerɛ anwensɛm ase akɔ nhyiam mmara mu —adesua mu adeyɛ a mfaso wɔ so a asɛm wɔ ho. Nanso, ɔkwan a wɔfa so boaboa Prolog ano kɔ Forth no yɛ mfiridwuma mu adeyɛ a ɛyɛ anigye a ɛda nhumu a emu dɔ adi wɔ kasa abien no nyinaa mu na ɛma ɔkwan a ɛyɛ den a wɔfa so yɛ nhyehyɛe ahorow a ɛyɛ adwuma yiye, a wotumi fa so yɛ ntease nhyehyɛe nhyehyɛe ahorow. Wɔ nnwuma a wɔde modular operating system te sɛ Mewayz di dwuma no, deep-level optimization a ɛte saa no si tumi a ɛwɔ sɛ wɔde nnwinnade titiriw a ɛyɛ adwuma yiye bɛka adwumayɛ nhyehyɛe a ɛyɛ biako mu no so dua.

Deconstructing Prolog: Efi Nkabom so kɔ Stack Dwumadi so

Asɛnnennen titiriw a ɛwɔ saa nsɛm a wɔaboaboa ano yi mu ne sɛ wɔbɛkyerɛ Prolog akontaabu nhyehyɛe a enni nnyinaso no ase akɔ Forth akwankyerɛ a ɛyɛ nokware, anammɔn biara mu. Akwan titiriw abien na ɛma Prolog no di dwuma: biakoyɛ (ɔkwan a wɔfa so de nsɛmfua a ntease wom hyia) ne akyi a wɔsan kɔ (ano aduru foforo a wɔhwehwɛ). Ɛsɛ sɛ Prolog-to-Forth compiler deconstruct saa nsusuwii a ɛkorɔn yi ma ɛyɛ adwuma a ɛba fam a ɛtoatoa so. Sɛ nhwɛso no, nkabom bɛyɛ stack manipulations a ɛtoatoa so —a wɔpia nsɛmfua, toto ho, na wɔhwɛ variable bindings so. Ɛsɛ sɛ compiler no yɛ Forth code a ebetumi atwa data nhyehyɛe a ɛyɛ den (te sɛ nnua a egyina hɔ ma nsɛmfua a ntease wom) na ɔhwɛ tebea a wobetumi ayɛ variables instantiated na akyiri yi "un-instantiated" bere a backtracking. Eyi hwehwɛ sɛ wɔyɛ runtime model a ɛyɛ nwonwa a wɔasi wɔ Forth nsɛmfua atitiriw no so.

Akyi-akyi a Wɔde Di Dwuma: Nhwehwɛmu no Koma

Ebia adeɛ a ɛyɛ den paa wɔ nnoɔma a wɔaboaboa ano no mu ne sɛ wɔde Prolog backtracking search algorithm no bedi dwuma. Wɔ Prolog mu no, sɛ botae bi di nkogu a, engine no san n’akyi kɔ baabi a etwa to a wɔpaw no na ɛbɔ mmɔden sɛ ɔbɛfa ɔkwan foforo so. Sɛ wobɛsan ayɛ eyi wɔ Forth mu a, ɛsɛ sɛ compiler no yɛ adwinnade bi a ɛbɛma wɔakora akontaabu no tebea so na wɔasan de aba. Eyi taa yɛ nea wɔde Forth data stack ne, nea ɛho hia no, sankɔhwɛ stack a ɛyɛ soronko anaasɛ memory region a wɔatu ho ama de sie nsɛntitiriw a wɔpaw. Point a wɔpaw yɛ afiri no tebea ho mfonini —a variable bindings, mprempren code pointer, ne alternative clauses a wonnya nsɔ nhwɛe ka ho. Kood a wɔaboaboa ano no wɔ akwankyerɛ a wɔde bɛpia paw point akɔ stack so bere biara a predicate bi wɔ kasamu ahorow pii a ɛne ne ho hyia. Sɛ ɛdi nkoguo a, runtime system no pop point a wɔpaw nnansa yi ara, san de tebea no ba, na ɛhuruw kɔ ɔkasamu a ɛdi hɔ a wɔansɔ anhwɛ no so. Saa asaw fɛfɛ yi, sɛ ɛyɛ den a, dan Forth deterministic flow no kɔ Prolog hwehwɛ a ɛnyɛ deterministic.

a wɔde ahyɛ mu "Kasa a ɛkorɔn te sɛ Prolog a wɔbɛboaboa ano akɔ botae a ɛba fam te sɛ Forth so no nyɛ kasamufa nkyerɛase ara kwa; ɛyɛ mfiri a ɛnyɛ adwene a wɔde yɛ mfonini a wɔsan yɛ ho mfonini denam ɔfoforo mfitiase dwumadi ahorow so. Nkonimdi a ɛba wɔ adwuma a ɛte saa mu no gyina sɛnea wɔbɛyɛ runtime nhyehyɛe a etu mpɔn a ebetumi de nokwaredi asuasua biakoyɛ ne akyi a wɔbɛsan akɔ akyi wɔ stack-based architecture so."
na ɛkyerɛ sɛ woayɛ

Nkyerɛkyerɛmu a mfaso wɔ so ne Mewayz Nkitahodi

Dɛn nti na ɛsɛ sɛ woyɛ adwuma a ɛyɛ den saa? Mfaso a ɛwɔ so no yɛ nea ɛho hia. Forth agye din wɔ sɛnea wotumi fa so ne sɛnea ɛyɛ nkae ade ketewaa bi no ho. Prolog nhyehyɛe a wɔaboaboa ano akɔ Forth no betumi ayɛ adwuma wɔ embedded systems, microcontrollers, anaa platform biara a ɛwɔ Forth nkyerɛasefo so, de ntease nhyehyɛe tumi a tumi wom aba mmeae a nneɛma a wɔde di dwuma wɔ mu no. Bio nso, nhyehyɛe a efi mu ba no betumi ayɛ ntɛmntɛm kɛse, efisɛ mmara a wɔayɛ no yɛ mmerɛw na ɛyɛ adwuma a ɛho ka sua koraa. Saa nyansapɛ yi a ɛne sɛ wɔbɛbɔ module ahorow a ɛyɛ mmerɛw, a wɔde atirimpɔw ayɛ no ne Mewayz modular business OS no hyia pɛpɛɛpɛ. Mewayz di yie wɔ nneɛma titire a ɛyɛ wɔn nnwuma a ɛyɛ adwuma yie a ɛka bom.

Fa no sɛ wode mmara engine a ɛbɛma gyinaesi a ɛyɛ den ahyɛ Mewayz module bi mu tẽẽ. Sɛ saa engine no yɛ Prolog compiler a ɛde n’ani si Forth virtual mfiri a ɛyɛ ntɛmntɛm na wotumi fa so so a, ebetumi adi adwumayɛ mu ntease ho dwuma wɔ ahoɔhare soronko ne ahotoso mu, a ɛde ne ho fi hardware a ɛwɔ ase no ho. Mfaso titiriw a ɛwɔ ɔkwan a ɛte saa so no bi ne:

  • Extreme Portability: Fa adwumayɛ mu nteaseɛ a ɛyɛ den di dwuma wɔ mfiri ahodoɔ pii so, ɛfiri servers so kɔsi edge computing nodes so.
  • Adwumayɛ a ɛkorɔn: Nya dwumadie ntɛmntɛm denam nkyerɛaseɛ ntoatoasoɔ a ɛtaa ba wɔ Prolog dwumadie a ɛyɛ gyinapɛn mu a wobɛfa so.
  • Anantew Ketekete: Yɛ aplikeshɔn a tumi wom a memory ne storage ahwehwɛde kakraa bi na ɛwɔ mu.
  • Deep Integration: Fa logic programming ka ho a ɛnyɛ den sɛ native component wɔ modular system kɛseɛ no mu.

Awieeɛ: Ɔkwan a Ɛda Nhwɛsoɔ Ntam

Prolog to Forth a wobɛboaboa ano no yɛ adanseɛ a ɛkyerɛ sɛ kasa mmienu no nyinaa tumi sesa. Ɛkyerɛ sɛ wobetumi de programming paradigms a ɛnyɛ adwene sen biara mpo agyina execution models a etu mpɔn, a ɛba fam so. Bere a ɛda so ara yɛ beae titiriw wɔ compiler nhyehyɛe mu no, nnyinasosɛm ahorow a ɛka ho—nkae a wɔhwɛ so yiye, runtime state tracking, ne cross-paradigm nkyerɛase—fa amansan nyinaa ho. Wɔ platforms te sɛ Mewayz a ɛsom bo modularity ne adwumayɛ no, saa mfiridwuma mu nkabom a emu dɔ yi ne ade titiriw a ɛbɛma wɔakyekye adwumayɛ nhyehyɛe a ɛyɛ den na ɛtumi sesa. Ɛnam sɛdeɛ yɛbɛte aseɛ sɛdeɛ yɛbɛtumi abɔ kɔmputa wiase ahodoɔ a ɛte saa no ho ban no, yɛbue akwan foforɔ a ɛbɛtumi aba ama nyansa nteaseɛ a yɛde bɛdi dwuma wɔ baabi pɔtee a ɛhia.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
na ɛkyerɛ

Nsɛmmisa a Wɔtaa Bisa

Nkitahodi a Ɛnyɛ Yie: Logic Programming hyia Low-Level Execution

Prolog ne Forth wiase ahorow no gyina hɔ ma nhyehyɛe ho nyansapɛ abien a ɛtra so. Prolog, ntease nhyehyɛe kasa a ɛkorɔn, a wɔde asi abstraction fɛfɛ a ɛfa ntease abusuabɔ, nhwɛso a ɛne ne ho hyia, ne declarative problem-solving so. Nea ɛne eyi bɔ abira no, nea ɛto so anan yɛ kasa a ɛho hia a ɛba fam, a egyina stack so, a wɔsom bo wɔ ne minimalism, hardware control tẽẽ, ne execution ahoɔhare a ɛyɛ hyew no ho nhwɛso. Ebia adwene a ɛne sɛ wɔbɛboaboa kan no ano akɔ nea etwa to no mu no bɛyɛ te sɛ nea wɔrekyerɛ anwensɛm ase akɔ nhyiam mmara mu —adesua mu adeyɛ a mfaso wɔ so a asɛm wɔ ho. Nanso, ɔkwan a wɔfa so boaboa Prolog ano kɔ Forth no yɛ mfiridwuma mu adeyɛ a ɛyɛ anigye a ɛda nhumu a emu dɔ adi wɔ kasa abien no nyinaa mu na ɛma ɔkwan a ɛyɛ den a wɔfa so yɛ nhyehyɛe ahorow a ɛyɛ adwuma yiye, a wotumi fa so yɛ ntease nhyehyɛe nhyehyɛe ahorow. Wɔ nnwuma a wɔde modular operating system te sɛ Mewayz di dwuma no, deep-level optimization a ɛte saa no si tumi a ɛwɔ sɛ wɔde nnwinnade titiriw a ɛyɛ adwuma yiye bɛka adwumayɛ nhyehyɛe a ɛyɛ biako mu no so dua.

Deconstructing Prolog: Efi Nkabom so kɔ Stack Dwumadi so

Asɛnnennen titiriw a ɛwɔ saa nsɛm a wɔaboaboa ano yi mu ne sɛ wɔbɛkyerɛ Prolog akontaabu nhyehyɛe a enni nnyinaso no ase akɔ Forth akwankyerɛ a ɛyɛ nokware, anammɔn biara mu. Akwan titiriw abien na ɛma Prolog no di dwuma: biakoyɛ (ɔkwan a wɔfa so de nsɛmfua a ntease wom hyia) ne akyi a wɔsan kɔ (ano aduru foforo a wɔhwehwɛ). Ɛsɛ sɛ Prolog-to-Forth compiler deconstruct saa nsusuwii a ɛkorɔn yi ma ɛyɛ adwuma a ɛba fam a ɛtoatoa so. Sɛ nhwɛso no, nkabom bɛyɛ stack manipulations a ɛtoatoa so —a wɔpia nsɛmfua, toto ho, na wɔhwɛ variable bindings so. Ɛsɛ sɛ compiler no yɛ Forth code a ebetumi atwa data nhyehyɛe a ɛyɛ den (te sɛ nnua a egyina hɔ ma nsɛmfua a ntease wom) na ɔhwɛ tebea a wobetumi ayɛ variables instantiated na akyiri yi "un-instantiated" bere a backtracking. Eyi hwehwɛ sɛ wɔyɛ runtime model a ɛyɛ nwonwa a wɔasi wɔ Forth nsɛmfua atitiriw no so.

Akyi-akyi a Wɔde Di Dwuma: Hwehwɛ Koma

Ebia adeɛ a ɛyɛ den paa wɔ nnoɔma a wɔaboaboa ano no mu ne sɛ wɔde Prolog backtracking search algorithm no bedi dwuma. Wɔ Prolog mu no, sɛ botae bi di nkogu a, engine no san n’akyi kɔ baabi a etwa to a wɔpaw no na ɛbɔ mmɔden sɛ ɔbɛfa ɔkwan foforo so. Sɛ wobɛsan ayɛ eyi wɔ Forth mu a, ɛsɛ sɛ compiler no yɛ adwinnade bi a ɛbɛma wɔakora akontaabu no tebea so na wɔasan de aba. Eyi taa yɛ nea wɔde Forth data stack ne, nea ɛho hia no, sankɔhwɛ stack a ɛyɛ soronko anaasɛ memory region a wɔatu ho ama de sie nsɛntitiriw a wɔpaw. Point a wɔpaw yɛ afiri no tebea ho mfonini —a variable bindings, mprempren code pointer, ne alternative clauses a wonnya nsɔ nhwɛe ka ho. Kood a wɔaboaboa ano no wɔ akwankyerɛ a wɔde bɛpia paw point akɔ stack so bere biara a predicate bi wɔ kasamu ahorow pii a ɛne ne ho hyia. Sɛ ɛdi nkoguo a, runtime system no pop point a wɔpaw nnansa yi ara, san de tebea no ba, na ɛhuruw kɔ ɔkasamu a ɛdi hɔ a wɔansɔ anhwɛ no so. Saa asaw fɛfɛ yi, sɛ ɛyɛ den a, dan Forth deterministic flow no kɔ Prolog hwehwɛ a ɛnyɛ deterministic.

Nkyerɛkyerɛmu a mfaso wɔ so ne Mewayz Nkitahodi

Dɛn nti na ɛsɛ sɛ woyɛ adwuma a ɛyɛ den saa? Mfaso a ɛwɔ so no yɛ nea ɛho hia. Forth agye din wɔ sɛnea wotumi fa so ne sɛnea ɛyɛ nkae ade ketewaa bi no ho. Prolog nhyehyɛe a wɔaboaboa ano akɔ Forth no betumi ayɛ adwuma wɔ embedded systems, microcontrollers, anaa platform biara a ɛwɔ Forth nkyerɛasefo so, de ntease nhyehyɛe tumi a tumi wom aba mmeae a nneɛma a wɔde di dwuma wɔ mu no. Bio nso, nhyehyɛe a efi mu ba no betumi ayɛ ntɛmntɛm kɛse, efisɛ mmara a wɔayɛ no yɛ mmerɛw na ɛyɛ adwuma a ɛho ka sua koraa. Saa nyansapɛ yi a ɛne sɛ wɔbɛbɔ module ahorow a ɛyɛ mmerɛw, a wɔde atirimpɔw ayɛ no ne Mewayz modular business OS no hyia pɛpɛɛpɛ. Mewayz di yie wɔ nneɛma titire a ɛyɛ wɔn nnwuma a ɛyɛ adwuma yie a ɛka bom.

Awieeɛ: Ɔkwan a Ɛda Nhwɛsoɔ Ntam

Prolog to Forth a wobɛboaboa ano no yɛ adanseɛ a ɛkyerɛ sɛ kasa mmienu no nyinaa tumi sesa. Ɛkyerɛ sɛ wobetumi de programming paradigms a ɛnyɛ adwene sen biara mpo agyina execution models a etu mpɔn, a ɛba fam so. Bere a ɛda so ara yɛ beae titiriw wɔ compiler nhyehyɛe mu no, nnyinasosɛm ahorow a ɛka ho—nkae a wɔhwɛ so yiye, runtime state tracking, ne cross-paradigm nkyerɛase—fa amansan nyinaa ho. Wɔ platforms te sɛ Mewayz a ɛsom bo modularity ne adwumayɛ no, saa mfiridwuma mu nkabom a emu dɔ yi ne ade titiriw a ɛbɛma wɔakyekye adwumayɛ nhyehyɛe a ɛyɛ den na ɛtumi sesa. Ɛnam sɛdeɛ yɛbɛte aseɛ sɛdeɛ yɛbɛtumi abɔ kɔmputa wiase ahodoɔ a ɛte saa no ho ban no, yɛbue akwan foforɔ a ɛbɛtumi aba ama nyansa nteaseɛ a yɛde bɛdi dwuma wɔ baabi pɔtee a ɛhia.

Yɛ Wo Adwumayɛ OS Ɛnnɛ

Efi freelancers so kosi agencies so, Mewayz de module ahorow 208 a wɔaka abom ma nnwuma 138,000+ tumi. Fi ase kwa, upgrade bere a woanyin.

Yɛ Akontaabu a Wontua hwee →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime