Back

ⓘ ቤሲክ, BASIC. በኮምፒውተር ፍርገማ ዘርፍ ቤሲክ የሚሰኘው የከፍተኛ ደረጃ ፍርገማ ቋንቋዎችን የሚያዝል ቤተሰብ ነው። የቃሉም ትርጉም መሰረታዊ ወይም ቀላል ቢሆን የተሰየመው ግን ከእንግሊዝኛው B eginners A ll-purpose S ymbolic I n ..




ቤሲክ (BASIC)
                                     

ⓘ ቤሲክ (BASIC)

በኮምፒውተር ፍርገማ ዘርፍ ቤሲክ የሚሰኘው የከፍተኛ ደረጃ ፍርገማ ቋንቋዎችን የሚያዝል ቤተሰብ ነው። የቃሉም ትርጉም መሰረታዊ ወይም ቀላል ቢሆን የተሰየመው ግን ከእንግሊዝኛው B eginners A ll-purpose S ymbolic I nstruction C ode አኅጽሮተ ቃል ነበረ። ይህም ማለት "የጀማሪዎች ሙሉ-ምክንያት ምልክታዊ ትምህርታዊ ኮድ" የሚያሕል ነው።

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

                                     

1. ታሪክ

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

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

                                     

2.1. ቋንቋው ሥርአት አገብ 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 ወይም የቆሻሻ ሰብሳቢ ይዞ ስለሚመጣ ነው

                                     

2.2. ቋንቋው የመዝገብ አይነቶች

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

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

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

                                     

2.3. ቋንቋው የመጀመሪያ የቤሲክ ፕሮግራም ወይም ፍርግም

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

10 PRINT "BOB IS AWESOME!" 20 GOTO 10
                                     

2.4. ቋንቋው ክላሲክ ወይም የቀድሞው ቤሲክ

ክላሲክ ወይም የቀድሞው ቤሲክ፤ ይህ ምሳሌ በስራአት የተደራጀ መሆኑን 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 LENA$ = 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
                                     

2.5. ቋንቋው ዘምዝናዊ ቤሲክ

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

INPUT "What is your name"; UserName$ PRINT "Hello "; UserName$ DO INPUT "How many stars do you want"; NumStars Stars$ = " Stars$ = REPEAT$"*", NumStars