KompyutaMapulogalamu

RPN: aligorivimu, njira ndi zitsanzo

RPN kamodzi anapanga maziko a mapulogalamu kompyuta dziko. Lero si odziwika bwino. Choncho, azithunzithunzi fanizo, yosonyeza "chigamulocho" masikono Polish soseji kunja, angathe sanamvetsedwe ndi ena mapulogalamu wodziwa. Osati bwino kufotokoza nthabwala, koma mu nkhani iyi kudzakhala chothetsera.

infix

mapulogalamu onse, ndi ana ambiri amadziwa kugwiritsa ntchito zizindikiro zosinthira. Mwachitsanzo, mawu akuti × + chimangirizo mfundo za zosintha × ndi Y ntchito kuphatikiza chizindikiro. Pasanathe chodziwika bwino ndi chakuti chabwerekedwa masamu kalembedwe, wotchedwa infix kalembedwe, Ndipotu, vuto lalikulu kwa makina. woyendetsa Izi amamulandira monga athandizira mfundo ziwiri zinalembedwa pa lamanzere ndi lamanja. Mu mapulogalamu kalembedwe ntchito optionally ndi ntchito zizindikiro. Mwachitsanzo, × + Y akhoza kulembedwa ngati ntchito za khola (×, Y), imene kompayila ndipo m'kupita otembenuka infix kalembedwe. Komabe, aliyense amadziwa masamu ndi wabwino kwambiri kugwiritsa ntchito mawu masamu, zomwe ndi mtundu wa mkati mini-chinenero pafupifupi chinenero mapulogalamu.

chilinganizo womasulira

Woyamba kwenikweni bwino chinenero Fortran mapulogalamu wakhala makamaka chifukwa cha mawu masamu (ie chilinganizo ..) Ndi atatembenuzidwa (Kuwulutsa) code, choncho dzina - chilinganizo Translation. Lisanaperekedwe, iwo anali kulemba Mwachitsanzo, apangidwe mu mawonekedwe a ntchito (ndi kuchulukitsa (b, c)). Mu COBOL vuto la ndikukhazikitsa basi kutembenuka chilinganizo ankaona zovuta chifukwa mapulogalamu anali kulemba zinthu monga kuwonjezera Kuti B Mutliply Mwa C.

Kodi chalakwika ndi infix?

vuto, kuti ntchito ali ndi katundu monga kuwalepheretse ndi associativity. Chifukwa cha ichi, kutanthauzira infix ntchito amakhala sanali zazing'ono ntchito. Mwachitsanzo, chulutsa ali kuwalepheretse kuposa Kuwonjezera kapena wochotsera, kutanthauza kuti mawu 2 + 3 4 si wolingana ndi Uwerenge 2 ndi 3, kuchulukitsa ndi 4, monga izo zikanadzakhala mu ntchito ya ntchito kuchokera kumanzere kupita kumanja. Ndipotu, kuchulukitsa 3 ndi 4 ndi kuwonjezera 2. Chitsanzo chimenechi chikusonyeza kuti mawerengedwe a infix akuti amafunika kusintha pa dongosolo la ntchito ndi operands. Komanso, m'pofunika ntchito braces kuyang'ana kalembedwe momveka kwambiri. Mwachitsanzo, (2 + 3) * (4 + 5) sangathe olembedwa popanda parentheses, chifukwa 2 + 3 4 + 5 zikutanthauza kuti muyenera kuchulukitsa 3 ndi 4 ndi kuwonjezera 2 ndi 5.

Dongosolo limene mukufuna kuwerengera ntchito pamafunika yaitali kumbukirani. Chifukwa cha zimenezi, ophunzira amene kuphunzira masamu, nthawi zambiri zotsatira cholakwika, ngakhale ntchito kwenikweni anachita molondola. M'pofunika kuphunzitsa kuti mawu kanthu ndi mtima. Choyamba, zochita ziyenera kuperekedwa mu parentheses, ndiye chulutsa ndi kugawikana, ndipo potsiriza Kuwonjezera ndi wochotsera. Koma pali njira ina kulemba mawu masamu monga infix kalembedwe ndi mmodzi wa zotheka "zilankhulo yaing'ono" kuti akhoza kuwonjezeredwa zambiri okha.

Manambala oyambirira ndi postfix kalembedwe

Ziwiri zomwe odziwika bwino kwambiri ndi kulemba woyendetsa isanayambe kapena itatha operands ake. Iwo amatchedwa manambala oyambirira ndi postfix kalembedwe. Logician Yan Lukasevich anatulukira woyamba mu 1920. Iye ankakhala mu Poland, choncho umboni imatchedwa Polish. Postfix Baibulo, motero, wotchedwa n'zosiyana Polish kalembedwe (ARF). Kusiyana komwe kulipo pakati pa njira ziwiri izi ndi malangizo amene kuwerenga mbiri ya (kuchokera kumanzere kupita kumanja kapena kumanzere kupita kumanzere), choncho wokwanira kuganizira mwatsatanetsatane mmodzi yekha wa iwo. The woyendetsa OPN kwalembedwa pambuyo operands ake. Motero mawu akuti AB + akuimira chitsanzo RPN chifukwa A + B.

MALIRE chiwerengero cha operands

Ubwino atangochimwa kalembedwe ndi kuti chifupikitso cha N-adic woyendetsa ndi infix kalembedwe kwenikweni kokha ntchito ndi operands awiri, T. E. Kodi analandira oyenera okha ntchito bayinare. Mwachitsanzo, ABC @ ndi n'zosiyana Polish akuti ntchito triadic chizindikiro ndilo phindu pazipita A, B ndi C. Pankhaniyi woyendetsa amachita kumanzere atatu operand palokha ndipo limafanana ndi ntchito foni @ (A, B, C). Mukayamba kulemba @ chizindikiro monga infix, monga A @ BC kapena chinachake chonga icho, zimaonekeratu kuti si ntchito.

Kutsogoza kwapatsidwa mwa dongosolo

RPN ali ndi mwayi wina kuti kutsogoza wa ntchito akhoza ukufanizidwa ndi kuti maonekedwe awo. Pa nthawi yomweyo sufunika braces, ngakhale akhale m'gulu monga ntchito zilembo magawowa kutembenuka kwa infix kalembedwe. Mwachitsanzo, AB + C * - lomveka ofanana (A + B) * C, choncho chulutsa sangathe kuchita masamu mpaka Kuwonjezera anachita, zomwe zimapereka operand wachiwiri chulutsa. Ndiko kuti, ngati imaŵerengedwa AB + C * ndi woyendetsa mmodzi pa nthawi, ife tikufika AB + C * -> (AB +) * C -> (A + B) * C.

mawerengedwe aligorivimu

The OPN woyendetsa awoneka mofanana monga ntchito imene Amakhala ndi mfundo mfundo ziwiri zinalembedwa kumanzere kwake. Komanso, ndi kalembedwe zachilengedwe ntchito mu zinenero mapulogalamu, monga mwa unsembe wa mawerengedwe ake limafanana ndi ntchito mulu ndi kufunika parsing likuchotsedwa. Mwachitsanzo, arrester ku mawu 5 + 6 7 adzaoneka monga 5, 6, 7 *, + ndipo akhoza kuchita masamu chabe ndi chindodo kuchokera kumanzere kupita kumanja ndi kulemba mfundo mu magazini a. Nthawi chizindikiro wamba ntchito, osankhidwa ndi zinthu chapamwamba 2 kukumbukira computer, woyendetsa ntchito ndi zotsatira anabwerera pamtima. Pamene mapeto chifukwa cha mawerengedwe akuti adzakhala pamwamba pa mulu wa.

Mwachitsanzo:

  • S = () 5, 6, 7, * + 5 anaika pa mulu wa.
  • S = (5) 6, 7, * + 6 anaika pa mulu wa.
  • S = (5, 6), 7 *, 7 + ikani okwana.
  • S = (5, 6, 7), 2 + kusankha mfundo ku chimulu, ntchito ndipo ikani chifukwa mu mulu wa.
  • S = (5, 6 7) = (5, 42) + 2 makhalidwe osankhidwa okwana, kuti ntchito + ndi kuika chifukwa mu mulu wa.
  • S = (5 + 42) = (47) mawerengedwe udzatha, chifukwa amasungidwa pamwamba pa mulu wa.

aligorivimu Izi akhoza kufufuzidwa RPN mobwerezabwereza, koma nthawi iliyonse ntchito, ziribe kanthu momwe zovuta mawu masamu.

OPN ndi stacks n'zogwirizana. Mwachitsanzo Izi zimaonetsa momwe ntchito kukumbukira kuwerengera phindu n'zosiyana Polish kalembedwe. Zosadziŵika ndi zimene mungagwiritse ntchito mulu, akatembenuka muyezo infix akuti zoopsa pachimake aimpso.

Zitsanzo za zinenero mapulogalamu

Pascal RPN anazindikira monga chonchi (limasonyeza gawo la dongosolo).

Kuwerenga manambala ndi ntchito mu mkombero otchedwa ndondomeko, amene amadziwa ngati chizindikiro nambala kapena chizindikiro ntchito. Mbali yoyamba, phindu kusungidwa mu mulu, ndipo lachiwiri la awiri manambala chapamwamba okwana kanthu lolingana imagwiridwa ndi zotsatira awasungira.

toktype: = Num;

kuwerenga (s);

ngati m'ma ku [ '+', '-' '*', '/'] amayamba

ngati eoln ndiye CN: = '' china kuwerenga (CN);

ngati CN = '' ndiye

nkhani ya

'+': Toktype: = kuwonjezera; '-': toktype: = boma;

'*': Toktype: = mul; '/': Toktype: = div

kumapeto

aliyense anayamba

ngati = '-' ndiye sgn: = -1 china cholakwa: = m'ma <> '+';

ndi: = CN

kumapeto

kutha;

ngati (si kulakwa) ndi (toktype = Num) ndiye getnumber;

ngati toktype <> Num amayamba

Y = Pop; ×: = Pop;

ngati si kusokera ndiye

choncho toktype wa

kuwonjezera: z: = × + Y; boma: z: = x-Y; mul: z: = × * Y; div: z: = × / Y

kumapeto

Kankhani (z);

C-kukhazikitsa RPN (wasonyeza mbali ya dongosolo):

pakuti (s = strtok (s, w); m; m = strtok (0, w)) {

ndi = strtod (s, & e);

ngati (e> s) Kankhani (a);

#define rpnop (x) printf ( "% m'ma:" * s), b = Pop (), ndi = Pop (), Kankhani (x)

chirichonse ngati (* m == '+') rpnop (a + b);

chirichonse ngati (* m == '-') rpnop (a - b);

chirichonse ngati (* m == '*') rpnop (a * b);

chirichonse ngati (* m == '/') rpnop (a / b);

#undef rpnop

}

implementations hardware

M'masiku amenewo, pamene makompyuta anali okwera mtengo kwambiri, ankaganiza bwino kukakamiza anthu kugwiritsa ntchito uyenderere arresters. Mu 1960, ntchentche. Monga tsopano, izo zikanakhala zotheka kugula toŵerengera, amagwira ntchito mu n'zosiyana Polish kalembedwe. Kuwonjezera 2 ndi 3 cha iwo alowe 2, ndiye 3, ndi akanikizire "kuphatikiza" batani. Koyamba, athandizira operands kuti woyendetsa amawonetsa zovuta ndi zovuta kukumbukira, koma patapita kanthawi ena asiye njira iyi maganizo ndipo sanathe kumvetsa chifukwa ena amaumirira infix opusa, amene ali ovuta kwambiri yochepa.

Burroughs kampani ngakhale anamanga mainframe, yemwe analibe kukumbukira zina, kupatula okwana. Chinthu chokha chimene chimapangitsa makina - anagwiritsa ntchito ma aligorivimu ndi njira RPN kuti mulu chapakati. Onse unathandiza ankaziona ngati arresters ntchito, zimene zikugwirizana ndi mfundo chapamwamba N. Mwachitsanzo, gulu anatenga Bwererani Address kuchokera pamwamba pa mulu, ndi zina zotero. D. The mamangidwe a makina amenewa anali osavuta, koma osati moti kupikisana ndi mapangidwe ambiri. Ambiri Komabe, pali bondo chakuti amachita yosavuta komanso yokongola kuti kompyuta komwe iliyonse pulogalamu kunasonyeza OPN, anapeza kupitiriza ake.

Nthawi ina toŵerengera ndi RPN anali otchuka ndi anthu ena kuwapatsa mukufunira. Komanso, iwo anayamba zinenero okwana olaula, monga Kudzachita. Lero ndi ntchito pang'ono, koma nostalgic kuchokera kwa ogwiritsa zake zakale.

Choncho kodi tanthauzo nthabwala za n'zosiyana Polish soseji?

Ngati tingayerekezere kuti woyendetsa wa soseji, ndi infix kalembedwe, izo ziyenera kukhala mwa mayina monga ochiritsira otentha galu. The RPN ili kumanja amachepetsa awiri kupeza therebetween wokonzeka pambuyo mawerengedwe. Tsopano pakubwera chovuta - mpiru. Mkaziyo ali kale pa soseji ndi, T. E. Kale masamu ngati woyendetsa unary. Akukhulupirira kuti mpiru ayeneranso akuonetsedwa ngati uncalculated choncho chiyenera anasamukira ku lamanja la soseji ... Koma n'zotheka, izi kungafune chimulu chachikulu kwambiri ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ny.atomiyme.com. Theme powered by WordPress.