Cookie Policy Terms and Conditions Wikipedia - ቤሲክ (BASIC)

ቤሲክ (BASIC)

ከWikipedia

በኮምፒውተር ፍርገማ (ፕሮግራሚንግ) ዘርፍ ቤሲክ (BASIC) የሚሰኘው የከፍተኛ ደረጃ ፍርገማ ቋንቋዎችን የሚያዝል ቤተሰብ ነው። የቃሉም ትርጉም 'መሰረታዊ' ወይም 'ቀላል' ቢሆን የተሰየመው ግን ከእንግሊዝኛው Beginner's All-purpose Symbolic Instruction Code አኅጽሮተ ቃል ነበረ። ይህም ማለት "የጀማሪዎች ሙሉ-ምክንያት ምልክታዊ ትምህርታዊ ኮድ" የሚያሕል ነው።

ባሲክ መጀመሪያ በ1963 እ.ኤ.አ.ኮምፒውተር ዘርፍ ውጭ የሚያጥኑ ተማሪዎች ኮምፒውተሮች ይጠቀሙ ዘንድ ጆን ጆርጅ ኬሜኒና ቶማስ ዩጂን ኩርትዝ አበጅተው በዳርትመ ከሌጅ አቀረቡት። በጊዜው እያንዳንዱ ኮምፒውተር ሌሱ የሚሆን ሶፍትዌር መጻፍ ይጠይቅ በነበረበት ሁኔታ በሳይንስና በሂሳብ የተሰማሩ ሰዎች ብቻ የመስራት ዝንባሌ ነበሯቸው። ባሲክ በሰማኒያዎቹ (እ.ኤ.አ.) በቤት ኮምፒውተሮች የተሰራጨ ሲሆን፥ ዛሬም በአንዳንድ በጣም በተለወጡ ቋንቋዎች አማካኝነት ተጠቃሚዎች አሉት።

ይዞታ

[ለማስተካከል] ታሪክ

ክ1960ዎቹ (እ.ኤ.አ.) አመታት መሃክል በፊት ኮምፒተሮች በጣም ውድና ለተወሰኑ አላማ ባላችው ስራሞች ላይ የተወሰኑ መሳሪያዎች ነበሩ። ቀላል የባች ሂደቶች (batch processing) አይነቶችን በመጥቀም በአንድ ግዜ አንድ ስራ ብቻ ይሰሩ ነበር። በ1960ዎቹ ውስጥ የኮምፒውትር ዋጋ የትንንሽ ድርጅቶት የግዢ አቅም እስከሚፈቅደው ድረስ አሽቆለቆል። ፍትነታቸውም ክመጨመሩ የተነሳ የለስሯ የሚቀመጡበት ግዜ ይበዛ ጀመር። የዘመኑ የፕሮግራም ቋንቋዎች አሰራር ልክ እንደ ማሽኖቹ ለተውሰኑ ሰራዎች የታለሙ (እንደ ሳይንስ ነቅ ፎርሙላዎች ወይም የጽሁፍ ሰሌዳዎች) ነበሩ። እነዚህ ባንድ ስራ የተወሰኑ ማሽኖች በመወደዳቸው፥ የቋንቋዎቹ የአሰራር ፍጥነት ከሁሉም ግጽታዎች የላቀ ወሳኝነት ነበረው። ባብዛኛው እነዚህን ቋንቋዎች መጠቀም አስቸጋሪና ሥርአት አገባችው (syntax) በጣም የተለያየ ነበር።

በዚህ ግዜ ነው የግዜ መጋራት (time sharing) ሃሳብ ተቀባይነት እያገኘ የመጣው። በዚህ ሲስተም ስር የዋና ማሽን የስራ አቅም ይከፋፈልና እያንዳንዱ ተጠቃሚ በየተራው አነስተኛ ግዜ ይሰጠዋል። እነዚህ ማሽኖች በቂ ፍጥነት ስለነበራቸው አብዛኛው ተጠቃሚ ለራሱ አንድ ማሽን የተመደበለት ያስመስሉት ነበር። በቴዎሪ ደረጃ የግዜ መጋሯት ለኮምፒውትር የሚወጣውን ወጪ በእጭጉ ቅንሰዋል:: በመቶ ለሚቆጠሩ ተጠቃሚዎች አንድ ማሺን ይበቃ ስለነበር።


[ለማስተካከል] የመጀመሪያዎቹ አመታት

...

[ለማስተካከል] ታላቅ እድገት ። የቤት ኮምፒውትር ዘመን

...

[ለማስተካከል] ብስለት — የግል ኮምፒውተር ዘመን

...


[ለማስተካከል] ቋንቋው

[ለማስተካከል] ሥርአት አገብ (Syntax)

የባሲክ አረፍተ የመስመር መቀጠያ ፊደል ከሌለ መስመር መጨረሻ ላይ ያልቃሉ። በጣም አነስተኛ ባሲክ LET, PRINT, IF and GOTO የሚሉት ትእዛዞች ይበቁታል::

የመስመር ቁጥሮች የቤት ኮምፒውተር ባሲክን ከሚለዩ ገጽታዎች አንዱ ነው። አንዳንድ ቆይተው የመጡ የባሲክ ተርጓሚዎች (interpreters) አምበሮ የሚመጡ RENUMBER የሚባል መስመር ቆጣሪ ትእዛዝ ነበራችው ።

አንዳንድ ዘምዝናዊ ባሲኮች የመስመር ቁጥርን ትተው አብዛኛው በሌሎች ቋንቋዎች (እንደ ሲ ና ፓስካል) የሚታወቁትን የመዝገብና (data) የመቆጣጠሪያ (control) አቀማመጥን አስገብተዋል። (አንዳንድ በመስመር ቁጥር ላይ የተመሰረቱም ቋንቋዎች እነዚህን አቀማመጦች ማስገባታችውን መመዝገብ ያሻል።)

  • do - loop - while - until - exit
  • on x goto / gosub (switch & case)

በቅርብ የተሰሩ እንደ ቪሱአል ባሲክ (Visual Basic) የባሲክ ተዛማጆች እቃ አዘል ገጽታዎችን እንደ For Each...Loop ያሉ አቀማመጦችን ሰብስቦችና ተርታዎችን በጥምዝ (loop) ለመፈተሽ ቪሱአል ባሲክ 4 አንስቶ ሲያስገቡ ብእቃ አዘለ ፍርግምና ውርስ ተብሎ የሚታወቀውን አሰራር በመቅረብ አስገብተዋል። የማህደረ እውስታ (memory) አስተዳደር ዘዴው ካብዛኛው የተደራጁ ቋንቋዎች የቀለለ ነው። ይህም ሊሆን የቻለው ቋንቋው garbage collection ወይም የቆሻሻ ሰብሳቢ ይዞ ስለሚመጣ ነው::


[ለማስተካከል] አደረጃጀትና የፍሳሽ ቁጥጥር

ባሲክ እንደ ሲ የውጭ ቤተ መጻህፍት (external library) የለውም። የቋንቋው ተርጓሚ (interpreter) ሰፊ ቤተ መጻህፍትና አብረውት የተገነቡ ፕሮሲጀሮች (procedures) ይይዛል: ለነዚህ ፕሮሲጀሮች አንድ ፈርጋሚ ሙያውን ለመማርም ሆነ ቀለል ያሉ ፕሮግራሞችን ለመጻፍ የሚያስፈልጉትን አብዛኞቹን መሳሪያዎች (የሂሳብ ተግባሯትን፥ የፊደል ክር-string, የማስገቢያና የማሶጪያ መስኮት፥ የስዕልና የመዘገብ መሳሪያ) ያካትታል። አንዳንድ የባሲክ ቤተሰብ አባል ቋንቋዎች ፈርጋሚው የራሱን ፕሮሲጀሮች እንዲጽፍ አይፈቅዱም:: ፈርጋሚው ከአንድ ቅርንጫፍ ወደሌላ ለመዘዋወር በዛት GOTOን በመጠቀም ፕሮግራሙን ይጽፋል። የዚህ ውጤት ደግሞ ለአንባቢ እጅግ አስቸጋሪ የሆነ የፕሮግራም ምንጭ (source)፥ በተለምዶ "እንደ ፓስታ የተወሳሰበ" ወይም spagetti code፥ አይነት ይሆናል። GOSUB የቅርንጫፍ ዝውውሩን የሚያደርገው ወደ ንዑስ ክንውኖች (አነስተኛ የፕሮግራም አካሎች) ሲሆን ባብዛኛው ያለግቤት (parameters)ና ያለሰፈር ተለዋጭ (local variable) ነው። ዘመናዊ የባሲክ ስሪቶች እንደ ሚክሮሶፍት ኪክ ባሲክ ሙሉ ንዑስ ክንውኖችንና (subroutines) ተግባራትን (functions) አስገብተዋል። ይህ ባሲክ ከሌሎች ቋንቋዎች የሚለይበት አንዱ ገጽታው ነው። ባሲክ፥ እንደ ፓስካል፥ መልስ በማይጠበቅባቸው ፕሮሴጀሮችና (ንዑስ ክንውኖች የምንላቸው) መልስ በሚሰጡት (ተግባራት) መሃከል ልዩነት ያደርጋል። ሌሎች እንደ ሁሉንም በተግባራት ስያሜ (አንዳንዶቹን ባለ ባዶ መልስ በማለት) ለዩነትን አያደርጉም።

[ለማስተካከል] የመዝገብ አይነቶች

ባሲክ ለፊደል ክሮች (strings) ስሪ የሚያገለግሉ ጥሩ ተግባራት ያለው ቋንቋ እንደሆነ ይታወቃል። የቀድሞው የዚሁ ቤተሰብ ቋንቋዎች እንደ (LEFT$, MID$, RIGHT$) የመሳሰሉት መሰረታዊ ተግባራት በማቀፍ የፊደል ክሮችን የሚመለከቱትን ስራዎች ያቃልላሉ። የፊደል ክሮች የለት ተለት ስራዎች ላይ በተደጋጋሚ ሰላሚያጋጥሙ ከሌሎች የዘመኑ ቋንቋዎች በዚህ ረገድ ብልጫ አሳይቷል።

የቀድሞው የዳርትሙንት ባሲክ ለቁጥርና ለፊደል ክር አይነቶችን ብቻ ድጋፍ ይሰጥ ነበር። የሙሉ ቁጥሮች (integers) አይነቶች አልነበሩም። ቁጥሮች በሙሉ ባለነጥብ (floating points) ነበሩ። የፊደል ክሮች አለ ተለዋዋጭ ርዝመት ነበሩ። ባሲክ የፊደል ክርም ሆነ የቁጥር ተርታዎችን (arrays) እንዲሁ ባለሁለት ማአዘን ተርታዎችን የሚደግፍ ወይም የሚይዝ ቋንቋ ነበር።

ማንኛው ዘምዝናዊ የባሲክ ቤተሰብ ቋንቋ ቢያንስ ቁጥሮችንና የፊደል ክሮችን ይይዛል። ...

[ለማስተካከል] ምሳሌ

[ለማስተካከል] የመጀመሪያ የባሲክ ፕሮግራም ወይም ፍርግም

ጀማሪ የባሲክ ፈርጋሚዎች የቤት ኮምፒውትሯቸው ላይ የሚጀምሩት በ ከርኒጋንና ሪቺ አማካኝነት እውቅና ያገኘውን ሰላም አለም ፍርግም አይደለም። ይልቁኑ የሚቀጥለውን የማያባራ ጥምዝ የሚመስል ነው።


10 PRINT "BOB IS AWESOME!"
20 GOTO 10

[ለማስተካከል] ክላሲክ ወይም የቀድሞው ባሲክ

ክላሲክ ወይም የቀድሞው ባሲክ፤ ይህ ምሳሌ በስራአት የተደራጀ መሆኑን GOTO ን መጠቀም የግድ ወደተመሰቃቀለ የፍርግም እንደማያመሯ ያሳያል።

10 INPUT "What is your name: "; U$
 20 PRINT "Hello "; U$
 30 REM
 40 INPUT "How many stars do you want: "; N
 50 S$ = ""
 60 FOR I = 1 TO N
 70 S$ = S$ + "*"
 80 NEXT I
 90 PRINT S$
 100 REM
 110 INPUT "Do you want more stars? "; A$
 120 IF LEN(A$) = 0 THEN GOTO 110
 130 A$ = LEFT$(A$, 1)
 140 IF (A$ = "Y") OR (A$ = "y") THEN GOTO 40
 150 PRINT "Goodbye ";
 160 FOR I = 1 TO 200
 170 PRINT U$; " ";
 180 NEXT I
 190 PRINT

[ለማስተካከል] ዘምዝናዊ ባሲክ

"ዘምዝናዊ" የተደፘጀው ባሲክ (ለምሳሌ፥ ኩኢክባሲክ ና ፓወርባሲክ), GOTO የተሰኘውን ቃል በዘመናዊ ቃላት ተክተው።

INPUT "What is your name"; UserName$
PRINT "Hello "; UserName$
DO
   INPUT "How many stars do you want"; NumStars
   Stars$ = ""
   Stars$ = REPEAT$("*", NumStars)   ' <- ANSI BASIC
   --or--
   Stars$ = STRING$(NumStars, "*")   ' <- MS   BASIC
   PRINT Stars$
   DO
      INPUT "Do you want more stars";  Answer$
   LOOP UNTIL Answer$ <> ""
   Answer$ = LEFT$(Answer$, 1)
LOOP WHILE  UCASE$(Answer$) = "Y"
PRINT "Goodbye ";
FOR I = 1 TO 200
   PRINT UserName$; " ";
NEXT I
PRINT


[ለማስተካከል] Notes


[ለማስተካከል] References

[ለማስተካከል] Standards

  • ANSI/ISO/IEC Standard for Minimal BASIC:
    • ANSI X3.60-1978 "FOR MINIMAL BASIC"
    • ISO/IEC 6373:1984 "DATA PROCESSING - PROGRAMMING LANGUAGES - MINIMAL BASIC"
  • ANSI/ISO/IEC Standard for Full BASIC:
    • ANSI X3.113-1987 "PROGRAMMING LANGUAGES FULL BASIC"
    • ISO/IEC 10279:1991 "INFORMATION TECHNOLOGY - PROGRAMMING LANGUAGES - FULL BASIC"
  • ANSI/ISO/IEC Addendum Defining Modules:
    • ANSI X3.113 INTERPRETATIONS-1992 "BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987"
    • ISO/IEC 10279:1991/ Amd 1:1994 "MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT"
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu