ኮምፒውተሮችሶፍትዌር

RPN: ስልተ, ዘዴዎች እና ምሳሌዎች

RPN አንድ ጊዜ በዓለም ላይ አንድ የኮምፒውተር በፕሮግራም መሠረት ተቋቋመ. ዛሬ በጣም በደንብ አይታወቅም. ስለዚህ, የኮሚክ ምሳሌ, ውጭ የሆነ "መቀልበስ" የፖላንድ ቋሊማ ግልበጣዎችን የሚያሳይ, አሁንም ቢሆን በአንዳንድ እውቀት ፕሮግራም በማድረግ በተሳሳተ መንገድ ሊሆን ይችላል. አይደለም በጣም ጥሩ ቀልድ ማብራራት, ነገር ግን በዚህ ጉዳይ ላይ ሙሉ በሙሉ በቂ ምክንያት ይሆናል.

infix

ሁሉም የኢንተርኔት ፕሮግራም, እና አብዛኞቹ ተማሪዎች አንቀሳቃሾች አጠቃቀም ጋር የታወቁ ናቸው. ለምሳሌ ያህል, ተለዋዋጮች x እና y ጥቅም ላይ የዋለ የመደመር ምልክት የሚሆን አገላለጽ x + የፀዲ እሴቶች. ያነሰ እንዲሁም በዚህ እውነታ ላይ, ማሽኖቹ ያለ ትልቅ ችግር ነው, infix ምልክትን ተብሎ በሒሳብ ተጠቀመን የተወሰደ መሆኑን እውነታ ነው ይታወቃል. ግቤት ሁለት እሴቶች ግራ እና ቀኝ ላይ ተመዝግቧል እንደ ይህ ከዋኝ ይቀበላል. ፕሮግራም ውስጥ ምልክትን ምልክቶች ክወናዎችን ጋር በአማራጭነት ጥቅም ላይ. ለምሳሌ ያህል, x + y ውሎ አድሮ አጠናቃሪ እና infix ምልክትን ይቀይራል ውስጥ እጥፍ (x, y) አንድ ተግባር, እንደ የተጻፈ ሊሆን ይችላል. ሆኖም ግን, ሁሉም ሰው ሒሳብ በየቀኑ ማለት ይቻላል ፕሮግራም ቋንቋ ውስጣዊ ሚኒ-ቋንቋ አንድ አይነት ቅርጽ ይህም የስላት መግለጫዎች, ለመጠቀም አይደለም በጣም ጥሩ ነው ያውቃል.

ቀመር ተርጓሚ

የመጀመሪያው በእርግጥ ስኬታማ Fortran ፕሮግራም ቋንቋ ሆኗል ስለዚህ በአብዛኛው ምክንያቱም ይህ ኮድ ውስጥ (ስርጭት) የተቀየሩ የ ከሂሳቡ አገላለጽ (ማለትም ቀመር ..), ከእርሷ በኃላ ስም - ቀመር ትርጉም. በዚያ በፊት, እነሱ, ለምሳሌ, መጻፍ ተግባር መልክ አጣጥፎ ነበረበት ((እና ማባዛት ለ, ሐ)). በ ፈርጋሚዎች C. በ B Mutliply ወደ አንድ አክል ያሉ ነገሮችን መጻፍ ነበረበት ምክንያቱም ሰር ልወጣ ቀመር በሥራ COBOL ችግር ውስጥ በጣም አስቸጋሪ ተደርጎ ነበር

infix ጋር ስህተት ምንድን ነው?

ችግሩ በ ከዋኞች ቅድሚያ እና associativity ያሉ ባህርያት ያላቸው መሆኑን ነው. በዚህ ምክንያት, infix ተግባር ትርጉም ያልሆኑ ተራ ተግባር ይሆናል. ለምሳሌ ያህል, ማባዛት ነው ከግራ ወደ ቀኝ ከ አንቀሳቃሾች አፈጻጸም ውስጥ ይሆናል እንደ አገላለጽ 2; + 3 * 4, 4 ሲባዛ በ 2 እና 3 ድምር, እኩል ነው ማለት ነው ይህም በተጨማሪ ወይም መቀነስ በላይ ቅድሚያ አለው. እንዲያውም, 4 በ 3 ማባዛት እና ይህ ምሳሌ infix አገላለጽ ስሌቱ ብዙውን ጊዜ የተሰማሩ እና operands ቅደም ተከተል ላይ ለውጥ የሚጠይቅ መሆኑን ያሳያል 2. ያክሉ. በተጨማሪም, ይበልጥ ግልጽ ምልክትን መመልከት ቅንፎች መጠቀም አስፈላጊ ነው. 2; + 3 * 4; + 5 4 በ 3 ማባዛት እና 2 እና 5 ማከል አለብዎት ማለት ነው; ምክንያቱም ለምሳሌ ያህል, (2; + 3) * (+ 5 4), የ ቅንፍ ያለ የተጻፈ ሊሆን አይችልም.

አንተ ኦፕሬተሮች ለማስላት በሚፈልጉት ቅደም ረጅም ማስታወስ ያስፈልገዋል. በዚህ ምክንያት, ብዙ ጊዜ, በስነ ለማወቅ መጀመር ተማሪዎች ትክክለኛ ቀዶ በትክክል ፈጽሟል እንኳ ቢሆን, የተሳሳተ ውጤቶችን ለማግኘት. ይህም የልብ እርምጃ መግለጫዎች ቅደም ተከተል ለማስተማር አስፈላጊ ነው. በመጀመሪያ, እርምጃው ቅንፍ, ከዚያም ማባዛት እና ማካፈል, እና በመጨረሻም በተጨማሪም እና መቀነስ ውስጥ መካሄድ አለበት. ነገር ግን infix ምልክትን ብቻ ተጨማሪ ሊታከል ይችላል የሚል የሚቻል "ትንሽ ቋንቋዎች" አንዱ ነው እንደ የሒሳብ አገላለጾች ለመጻፍ ሌላ መንገድ አለ.

ቅድመ ቅጥያ እና postfix ምልክትን

በጣም ታዋቂ አማራጭ ሁለት በፊት ወይም operands በኋላ ከዋኝ እንዲቀዳ ነው. እነዚህ ቅድመ ቅጥያ እና postfix ምልክትን በመባል ይታወቃሉ. Logician Yan Lukasevich 1920 ውስጥ የመጀመሪያው ፈለሰፈ. እሱም በፖላንድ ውስጥ ይኖሩ ነበር, ስለዚህ መዝገብ የፖላንድ ይባላል. Postfix ስሪት, በቅደም, ግልብጥ የፖላንድ ምልክት (ARF) ይባላል. ይህ ዝርዝር ውስጥ ከእነርሱ አንድ ብቻ ከግምት በቃ ስለዚህ እነዚህን ሁለቱን ዘዴዎች መካከል ያለው ብቸኛው ልዩነት; (ወደ ቀኝ ወይም ወደ ቀኝ ወደ ግራ ከግራ) መዝገብ ማንበብ በየትኛው አቅጣጫ ነው. የ OPN ከዋኝ የራሱ operands በኋላ የተጻፈ ነው. በመሆኑም አገላለጽ AB + ሀ + ለ የሚሆን አንድ ምሳሌ RPN ይወክላል

operands ያልተገደበ ቁጥር

ተጠቀመን እንዲህ ያለው ወዲያውኑ ጥቅም ይህ n-adic ከዋኝ በአጭሩ የሚያሳይ ነው እና infix ምልክትን ሁለት operands ጋር ይሰራል ብቻ በእርግጥ ነው, የቲ. ሠ ብቻ ሁለትዮሽ ክወናዎች በባህሪው ተስማሚ ናቸው. ለምሳሌ ያህል, ኤቢሲ @ ወደ ከዋኝ ሶስት operand በራሱ በግራ ላይ እርምጃ በዚህ ሁኔታ ኤ, ቢ እና ሲ ከፍተኛውን ዋጋ ነው እና የተግባር ጥሪ @ ጋር የሚጎዳኝ triadic ምልክት በመጠቀም በግልባጭ የፖላንድ መግለጫ ነው (A, B, C). አንተም እንደዚህ ዓይነት @ BC ወይም የሆነ ነገር እንደ infix, እንደ @ ምልክት ለመጻፍ ሞክር ከሆነ በቀላሉ አይሰራም እንደሆነ ግልጽ ይሆንልናል.

በ ትዕዛዝ የተሰጠው ቅድሚያ

RPN የተሰማራው ያለውን ቅድሚያ መልካቸው ትዕዛዝ የመወከል የሚችል ሌላ ጥቅም አሉት. ቁምፊዎች ክወናዎችን infix ምልክትን ከ ልወጣው ለማመቻቸት እንደ እነርሱ ሊካተቱ ይችላሉ ቢሆንም በተመሳሳይ ጊዜ, ቅንፎች ያስፈልገናል አያውቅም. ለምሳሌ ያህል, AB + C * - የማያሻማ አቻ (A + B) * C, ወደ ማባዛት የማባዛት ሁለተኛ operand ይሰጣል ይህም የተከናወነው በተጨማሪ, ድረስ ሊሰላ አይችልም እንዲሁ. > (AB +) * ሐ - -> (A + B) * ሐ የተሰላ AB + C * በአንድ ጊዜ አንድ ከዋኝ, እኛ AB + C * ማግኘት ከሆነ ይህ ነው;

ስሌት ስልተ

የ OPN ከዋኝ ጭቅጭቅ ሁለት እሴቶች ከእሷ በግራ ላይ የተጻፈው እንደ ይወስዳል አንድ ተግባር ጋር ተመሳሳይ ይመስላል. በውስጡ ስሌት ያለውን መንገድ ወደ ቁልል ክወናዎችን ጋር የሚያመሳስለው እና የመተንተን አስፈላጊነት ሊወገድ ነው እንደ ከዚህም በተጨማሪ, የፕሮግራም ማድረጊያ ቋንቋዎች ውስጥ ጥቅም ላይ ተፈጥሯዊ ምልክትን ነው. ለምሳሌ ያህል, አገላለጽ 5 + 6 * 7 ውስጥ arrester የ 5, 6, 7 * + ሆኖ ይታያል, እና ከግራ ወደ ቀኝ ከ ቅኝት በማድረግ በቀላሉ ሊሰላ ይችላል እና ቁልል ውስጥ እሴቶች ጻፍ. ኮምፒውተሩ ትውስታ የላይኛው አባል 2 የተመረጡ ክወና አንድ የጋራ ምልክት, ወደ ከዋኝ ጥቅም እና በተጀመረ ውጤት ትውስታ ተመለሱ. መቼ ስሌት አገላለጽ መጨረሻ ውጤት ቁልል አናት ላይ ይሆናል.

ለምሳሌ ያህል:

  • S = () 5, 6, ተከምሮ ላይ ይመደባሉ 7, * + 5.
  • በ ቁልል ላይ ይመደባሉ S = (5) 6, 7, * + 6.
  • S = (5, 6), 7 *, 7; + ወደ ቁልል ያኑሩ.
  • S = (5, 6, 7), * 2 + ወደ ቁልል, መጠቀም * የእሴቶች መምረጥ እና ቁልል ውስጥ ውጤት ያኑሩ.
  • S = (5, 6 * 7) = (5, 42) + የ + ተግባራዊ እና ቁልል ውስጥ ውጤት ለማስቀመጥ, በቁልሉ የተመረጡ 2 እሴቶች.
  • S = (+ 42 5) = (47) ስሌት ሲጠናቀቅ, ውጤቱ ወደ ቁልል አናት ውስጥ የሚከማች ነው.

ይህ ስልተ በተደጋጋሚ RPN ሊረጋገጥ ይችላል, ነገር ግን እያንዳንዱ ጊዜ ምንም ያህል ውስብስብ ያለውን ከሂሳቡ አገላለጽ, ይሰራሉ.

OPN እና ቁልሎችን በቅርበት የተገናኙ ናቸው. ይህ ምሳሌ በግልባጭ የፖላንድ ምልክትን ዋጋ ለማስላት ትውስታ መጠቀም እንደሚችሉ ያሳያል. ያነሰ ግልጽ እናንተ አጣዳፊ መሽኛ ውድቀት ውስጥ መደበኛ infix አገላለጽ ይመልሳል; የ ቁልል መጠቀም ይችላሉ መሆኑን ነው.

የፕሮግራም ቋንቋዎች ምሳሌዎች

ይህ (የፕሮግራሙ ክፍል ያሳያል) እንደ ፓስካል RPN ተገነዘብኩ.

ማስመሰያው ቁጥር ወይም ምልክት ክወና አለመሆኑን የሚወስነው ይህም አሰራር ተብሎ ዑደት ውስጥ ያለውን ቁጥሮች እና ኦፕሬተሮች ማንበብ. በመጀመሪያው ሁኔታ, ቁልል ውስጥ የተከማቸ እሴት, እና ሁለት የላይኛው ቁልል ቁጥሮች ተጓዳኝ እርምጃ ሁለተኛ የሚከናወንበት ሲሆን ውጤቱ የሚከማች ነው.

toktype: = NUM;

(ዎች) ማንበብ;

በ ሐ [ '+', '-', «*», '/'] ከሆነ ከዚያ ይጀምራሉ

ከዚያም eoln ከሆነ CN: = '' ሌላ ማንበብ (CN);

ከሆነ CN = '' ከዚያ

አንድ ሁኔታ

'+': Toktype: = መጨመር; '-': toktype: = ንዑስ;

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

መጨረሻ

ሌላ ይጀምራሉ

= -1 ሌላ ስህተት:; = c <> '+' - '' ከዚያም ስፆፍ ሀ = ከሆነ

ጋር: = CN

መጨረሻ

ያበቃል;

(አይደለም ስህተት) እና (toktype = NUM) ከዚያም getnumber ከሆነ;

toktype <> NUM ከዚያ ይጀምራሉ ከሆነ

የ y = ብቅ; x: = ብቅ;

አይደለም ከሆነ ታዲያ ስህተት

ሁኔታ toktype

አክል: z: = x + y; ንዑስ-z: = x-y; mul: z: = x * y; div: z: = x / y

መጨረሻ

የግፋ (z);

ሲ-ትግበራ RPN (በፕሮግራሙ ውስጥ የሚታየው ክፍል):

{(; ን ስ ን = strtok (0,) s = strtok (ዎች), ዋ) ለ

ሀ = strtod (ዎች, እና ሠ);

ከሆነ (ሠ> ዎች) የግፋ (ሀ);

#define rpnop (x) printf ( "% c:" * ዎች), ለ = ፖፕ (), አንድ = ፖፕ (), የግፋ (x)

ሌላ ከሆነ (* ዎች == '+') rpnop (ሀ + ለ);

ሌላ ከሆነ (* ዎች == '-') rpnop (ሀ - ለ);

ሌላ (* ዎች == «*») rpnop (ሀ * ለ) ከሆነ;

ሌላ ከሆነ (* ዎች == '/') rpnop (ሀ / ለ);

#undef rpnop

}

የሃርድዌር አፈጻጸም

በእነዚህ ቀናት ውስጥ, የኮምፒውተር ቴክኖሎጂ በጣም ውድ ጊዜ, ይህ ሲነሳ arresters መጠቀም ሰዎችን ለማስገደድ ጥሩ ሀሳብ አስቤ ነበር. በ 1960 ዎቹና ውስጥ., አሁን እንደ አልመልስም የፖላንድ ምልክትን ውስጥ ስራ ያለውን አስሊዎች, መግዛት ይቻላል ነበር. 2 ለማከል እና ከእነርሱ 3 2, ከዚያም 3 ማስገባት አለብዎት, እና "ሲደመር" አዝራር ተጫን. መጀመሪያ በጨረፍታ, ወደ ከዋኝ ጋር የግቤት operands ማስታወስ ውስብስብ እና አስቸጋሪ ይመስል ነበር, ነገር ግን አንድ ጊዜ በኋላ አንዳንድ አስተሳሰብ በዚህ መንገድ ሱሰኛ ናቸው እና ሌሎች በጣም ውስብስብ ነው እናም በጣም ውስን ነው ደደብ infix, እኔ ያልኩት ለምን እንደሆነ ሊገባኝ አልቻለም.

Burroughs ኩባንያ እንኳ ቁልል በቀር ማንም ሌላ ማህደረ ትውስታ ነበር ይህም አንድ mainframe, ሠራ. ማሽኑ የሚያደርገው ብቸኛው ነገር - ወደ ማዕከላዊ ቁልል ወደ ስልተ እና ዘዴዎች RPN ተተግብሯል. ሥራውን ሁሉም የላይኛው n እሴቶች ተፈጻሚ ይህም arresters ከዋኞች, ተደርገው ይታዩ ነበር. ለምሳሌ ያህል, የበለጠ የጋራ architectures ጋር መወዳደር አይደለም ፈጣን በቂ ቡድኑ ቁልል አናት ጀምሮ ተመለሱ አድራሻ ወሰደ: እንዲሁ ላይ. መ እንዲህ ያለ ማሽን የሕንጻ ቀላል አልነበረም, ነገር ግን. ብዙዎች, ይሁን እንጂ, አሁንም በእያንዳንዱ ፕሮግራም OPN መግለጫ ባለበት ኮምፒውተር ላይ እንዲህ ቀላል እና ቅንብርና አቀራረብ, በውስጡ መቀጠል አገኘ እውነታ አይጸጸቱም.

RPN ጋር አንድ ጊዜ አስሊዎች ተወዳጅ ነበሩ; እንዲሁም አንዳንድ ሰዎች አሁንም እነሱን ምርጫ ይሰጣል. በተጨማሪም, እነርሱ እንደ ተላኩ እንደ ቁልል-ተኮር ቋንቋዎች, አዳብሯል. ዛሬ ይህ ትንሽ ተጠቅሟል ነገር ግን የእርሱ የቀድሞ ተጠቃሚዎች አሁንም nostalgic ነው.

ስለዚህ በተቃራኒ የፖላንድ ቋሊማ ስለ ትርጉም ቀልዶች ምንድን ነው?

እኛ ቋሊማ ያለውን ከዋኝ, ወደ infix ተጠቀመን ይህ መደበኛ ሞቃት ውሻ ውስጥ እንደ ጥቅልል ውስጥ መሆን አለበት ብለው ያስቡ ከሆነ. የ RPN ሁለት ግማሾችን ስሌት በኋላ ዝግጁ therebetween ማግኘት ትክክል ውስጥ ይገኛል. አሁን አስቸጋሪ ክፍል ነው - የሰናፍጭ. እሷ ቲ, በ ቋሊማ ላይ አስቀድሞ ነው. ሠ ቀድሞውኑ unary ከዋኝ እንደ የሚሰላው. እንደ ሰናፍጭ ደግሞ uncalculated ሆኖ ይታያል አለበት, እና ስለዚህ ቋሊማ ቀኝ ተወስዷል እንዳለበት አመነ ... ነገር ግን የሚቻል ነው; ይህ በጣም ትልቅ ቁልል የሚጠይቅ ነበር ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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