水镜先生和司马懿是什么关系| 农业户口和非农业户口有什么区别| 1882年属什么生肖| 政治庇护是什么意思| pc是什么| 羊鞭是什么部位| 大便有血是什么原因男性| 常喝柠檬水有什么好处和坏处| 刀子是什么意思| 一天什么时候最热| 人民是什么| 蜂蜜什么时间喝最好| 小腿痛什么原因| 甘油三酯高吃什么药好| 229什么星座| 刮痧对身体有什么好处| 4pcs是什么意思| 胎盘能吃吗有什么作用与功效| 小孩经常流鼻血是什么原因| 心脏病挂什么科| 小鹿乱撞是什么意思| 鸟屎掉手上有什么预兆| 开飞机是什么意思| 守望先锋是什么类型的游戏| 大便黑色是什么原因| 业已毕业是什么意思| 灵芝泡水喝有什么功效| cba什么时候开始比赛| 尿道口发炎用什么药| 铁树开花什么样| 不喜欢是什么意思| 生孩子送什么| 嘴唇周围长痘痘是什么原因导致| 狗可以吃什么| 妍五行属性是什么| 为什么孩子要跟爸爸姓| 什么叫相向而行| 头疼是什么原因| 心脏病是什么原因引起的| 96166是什么电话| 户口本丢了有什么危害| 上发条是什么意思| 泌尿科挂什么科| d cup是什么意思| 谌读什么| 吃什么通便效果最好最快| 胎儿左心室点状强回声是什么意思| 孕妇感冒挂什么科| 1997年是什么生肖| 大象像什么| 什么叫体位性低血压| 社会很单纯复杂的是人是什么歌| 呆滞是什么意思| 急性扁桃体炎什么原因导致的| 以纯属于什么档次| 2017年属鸡的是什么命| 画作是什么意思| 子宫内膜厚吃什么食物好| 疥疮是什么| 风调雨顺是什么生肖| 火命适合什么颜色| 梨和什么一起榨汁好喝| 正月初二是什么星座的| 烘培是什么意思| 县政府党组成员什么级别| 头疼是什么原因导致的| 体重下降是什么原因| 梯子是什么| 老虎菜为什么叫老虎菜| 葛根和粉葛有什么区别| 鲨鱼吃什么| 十月份出生的是什么星座| 睾丸是什么| 检查艾滋病挂什么科| 牛奶盒属于什么垃圾| 左肺上叶纤维灶是什么意思| 勾心斗角是什么意思| 喝酒后腰疼是什么原因| 梦到吃苹果是什么意思| 举案齐眉是什么意思| 骑自行车有什么好处| 猪心炖什么治失眠| 750是什么意思| 高钾血症是什么原因引起的| 美国为什么帮以色列| 李子什么时候吃最好| 牙膏什么牌子好| 金玉其外败絮其中是什么意思| 强的松又叫什么名字| 家产是什么意思| 小巧玲珑是什么意思| 什么的麦子| 食人鱼长什么样| 附身是什么意思| 龙须菜是什么菜| 茉莉花什么时候开花| 血常规24项能查出什么病| 臣字五行属什么| conch是什么牌子| 胆碱酯酶低是什么原因| 浅卡其色裤子配什么颜色上衣| 入珠是什么意思| 198是什么意思| 腊月是什么生肖| 舌系带挂什么科| 普通门诊和专家门诊有什么区别| 鹅什么时候开始下蛋| 鹅口疮有什么症状| 头疼是为什么| 耳鸣是什么原因造成的| 过敏擦什么药膏好得快| 戒色是什么意思| 骨骼肌率是什么意思| 南浦大桥什么时候建成| 什么是六合| 四海扬名是什么生肖| queen是什么意思| 舌根苔白厚腻是什么原因| 中耳炎吃什么药效果好| ercp是什么意思| 格色是什么意思| 得水痘不能吃什么| 员外是什么生肖| 姨妈是什么| 肾虚吃什么好| 身上痒是什么原因引起的| 渗透率是什么意思| 奥美拉唑什么时候吃| 2楼五行属什么| 大便潜血弱阳性是什么原因| 为什么经常长口腔溃疡| 吃什么能长胖| 乳腺增生吃什么好| 梦到鬼是什么意思| 吃什么可以去脂肪肝| 对立面是什么意思| 陈赫火锅店叫什么名字| 脚板痛是什么原因| 十二生肖各代表什么花| 猫头鹰吃什么| 张国荣属什么生肖| 6月13日是什么星座| 五朵玫瑰花代表什么意思| ab型血可以给什么血型输血| 涤棉是什么材质| 蜜蜂为什么会蜇人| 什么叫脘腹胀痛| 咸鱼翻身是什么意思| 鱼鳞云代表什么天气| 海马体是什么意思| 办理港澳通行证需要带什么证件| 屠苏酒是什么酒| 西洋参什么季节吃最好| 肉蔻是什么样子| 摩尔是什么| 文曲星是什么神仙| 甲状腺彩超能查出什么| 丙肝阳性是什么意思呢| 黑茶属于什么茶| 湿气太重吃什么好| 豆奶不能和什么一起吃| 笋吃多了有什么危害| 晚霞是什么| 长脸适合什么发型| 印第安老斑鸠什么意思| 凤凰花什么时候开| 什么姿势最舒服| 梦见大蛇是什么意思| 晚上睡觉腿抽筋是什么原因| 围子是什么动物| 酸梅汤什么人不能喝| 什么是性高潮| 黄痰吃什么药最好| 金骏眉属于什么茶类| 信手拈来是什么意思| 布洛芬起什么作用| 码放是什么意思| 为什么房间有蟑螂| 长期喝什么茶能降三高| 全身检查挂什么科| 梦到孩子丢了是什么征兆| 什么是多囊卵巢综合症| 软件开发属于什么行业| 八月一号什么星座| 夜宵吃什么好| 减脂是什么意思| 天热出汗多是什么原因| 滑档是什么意思| 益生菌什么时间段吃效果好| 怀孕抽烟对孩子有什么影响| 轻度高血压吃什么食物可以降压| 前列腺穿刺是什么意思| 肺部真菌感染吃什么药| 三头六臂开过什么生肖| 被臭虫咬了擦什么药| 妍什么意思| 火红火红的什么| 三氯蔗糖是什么东西| 倾注是什么意思| cea是什么意思| 什么人不宜喝咖啡| 四相是什么意思| 脾虚湿气重吃什么| 矿泉水敷脸有什么作用| gps是什么意思| 保育员是什么| 上梁不正下梁歪是什么意思| 舌苔白吃什么药效果好| 喝蛋白粉有什么好处| 肾盂肾炎吃什么药| 大腿根部痒是什么原因| 口渴是什么病的症状| 缘是什么生肖| 古代女子成年行什么礼| 国酒是什么酒| 睾丸疼痛挂什么科| 吃山竹有什么好处和坏处| 胃有灼热感是什么原因| 上海九院是什么医院| 小孩便秘是什么原因引起的| 牙根吸收是什么意思| 产后第一次来月经是什么颜色| 实质是什么意思| 猫能看到什么颜色| 酸萝卜别吃什么意思| 小孩眼屎多是什么原因引起的| 脸上过敏擦什么药膏| 男人做噩梦是什么预兆| 什么颜色防晒| 肝火是什么原因引起的| 低频是什么意思| yair是什么牌子的空调| 消融手术是什么意思| 生活惬意是什么意思| 八月三十日是什么星座| 上焦中焦下焦是什么| 慢性气管炎吃什么药最有效| 风暴是什么意思| 鼻血止不住是什么原因| 解说是什么意思| 骨质增生吃什么药| 手足口吃什么药| mia是什么意思| 乍一看是什么意思| 脑肿瘤有什么症状| 降压药什么时候吃比较好| 摩羯属于什么象星座| 冠脉cta是什么检查| 酒是什么| 什么是断掌| 六味地黄丸适合什么人吃| 晚上睡不着是什么原因引起的| 上热下寒吃什么药| 孩子大便出血什么原因| 龟头发红是什么原因| 狼来了的寓意是什么| 卧榻是什么意思| 孕妇吃鸽子蛋对胎儿有什么好处| 5月23日是什么星座| 冷面是用什么面做的| 蛋黄吃多了有什么坏处| 一什么桌子| 纯原是什么意思| 女性尿路感染吃什么药效果好| 百度Jump to content

冲绳被爆成美军间谍活动最前沿 连日本也监视

From Wikipedia, the free encyclopedia
百度 公元前5世纪,《黄帝内经》就有病至而治之汤液的记载,《孟子》中也有冬日则饮汤的表述,《说文解字》说汤,热火也,这里的汤说的就是热水。

BASIC
ParadigmNon-structured, later procedural, later object-oriented
Designed by
First appearedMay 1, 1964; 61 years ago (2025-08-07)
Major implementations
Influenced by
Influenced

BASIC (Beginners' All-purpose Symbolic Instruction Code)[1] is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1964. They wanted to enable students in non-scientific fields to use computers. At the time, nearly all computers required writing custom software, which only scientists and mathematicians tended to learn.

In addition to the programming language, Kemeny and Kurtz developed the Dartmouth Time-Sharing System (DTSS), which allowed multiple users to edit and run BASIC programs simultaneously on remote terminals. This general model became popular on minicomputer systems like the PDP-11 and Data General Nova in the late 1960s and early 1970s. Hewlett-Packard produced an entire computer line for this method of operation, introducing the HP2000 series in the late 1960s and continuing sales into the 1980s. Many early video games trace their history to one of these versions of BASIC.

The emergence of microcomputers in the mid-1970s led to the development of multiple BASIC dialects, including Microsoft BASIC in 1975. Due to the tiny main memory available on these machines, often 4 KB, a variety of Tiny BASIC dialects were also created. BASIC was available for almost any system of the era and became the de facto programming language for home computer systems that emerged in the late 1970s. These PCs almost always had a BASIC interpreter installed by default, often in the machine's firmware or sometimes on a ROM cartridge.

BASIC declined in popularity in the 1990s, as more powerful microcomputers came to market and programming languages with advanced features (such as Pascal and C) became tenable on such computers. By then, most nontechnical personal computer users relied on pre-written applications rather than writing their own programs. In 1991, Microsoft released Visual Basic, combining an updated version of BASIC with a visual forms builder. This reignited use of the language and "VB" remains a major programming language[2][3] in the form of VB.NET, while a hobbyist scene for BASIC more broadly continues to exist.[4][5]

Origin

[edit]

John G. Kemeny was the chairman of the Dartmouth College Mathematics Department. Based largely on his reputation as an innovator in math teaching, in 1959 the college won an Alfred P. Sloan Foundation award for $500,000 to build a new department building.[6] Thomas E. Kurtz had joined the department in 1956, and from the 1960s Kemeny and Kurtz agreed on the need for programming literacy among students outside the traditional STEM fields. Kemeny later noted that "Our vision was that every student on campus should have access to a computer, and any faculty member should be able to use a computer in the classroom whenever appropriate. It was as simple as that."[7]

Kemeny and Kurtz had made two previous experiments with simplified languages, DARSIMCO (Dartmouth Simplified Code) and DOPE (Dartmouth Oversimplified Programming Experiment). These did not progress past a single freshman class. New experiments using Fortran and ALGOL followed, but Kurtz concluded these languages were too tricky for what they desired. As Kurtz noted, Fortran had numerous oddly formed commands, notably an "almost impossible-to-memorize convention for specifying a loop: DO 100, I = 1, 10, 2. Is it '1, 10, 2' or '1, 2, 10', and is the comma after the line number required or not?"[7]

Moreover, the lack of any sort of immediate feedback was a key problem; the machines of the era used batch processing and took a long time to complete a run of a program. While Kurtz was visiting MIT, John McCarthy suggested that time-sharing offered a solution; a single machine could divide up its processing time among many users, giving them the illusion of having a (slow) computer to themselves.[8] Small programs would return results in a few seconds. This led to increasing interest in a system using time-sharing and a new language specifically for use by non-STEM students.[7]

Kemeny wrote the first version of BASIC. The acronym BASIC comes from the name of an unpublished paper by Thomas Kurtz.[9] The new language was heavily patterned on FORTRAN II; statements were one-to-a-line, numbers were used to indicate the target of loops and branches, and many of the commands were similar or identical to Fortran. However, the syntax was changed wherever it could be improved. For instance, the difficult to remember DO loop was replaced by the much easier to remember FOR I = 1 TO 10 STEP 2, and the line number used in the DO was instead indicated by the NEXT I.[a] Likewise, the cryptic IF statement of Fortran, whose syntax matched a particular instruction of the machine on which it was originally written, became the simpler IF I=5 THEN GOTO 100. These changes made the language much less idiosyncratic while still having an overall structure and feel similar to the original FORTRAN.[7]

The project received a $300,000 grant from the National Science Foundation, which was used to purchase a GE-225 computer for processing, and a Datanet-30 realtime processor to handle the Teletype Model 33 teleprinters used for input and output. A team of a dozen undergraduates worked on the project for about a year, writing both the DTSS system and the BASIC compiler.[7] The first version BASIC language was released on 1 May 1964.[10][11]

Initially, BASIC concentrated on supporting straightforward mathematical work, with matrix arithmetic support from its initial implementation as a batch language, and character string functionality being added by 1965. Usage in the university rapidly expanded, requiring the main CPU to be replaced by a GE-235,[7] and still later by a GE-635. By the early 1970s there were hundreds of terminals connected to the machines at Dartmouth, some of them remotely.

Wanting use of the language to become widespread, its designers made the compiler available free of charge. In the 1960s, software became a chargeable commodity; until then, it was provided without charge as a service with expensive computers, usually available only to lease. They also made it available to high schools in the Hanover, New Hampshire, area and regionally throughout New England on Teletype Model 33 and Model 35 teleprinter terminals connected to Dartmouth via dial-up phone lines, and they put considerable effort into promoting the language. In the following years, as other dialects of BASIC appeared, Kemeny and Kurtz's original BASIC dialect became known as Dartmouth BASIC.

New Hampshire recognized the accomplishment in 2019 when it erected a highway historical marker in Hanover describing the creation of "the first user-friendly programming language".[12]

Spread on time-sharing services

[edit]

The emergence of BASIC took place as part of a wider movement toward time-sharing systems. First conceptualized during the late 1950s, the idea became so dominant in the computer industry by the early 1960s that its proponents were speaking of a future in which users would "buy time on the computer much the same way that the average household buys power and water from utility companies".[13]

General Electric, having worked on the Dartmouth project, wrote their own underlying operating system and launched an online time-sharing system known as Mark I. It featured BASIC as one of its primary selling points. Other companies in the emerging field quickly followed suit; Tymshare introduced SUPER BASIC in 1968, CompuServe had a version on the DEC-10 at their launch in 1969, and by the early 1970s BASIC was largely universal on general-purpose mainframe computers. Even IBM eventually joined the club with the introduction of VS-BASIC in 1973.[14]

Although time-sharing services with BASIC were successful for a time, the widespread success predicted earlier was not to be. The emergence of minicomputers during the same period, and especially low-cost microcomputers in the mid-1970s, allowed anyone to purchase and run their own systems rather than buy online time which was typically billed at dollars per minute.[b][15]

Spread on minicomputers

[edit]
The HP 2000 system was designed to run time-shared BASIC as its primary task.

BASIC, by its very nature of being small, was naturally suited to porting to the minicomputer market, which was emerging at the same time as the time-sharing services. These machines had small main memory, perhaps as little as 4 KB in modern terminology,[c] and lacked high-performance storage like hard drives that make compilers practical. On these systems, BASIC was normally implemented as an interpreter rather than a compiler due to its lower requirement for working memory.[d]

A particularly important example was HP Time-Shared BASIC, which, like the original Dartmouth system, used two computers working together to implement a time-sharing system. The first, a low-end machine in the HP 2100 series, was used to control user input and save and load their programs to tape or disk. The other, a high-end version of the same underlying machine, ran the programs and generated output. For a cost of about $100,000, one could own a machine capable of running between 16 and 32 users at the same time.[16] The system, bundled as the HP 2000, was the first mini platform to offer time-sharing and was an immediate runaway success, catapulting HP to become the third-largest vendor in the minicomputer space, behind DEC and Data General (DG).[17]

DEC, the leader in the minicomputer space since the mid-1960s, had initially ignored BASIC. This was due to their work with RAND Corporation, who had purchased a PDP-6 to run their JOSS language, which was conceptually very similar to BASIC.[18] This led DEC to introduce a smaller, cleaned up version of JOSS known as FOCAL, which they heavily promoted in the late 1960s. However, with timesharing systems widely offering BASIC, and all of their competition in the minicomputer space doing the same, DEC's customers were clamoring for BASIC. After management repeatedly ignored their pleas, David H. Ahl took it upon himself to buy a BASIC for the PDP-8, which was a major success in the education market. By the early 1970s, FOCAL and JOSS had been forgotten and BASIC had become almost universal in the minicomputer market.[19] DEC would go on to introduce their updated version, BASIC-PLUS, for use on the RSTS/E time-sharing operating system.

During this period a number of simple text-based games were written in BASIC, most notably Mike Mayfield's Star Trek. David Ahl collected these, some ported from FOCAL, and published them in an educational newsletter he compiled. He later collected a number of these into book form, 101 BASIC Computer Games, published in 1973.[20] During the same period, Ahl was involved in the creation of a small computer for education use, an early personal computer. When management refused to support the concept, Ahl left DEC in 1974 to found the seminal computer magazine, Creative Computing. The book remained popular, and was re-published on several occasions.[21]

Explosive growth: the home computer era

[edit]
Commodore BASIC v2.0 on the Commodore 64
MSX BASIC version 3.0
"Train Basic every day!"—reads a poster (bottom center) in a Russian school (c.?1985–86)

The introduction of the first microcomputers in the mid-1970s was the start of explosive growth for BASIC. It had the advantage that it was fairly well known to the young designers and computer hobbyists who took an interest in microcomputers, many of whom had seen BASIC on minis or mainframes. Despite Dijkstra's famous judgment in 1975, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration",[22] BASIC was one of the few languages that was both high-level enough to be usable by those without training and small enough to fit into the microcomputers of the day, making it the de facto standard programming language on early microcomputers.

The first microcomputer version of BASIC was co-written by Bill Gates, Paul Allen and Monte Davidoff for their newly formed company, Micro-Soft.[23] This was released by MITS in punch tape format for the Altair 8800 shortly after the machine itself,[24] immediately cementing BASIC as the primary language of early microcomputers. Members of the Homebrew Computer Club began circulating copies of the program, causing Gates to write his Open Letter to Hobbyists, complaining about this early example of software piracy.

Partially in response to Gates's letter, and partially to make an even smaller BASIC that would run usefully on 4 KB machines,[e] Bob Albrecht urged Dennis Allison to write their own variation of the language. How to design and implement a stripped-down version of an interpreter for the BASIC language was covered in articles by Allison in the first three quarterly issues of the People's Computer Company newsletter published in 1975 and implementations with source code published in Dr. Dobb's Journal of Tiny BASIC Calisthenics & Orthodontia: Running Light Without Overbyte. This led to a wide variety of Tiny BASICs with added features or other improvements, with versions from Tom Pittman and Li-Chen Wang becoming particularly well known.[25]

Micro-Soft, by this time Microsoft, ported their interpreter for the MOS 6502, which quickly become one of the most popular microprocessors of the 8-bit era. When new microcomputers began to appear, notably the "1977 trinity" of the TRS-80, Commodore PET and Apple II, they either included a version of the MS code, or quickly introduced new models with it. Ohio Scientific's personal computers also joined this trend at that time. By 1978, MS BASIC was a de facto standard and practically every home computer of the 1980s included it in ROM. Upon boot, a BASIC interpreter in direct mode was presented.

Commodore Business Machines includes Commodore BASIC, based on Microsoft BASIC. The Apple II and TRS-80 each have two versions of BASIC: a smaller introductory version with the initial releases of the machines and a Microsoft-based version introduced as interest in the platforms increased. As new companies entered the field, additional versions were added that subtly changed the BASIC family. The Atari 8-bit computers use the 8 KB Atari BASIC which is not derived from Microsoft BASIC. Sinclair BASIC was introduced in 1980 with the Sinclair ZX80, and was later extended for the Sinclair ZX81 and the Sinclair ZX Spectrum. The BBC-published BBC BASIC, developed by Acorn Computers, incorporates extra structured programming keywords and floating-point features.

As the popularity of BASIC grew in this period, computer magazines published complete source code in BASIC for video games, utilities, and other programs. Given BASIC's straightforward nature, it was a simple matter to type in the code from the magazine and execute the program. Different magazines were published featuring programs for specific computers, though some BASIC programs were considered universal and could be used in machines running any variant of BASIC (sometimes with minor adaptations). Many books of type-in programs were also available, and in particular, Ahl published versions of the original 101 BASIC games converted into the Microsoft dialect and published it from Creative Computing as BASIC Computer Games. This book, and its sequels, provided hundreds of ready-to-go programs that could be easily converted to practically any BASIC-running platform.[20][26][27] The book reached the stores in 1978, just as the home computer market was starting off, and it became the first million-selling computer book. Later packages, such as Learn to Program BASIC would also have gaming as an introductory focus. On the business-focused CP/M computers which soon became widespread in small business environments, Microsoft BASIC (MBASIC) was one of the leading applications.[28]

In 1978, David Lien published the first edition of The BASIC Handbook: An Encyclopedia of the BASIC Computer Language, documenting keywords across over 78 different computers. By 1981, the second edition documented keywords from over 250 different computers, showcasing the explosive growth of the microcomputer era.[29]

IBM PC and compatibles

[edit]
IBM Cassette BASIC 1.10

When IBM was designing the IBM PC, they followed the paradigm of existing home computers in having a built-in BASIC interpreter. They sourced this from Microsoft – IBM Cassette BASIC – but Microsoft also produced several other versions of BASIC for MS-DOS/PC DOS including IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (a BASICA-compatible version that did not need IBM's ROM)[30] and QBasic, all typically bundled with the machine. In addition they produced the Microsoft QuickBASIC Compiler (1985) for power users and hobbyists, and the Microsoft BASIC Professional Development System (PDS) for professional programmers. Turbo Pascal-publisher Borland published Turbo Basic 1.0 in 1985 (successor versions were marketed under the name PowerBASIC).

On Unix-like systems, specialized implementations were created such as XBasic and X11-Basic.[31] XBasic was ported to Microsoft Windows as XBLite, and cross-platform variants such as SmallBasic, yabasic, Bywater BASIC,[32][33] nuBasic,[34] MyBasic,[35] Logic Basic,[36] Liberty BASIC, and wxBasic emerged. FutureBASIC and Chipmunk Basic meanwhile targeted the Apple Macintosh, while yab is a version of yaBasic optimized for BeOS, ZETA and Haiku.[37]

These later variations introduced many extensions, such as improved string manipulation and graphics support, access to the file system and additional data types. More important were the facilities for structured programming, including additional control structures and proper subroutines supporting local variables.[38] The addition of an integrated development environment (IDE) and electronic Help files made the products easier to work with and supported learning tools and school curriculum.

In 1989, Microsoft Press published Learn BASIC Now, a book-and-software system designed to teach BASIC programming to self-taught learners who were using IBM-PC compatible systems and the Apple Macintosh. Learn BASIC Now included software disks containing the Microsoft QuickBASIC Interpreter and a programming tutorial written by Michael Halvorson and David Rygmyr. Learning systems like Learn BASIC Now popularized structured BASIC and helped QuickBASIC reach an installed base of four million active users.[39]

By the late 1980s, many users were using pre-made applications written by others rather than learning programming themselves, and professional developers had a wide range of advanced languages available on small computers. C and later C++ became the languages of choice for professional "shrink wrap" application development.[40][41]

A niche that BASIC continued to fill was for hobbyist video game development, as game creation systems and readily available game engines were still in their infancy. The Atari ST had STOS BASIC while the Amiga had AMOS BASIC for this purpose. Microsoft first exhibited BASIC for game development with DONKEY.BAS for GW-BASIC, and later GORILLA.BAS and NIBBLES.BAS for QuickBASIC. QBasic maintained an active game development community,[42][43] which helped later spawn the QB64 and FreeBASIC implementations.[44] An early example of this market is the QBasic software package Microsoft Game Shop (1990), a hobbyist-inspired release that included six "arcade-style" games that were easily customizable in QBasic.[45]

In 2013, a game written in QBasic and compiled with QB64 for modern computers entitled Black Annex was released on Steam.[46][47] Blitz Basic, Dark Basic, SdlBasic, Super Game System Basic,[48] PlayBASIC,[49] CoolBasic,[50] AllegroBASIC,[51] ethosBASIC,[52] GLBasic and Basic4GL further filled this demand, right up to the modern RCBasic,[53] NaaLaa,[54] AppGameKit,[55] Monkey 2, and Cerberus-X.[56]

Visual Basic

[edit]

In 1991, Microsoft introduced Visual Basic, an evolutionary development of QuickBASIC. It included constructs from that language such as block-structured control statements, parameterized subroutines and optional static typing as well as object-oriented constructs from other languages such as "With" and "For Each". The language retained some compatibility with its predecessors, such as the Dim keyword for declarations, "Gosub"/Return statements and optional line numbers which could be used to locate errors. An important driver for the development of Visual Basic was as the new macro language for Microsoft Excel, a spreadsheet program. To the surprise of many at Microsoft who still initially marketed it as a language for hobbyists, the language came into widespread use for small custom business applications shortly after the release of VB version 3.0, which is widely considered the first relatively stable version. Microsoft also spun it off as Visual Basic for Applications and Embedded Visual Basic.

While many advanced programmers still scoffed at its use, VB met the needs of small businesses efficiently as by that time, computers running Windows 3.1 had become fast enough that many business-related processes could be completed "in the blink of an eye" even using a "slow" language, as long as large amounts of data were not involved. Many small business owners found they could create their own small, yet useful applications in a few evenings to meet their own specialized needs. Eventually, during the lengthy lifetime of VB3, knowledge of Visual Basic had become a marketable job skill. Microsoft also produced VBScript in 1996 and Visual Basic .NET in 2001. The latter has essentially the same power as C# and Java but with syntax that reflects the original Basic language, and also features some cross-platform capability through implementations such as Mono-Basic.[57] The IDE, with its event-driven GUI builder, was also influential on other rapid application development tools, most notably Borland Software's Delphi for Object Pascal and its own descendants such as Lazarus.[58][59]

Mainstream support for the final version 6.0 of the original Visual Basic ended on March 31, 2005, followed by extended support in March 2008.[60] Owing to its persistent remaining popularity,[61] third-party attempts to further support it exist.[62] On February 2, 2017, Microsoft announced that development on VB.NET would no longer be in parallel with that of C#,[63] and on March 11, 2020, it was announced that evolution of the VB.NET language had also concluded.[64] Even so, the language was still supported.[65]

Three modern Basic variants: Mono Basic, OpenOffice.org Basic and Gambas

Post-1990 versions and dialects

[edit]

Many other BASIC dialects have also sprung up since 1990, including the open source QB64 and FreeBASIC, inspired by QBasic, and the Visual Basic-styled RapidQ, HBasic, Basic For Qt and Gambas.[4] Modern commercial incarnations include PureBasic, PowerBASIC, Xojo, Monkey X and True BASIC (the direct successor to Dartmouth BASIC from a company controlled by Kurtz).

Several web-based simple BASIC interpreters also now exist, including Microsoft's Small Basic and Google's wwwBASIC.[66] A number of compilers also exist that convert BASIC into JavaScript.[67] such as NS Basic.

A sample BASIC programme running under YABASIC for the Sony PS2

Building from earlier efforts such as Mobile Basic,[68][69] many dialects are now available for smartphones and tablets.

On game consoles, an application for the Nintendo 3DS and Nintendo DSi called Petit Computer allows for programming in a slightly modified version of BASIC with DS button support. A version has also been released for Nintendo Switch, which has also been supplied a version of the Fuze Code System,[70] a BASIC variant[71] first implemented as a custom Raspberry Pi machine.[72] Previously BASIC was made available on consoles as Family BASIC (for the Nintendo Famicom) and PSX Chipmunk Basic (for the original PlayStation), while yabasic was ported to the PlayStation 2 and FreeBASIC to the original Xbox.

Calculators

[edit]

Variants of BASIC are available on graphing and otherwise programmable calculators made by Texas Instruments (TI-BASIC), HP (HP BASIC), Casio (Casio BASIC), and others.

Windows command-line

[edit]

QBasic, a version of Microsoft QuickBASIC without the linker to make EXE files, is present in the Windows NT and DOS-Windows 95 streams of operating systems and can be obtained for more recent releases like Windows 7 which do not have them. Prior to DOS 5, the Basic interpreter was GW-Basic. QuickBasic is part of a series of three languages issued by Microsoft for the home and office power user and small-scale professional development; QuickC and QuickPascal are the other two. For Windows 95 and 98, which do not have QBasic installed by default, they can be copied from the installation disc, which will have a set of directories for old and optional software; other missing commands like Exe2Bin and others are in these same directories.

Other

[edit]
BASIC came to some video game systems, such as the Famicom.

The various Microsoft, Lotus, and Corel office suites and related products are programmable with Visual Basic in one form or another, including LotusScript, which is very similar to VBA 6. The Host Explorer terminal emulator uses WWB as a macro language; or more recently the programme and the suite in which it is contained is programmable in an in-house Basic variant known as Hummingbird Basic. The VBScript variant is used for programming web content, Outlook 97, Internet Explorer, and the Windows Script Host. WSH also has a Visual Basic for Applications (VBA) engine installed as the third of the default engines along with VBScript, JScript, and the numerous proprietary or open source engines which can be installed like PerlScript, a couple of Rexx-based engines, Python, Ruby, Tcl, Delphi, XLNT, PHP, and others; meaning that the two versions of Basic can be used along with the other mentioned languages, as well as LotusScript, in a WSF file, through the component object model, and other WSH and VBA constructions. VBScript is one of the languages that can be accessed by the 4DOS, 4NT, and Take Command enhanced shells. SaxBasic and WWB are also very similar to the Visual Basic line of Basic implementations. The pre-Office 97 macro language for Microsoft Word is known as WordBASIC. Excel 4 and 5 use Visual Basic itself as a macro language. Chipmunk Basic, an interpreter similar to BASICs of the 1970s, is available for Linux, Windows, and macOS.

Legacy

[edit]

The ubiquity of BASIC interpreters on personal computers was such that textbooks once included simple "Try It In BASIC" exercises that encouraged students to experiment with mathematical and computational concepts on classroom or home computers. Popular computer magazines of the day typically included type-in programs.

Futurist and sci-fi writer David Brin mourned the loss of ubiquitous BASIC in a 2006 Salon article[73] as have others who first used computers during this era. In turn, the article prompted Microsoft to develop and release Small Basic;[74] it also inspired similar projects like Basic-256[75][76] and the web based Quite Basic.[77] Dartmouth held a 50th anniversary celebration for BASIC on 1 May 2014.[78] The pedagogical use of BASIC has been followed by other languages, such as Pascal, Java and particularly Python.[79]

Dartmouth College celebrated the 50th anniversary of the BASIC language with a day of events[80] on April 30, 2014. A short documentary film was produced for the event.[81]

Syntax

[edit]

Typical BASIC keywords

[edit]

Data manipulation

[edit]
LET
assigns a value (which may be the result of an expression) to a variable. In most dialects of BASIC, LET is optional, and a line with no other identifiable keyword will assume the keyword to be LET.
DATA
holds a list of values which are assigned sequentially using the READ command.
READ
reads a value from a DATA statement and assigns it to a variable. An internal pointer keeps track of the last DATA element that was read and moves it one position forward with each READ. Most dialects allow multiple variables as parameters, reading several values in a single operation.
RESTORE
resets the internal pointer to the first DATA statement, allowing the program to begin READing from the first value. Many dialects allow an optional line number or ordinal value to allow the pointer to be reset to a selected location.
DIM
Sets up an array.

Program flow control

[edit]
IF ... THEN ... {ELSE}
used to perform comparisons or make decisions. Early dialects only allowed a line number after the THEN, but later versions allowed any valid statement to follow. ELSE was not widely supported, especially in earlier versions.
FOR ... TO ... {STEP} ... NEXT
repeat a section of code a given number of times. A variable that acts as a counter, the "index", is available within the loop.
WHILE ... WEND and REPEAT ... UNTIL
repeat a section of code while the specified condition is true. The condition may be evaluated before each iteration of the loop, or after. Both of these commands are found mostly in later dialects.
DO ... LOOP {WHILE} or {UNTIL}
repeat a section of code indefinitely or while/until the specified condition is true. The condition may be evaluated before each iteration of the loop, or after. Similar to WHILE, these keywords are mostly found in later dialects.
GOTO
jumps to a numbered or labelled line in the program. Most dialects also allowed the form GO TO.
GOSUB ... RETURN
jumps to a numbered or labelled line, executes the code it finds there until it reaches a RETURN command, on which it jumps back to the statement following the GOSUB, either after a colon, or on the next line. This is used to implement subroutines.
ON ... GOTO/GOSUB
chooses where to jump based on the specified conditions. See Switch statement for other forms.
DEF FN
a pair of keywords introduced in the early 1960s to define functions. The original BASIC functions were modelled on FORTRAN single-line functions. BASIC functions were one expression with variable arguments, rather than subroutines, with a syntax on the model of DEF FND(x) = x*x at the beginning of a program. Function names were originally restricted to FN, plus one letter, i.e., FNA, FNB ...

Input and output

[edit]
LIST
displays the full source code of the current program.
PRINT
displays a message on the screen or other output device.
INPUT
asks the user to enter the value of a variable. The statement may include a prompt message.
TAB
used with PRINT to set the position where the next character will be shown on the screen or printed on paper. AT is an alternative form.
SPC
prints out a number of space characters. Similar in concept to TAB but moves by a number of additional spaces from the current column rather than moving to a specified column.

Mathematical functions

[edit]
ABS
Absolute value
ATN
Arctangent (result in radians)
COS
Cosine (argument in radians)
EXP
Exponential function
INT
Integer part (typically floor function)
LOG
Natural logarithm
RND
Random number generation
SIN
Sine (argument in radians)
SQR
Square root
TAN
Tangent (argument in radians)

Miscellaneous

[edit]
REM
holds a programmer's comment or REMark; often used to give a title to the program and to help identify the purpose of a given section of code.
USR ("User Serviceable Routine")
transfers program control to a machine language subroutine, usually entered as an alphanumeric string or in a list of DATA statements.
CALL
alternative form of USR found in some dialects. Does not require an artificial parameter to complete the function-like syntax of USR, and has a clearly defined method of calling different routines in memory.
TRON / TROFF
turns on display of each line number as it is run ("TRace ON"). This was useful for debugging or correcting of problems in a program. TROFF turns it back off again.
ASM
some compilers such as Freebasic,[82] Purebasic,[83] and Powerbasic[84] also support inline assembly language, allowing the programmer to intermix high-level and low-level code, typically prefixed with "ASM" or "!" statements.

Data types and variables

[edit]

Minimal versions of BASIC had only integer variables and one- or two-letter variable names, which minimized requirements of limited and expensive memory (RAM). More powerful versions had floating-point arithmetic, and variables could be labelled with names six or more characters long. There were some problems and restrictions in early implementations; for example, Applesoft BASIC allowed variable names to be several characters long, but only the first two were significant, thus it was possible to inadvertently write a program with variables "LOSS" and "LOAN", which would be treated as being the same; assigning a value to "LOAN" would silently overwrite the value intended as "LOSS". Keywords could not be used in variables in many early BASICs; "SCORE" would be interpreted as "SC" OR "E", where OR was a keyword. String variables are usually distinguished in many microcomputer dialects by having $ suffixed to their name as a sigil, and values are often identified as strings by being delimited by "double quotation marks". Arrays in BASIC could contain integers, floating point or string variables.

Some dialects of BASIC supported matrices and matrix operations, which can be used to solve sets of simultaneous linear algebraic equations. These dialects would directly support matrix operations such as assignment, addition, multiplication (of compatible matrix types), and evaluation of a determinant. Many microcomputer BASICs did not support this data type; matrix operations were still possible, but had to be programmed explicitly on array elements.

Examples

[edit]
A simple game implemented in BASIC

Unstructured BASIC

[edit]

New BASIC programmers on a home computer might start with a simple program, perhaps using the language's PRINT statement to display a message on the screen; a well-known and often-replicated example is Kernighan and Ritchie's "Hello, World!" program:

10 PRINT "Hello, World!"
20 END

An infinite loop could be used to fill the display with the message:

10 PRINT "Hello, World!"
20 GOTO 10

Note that the END statement is optional and has no action in most dialects of BASIC. It was not always included, as is the case in this example. This same program can be modified to print a fixed number of messages using the common FOR...NEXT statement:

10 LET N=10
20 FOR I=1 TO N
30 PRINT "Hello, World!"
40 NEXT I

Most home computers BASIC versions, such as MSX BASIC and GW-BASIC, supported simple data types, loop cycles, and arrays. The following example is written for GW-BASIC, but will work in most versions of BASIC with minimal changes:

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

The resulting dialog might resemble:

What is your name: Mike
Hello Mike
How many stars do you want: 7
*******
Do you want more stars? yes
How many stars do you want: 3
***
Do you want more stars? no
Goodbye Mike

The original Dartmouth Basic was unusual in having a matrix keyword, MAT.[f] Although not implemented by most later microprocessor derivatives, it is used in this example from the 1968 manual[85] which averages the numbers that are input:

5 LET S = 0
10 MAT INPUT V 
20 LET N = NUM 
30 IF N = 0 THEN 99 
40 FOR I = 1 TO N 
45 LET S = S + V(I) 
50 NEXT I 
60 PRINT S/N 
70 GO TO 5 
99 END

Structured BASIC

[edit]

Second-generation BASICs (for example, VAX Basic, SuperBASIC, True BASIC, QuickBASIC, BBC BASIC, Pick BASIC, PowerBASIC, Liberty BASIC, QB64 and (arguably) COMAL) introduced a number of features into the language, primarily related to structured and procedure-oriented programming. Usually, line numbering is omitted from the language and replaced with labels (for GOTO) and procedures to encourage easier and more flexible design.[38] In addition keywords and structures to support repetition, selection and procedures with local variables were introduced.

The following example is in Microsoft QuickBASIC:

REM QuickBASIC example

REM Forward declaration - allows the main code to call a
REM    subroutine that is defined later in the source code
DECLARE SUB PrintSomeStars (StarCount!)

REM Main program follows
INPUT "What is your name: ", UserName$
PRINT "Hello "; UserName$
DO
   INPUT "How many stars do you want: ", NumStars
   CALL PrintSomeStars(NumStars)
   DO
      INPUT "Do you want more stars? ", Answer$
   LOOP UNTIL Answer$ <> ""
   Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "Y"
PRINT "Goodbye "; UserName$
END

REM subroutine definition
SUB PrintSomeStars (StarCount)
   REM This procedure uses a local variable called Stars$
   Stars$ = STRING$(StarCount, "*")
   PRINT Stars$
END SUB

Object-oriented BASIC

[edit]

Third-generation BASIC dialects such as Visual Basic, Xojo, Gambas, StarOffice Basic, BlitzMax and PureBasic introduced features to support object-oriented and event-driven programming paradigm. Most built-in procedures and functions are now represented as methods of standard objects rather than operators. Also, the operating system became increasingly accessible to the BASIC language.

The following example is in Visual Basic .NET:

Public Module StarsProgram
   Private Function Ask(prompt As String) As String
      Console.Write(prompt)
      Return Console.ReadLine()
   End Function

   Public Sub Main()
      Dim userName = Ask("What is your name: ")
      Console.WriteLine("Hello {0}", userName)

      Dim answer As String

      Do
         Dim numStars = CInt(Ask("How many stars do you want: "))
         Dim stars As New String("*"c, numStars)
         Console.WriteLine(stars)

         Do
            answer = Ask("Do you want more stars? ")
         Loop Until answer <> ""
      Loop While answer.StartsWith("Y", StringComparison.OrdinalIgnoreCase)

      Console.WriteLine("Goodbye {0}", userName)
   End Sub
End Module

Standards

[edit]
ANSI/ISO/IEC/ECMA for Minimal BASIC
  • ANSI X3.60-1978 "For minimal BASIC" (withdrawn[86])
  • ISO/IEC 6373:1984 "Data processing — Programming languages — Minimal BASIC" (withdrawn[87])
  • ECMA-55 "Minimal BASIC" (withdrawn,[88] similar to ANSI X3.60-1978)
ANSI/ISO/IEC/ECMA for Full BASIC
  • ANSI X3.113-1987 "Programming Languages Full BASIC" (in force[89][90])
  • INCITS/ISO/IEC 10279-1991 (Rev. 2024) "Information Technology – Programming Languages – Full BASIC" (in force[91])
  • ECMA-116 "BASIC" (withdrawn,[92] similar to ANSI X3.113-1987)
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" (in force[93])

Compilers and interpreters

[edit]

Compiler Author Working state Windows Unix-like Other OSs License type Standard conformance
Minimal BASIC Full BASIC
AppGameKit The Game Creators Current Yes Yes No Proprietary ? ?
BASIC-PLUS-2 Digital Equipment Corporation Discontinued No ? RSTS/E, RSX-11M Proprietary ? ?
B4X Erel Uziel Current Yes Yes (Android, iOS) Yes (JVM) No No
BBC BASIC for SDL 2.0 Richard T. Russell Current Yes Yes (Linux, macOS, Android) Yes (Raspberry Pi OS) No No
BlitzMax Blitz Research Discontinued Yes Yes (Linux, macOS) No No No
DarkBASIC The Game Creators Inactive Yes No No No No
ECMA-55 Minimal BASIC compiler[94] John Gatewood Ham Current No Linux No Yes No
FreeBASIC FreeBASIC Development Team Current Yes Yes MS-DOS, FreeBSD, Linux Partial[95] No
FutureBASIC Brilor Software Current No macOS Classic Mac OS Proprietary Partial No
Gambas Beno?t Minisini Current No Yes No No No
GFA BASIC Frank Ostrowski Abandoned Yes No Amiga, Atari ST, MS-DOS Proprietary No No
Mercury RemObjects Current Yes Yes (Linux, macOS, Android, iOS) Yes (WebAssembly) Proprietary No No
PowerBASIC (formerly Turbo Basic) PowerBASIC, Inc. Inactive Yes No DOS Proprietary ? ?
PureBasic Fantaisie Software Current Yes Yes Yes Proprietary No No
QB64 Galleon Current Yes Yes Yes Partial No
QuickBASIC Microsoft Discontinued No No MS-DOS Proprietary Partial No
Tandem BASIC Tandem Computers Historic No No Guardian, NonStop Kernel, NonStop OS Proprietary No No
True BASIC True BASIC Current Yes No No Proprietary Yes Partial[96]
twinBASIC[97] Wayne Phillips Current Yes No No Proprietary No No
VSI BASIC for OpenVMS VMS Software, Inc. Current No No OpenVMS Proprietary No No
Xojo (formerly REALbasic) Xojo Inc. (formerly Real Software) Current Yes Yes Yes Proprietary No No
Interpreter Author Windows Unix-like Other OSs License type
BASIC-PLUS Digital Equipment Corporation No No RSTS/E Proprietary
BBC BASIC for SDL 2.0 Richard T. Russell Yes Yes (Linux, macOS, Android, iOS) Raspberry Pi OS, Web browser
Bywater BASIC (bwBASIC) Ted Campbell No Yes ?
Liberty BASIC Shoptalk Systems Yes No No Proprietary
GW-BASIC Microsoft No No MS-DOS Proprietary
QBasic Microsoft No No MS-DOS Proprietary
Chipmunk Basic Ronald H. Nicholson Jr. Yes Yes Yes Freeware
TI BASIC (TI 99/4A) Texas Instruments No No TI-99/4A Proprietary
TI Extended BASIC Texas Instruments No No TI-99/4A Proprietary
MiniBasic Malcolm McLean Yes Yes Yes
Rocky Mountain BASIC [Trans Era] Yes No HP 9000 Proprietary
Bas Michael Haardt No Yes No
Yabasic Marc-Oliver Ihm Yes Yes Haiku
SmallBASIC SmallBASIC Yes Yes Android, macOS
SuperBASIC Jan Jones No No Sinclair QL Proprietary
thinBasic thinBasic Yes No No Proprietary
PC-BASIC Rob Hagemans Yes Yes macOS
Level I BASIC Steve Leininger No No TRS-80 ROM Proprietary
Level II BASIC Microsoft No No TRSDOS, NewDos/80, MultiDOS, DosPlus, LDOS Proprietary
Level III BASIC Microsoft No No TRSDOS, NewDos/80, MultiDOS, DosPlus, LDOS Proprietary
VAX BASIC Digital Equipment Corporation No No VAX/VMS Proprietary

See also

[edit]

Notes

[edit]
  1. ^ Fortran's DO had a continue for this purpose, but still required the line number to be entered.
  2. ^ Tymshare charged about US$10 per hour (equivalent to $81 in 2024) for accessing their systems.
  3. ^ Widely regarded as the first "true" mini, the PDP-8's 12-bit memory space allowed 4,096 address of 12-bits each, or 6,144 bytes.
  4. ^ Interpreters are ultimately similar to compilers in the tasks they perform, converting source code to machine code, but differ in when they perform it. Compilers convert the entire program at once and output a separate runnable program. Interpreters generally convert only a single line at a time (or even just a portion of it) and then immediately release that code once the line has completed running. This means they require only enough memory to run a single line, and do not require some form of high-performance secondary memory like a hard drive.
  5. ^ Microsoft BASIC left 780 bytes free for user program code and variable values on a 4K machine, and that was running a cut-down version lacking string variables and other functionality.
  6. ^ From version 3 onwards.

References

[edit]
  1. ^ Kemeny, John G.; Kurtz, Thomas E. (1963). Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF) (1st ed.). Hanover, N.H.: Dartmouth College Computation Center. Archived (PDF) from the original on October 9, 2022.
  2. ^ Ramel, David (February 12, 2019). "VB.NET Popularity Still Rising". Visual Studio Magazine. Retrieved March 28, 2023.
  3. ^ Swersky, David (January 25, 2023). "40 most popular programming languages 2023: When and how to use them". Raygun. Retrieved March 25, 2023.
  4. ^ a b Proven, Liam (March 28, 2023). "Nostalgic for VB? BASIC is anything but dead". The Register. Retrieved September 27, 2023.
  5. ^ Boss, Chris (November 15, 2022). "BASIC is Not Dead. Time to Erase the Myths about Basic". Code Project. Retrieved January 31, 2024.
  6. ^ "High Math at Hanover". Time. February 23, 1959.
  7. ^ a b c d e f Time 2014.
  8. ^ Rankin, Joy Lisi (2018), A People's History of Computing in the United States, Cambridge, Massachusetts: Harvard University Press, ISBN 9780674970977, p. 23
  9. ^ "BASIC". Jargon File. Retrieved June 13, 2017.
  10. ^ "Thomas E. Kurtz – History of Computer Programming Languages". cis-alumni.org. Retrieved June 13, 2017.
  11. ^ Alfred, Randy (January 5, 2008). "May 1, 1964: First Basic Program Runs". Wired. Retrieved June 13, 2017.
  12. ^ Brooks, David (11 June 2019). "Finally, a historical marker that talks about something important". Concord Monitor. Archived from the original on 11 June 2019. Retrieved 11 August 2019.
  13. ^ Bauer, W. F., Computer design from the programmer's viewpoint Archived July 23, 2016, at the Wayback Machine (Eastern Joint Computer Conference, December 1958) One of the first descriptions of computer time-sharing.
  14. ^ "IBM VS the World: That's How It Is". Computerworld. December 5, 1973.
  15. ^ Bourne, Charles; Hahn, Trudi Bellardo (August 2003). A History of Online Information Services, 1963–1976. MIT Press. p. 387. ISBN 9780262261753.
  16. ^ "2000 Timeshare System".
  17. ^ "Passing the 10-year mark". MEASURE Magazine. Hewlett Packard. October 1976.
  18. ^ Marks, Shirley (December 1971). The JOSS Years: Reflections on an experiment (PDF) (Technical report). Rand. Archived (PDF) from the original on October 9, 2022.
  19. ^ Savetz, Kevin (April 2013). "Dave Ahl and Betsy Ahl" (Interview).
  20. ^ a b Ahl, David H. (1973). 101 Basic computer games. Morristown, N.J.: Creative Computing Press. OCLC 896774158.
  21. ^ Ahl, David H. (May 11, 1981). "Computer Games". InfoWorld. Vol. 3, no. 9. p. 44. ISSN 0199-6649.
  22. ^ Dijkstra, Edsger W. (June 18, 1975). "How do we tell truths that might hurt" (PDF). Selected Writings on Computing: A Personal Perspective. Springer-Verlag (published 1982). pp. 129–131. ISBN 978-0387906522. OCLC 693424350. Archived (PDF) from the original on October 9, 2022.
  23. ^ Johnson, Phil (January 21, 2015). "The source code behind Microsoft BASIC for 6502 comes to light". Computerworld. Retrieved October 24, 2022.
  24. ^ "We have a BASIC". New Mexico Museum of Natural History and Science. Archived from the original on November 30, 2012. Retrieved April 18, 2007.
  25. ^ Pittman, Tom. "you had to pay $5 up front to get it…". www.ittybittycomputers.com. Retrieved June 14, 2017.
  26. ^ Ahl, David H. (1979). More basic computer games. Morristown: Creative Computing Press. ISBN 978-0894801372. OCLC 839377789.
  27. ^ Ahl, David H. (1984). Big computer games. Morris Plains, N.J.: Creative Computing Press. ISBN 978-0916688400. OCLC 872675092.
  28. ^ "Osborne 1". oldcomputers.net. Retrieved June 14, 2017.
  29. ^ Lien, David (1981). The BASIC Handbook (Second ed.). San Diego, CA: Compusoft Publishing. p. inside cover. ISBN 0-932760-00-7.
  30. ^ "Back to BASICs". peyre.sqweebs.com. Archived from the original on October 26, 2009. Retrieved February 25, 2023.
  31. ^ Perr, John (January 1, 2003). "BASIC programming with Unix". LinuxFocus. Retrieved September 26, 2023.
  32. ^ "bwBASIC: The Bywater BASIC Interpreter". OSS Blog. August 25, 2018. Retrieved September 30, 2023.
  33. ^ Hall, Jim (June 23, 2021). "Program on FreeDOS with Bywater BASIC". Opensource.com. Retrieved September 30, 2023.
  34. ^ Calderone, Antonia. "Why nuBASIC". Retrieved September 30, 2023.
  35. ^ Song, Liu Xue (October 12, 2003). "MyBasic - A Custom-BASIC language interpreter written in C++". Code Project. Retrieved September 30, 2023.
  36. ^ "LOGIC BASIC - Free programming language". Retrieved October 7, 2023.
  37. ^ Albrecht, Christian (October 2, 2022). "yab Beginners tutorial". BeSly - BeOS, Haiku & Zeta. Translation by Luc Schrijvers (Begasus). Retrieved February 25, 2024.
  38. ^ a b "Differences Between GW-BASIC and QBasic". May 12, 2003. Archived from the original on October 19, 2013. Retrieved June 28, 2008.
  39. ^ Halvorson, Michael J. (2020). Code Nation: Personal Computing and the Learn to Program Movement in America. New York, NY: ACM Books. p. 146. ISBN 978-1-4503-7757-7.
  40. ^ Pravin, Jain (2011). The Class Of Java. Pearson Education India. ISBN 9788131755440.
  41. ^ "GNE: the C programming language". fysh.org. Retrieved June 14, 2017. During the 1980s, C compilers spread widely, and C became an extremely popular language.
  42. ^ Dance, Michael. "Easy to Make Qbasic Games". Techwalla. Retrieved September 30, 2023.
  43. ^ "QBasic Games Directory". Phatcode. Retrieved September 30, 2023.
  44. ^ "FreeBASIC Games Directory". FreeBASIC. Retrieved September 30, 2023.
  45. ^ Halvorson, Michael J. (2020). Code Nation: Personal Computing and the Learn to Program Movement in America. New York, NY: ACM Books. pp. 153–156. ISBN 978-1-4503-7757-7.
  46. ^ Cocilova, Alex (April 16, 2013). "Black Annex is the best QBASIC game you've ever seen". PC World. Retrieved September 30, 2023.
  47. ^ Serrels, Mark (June 24, 2013). "The Australian Who Built A Video Game Using QBASIC". Kotaku. Archived from the original on June 24, 2013. Retrieved September 30, 2023.
  48. ^ "Super Game System Basic". IndieDB. November 21, 2017. Retrieved September 30, 2023.
  49. ^ "PlayBasic". itch.io. Retrieved September 30, 2023.
  50. ^ "CoolBasic". IndieDB. December 6, 2005. Retrieved September 30, 2023.
  51. ^ "AllegroBASIC Homepage". AllegroBASIC. Archived from the original on November 15, 2018. Retrieved October 7, 2023.
  52. ^ "Ethos Game Basic 1.3". shareApp. Retrieved September 30, 2023.
  53. ^ "RC Basic". ModDB. August 18, 2015. Retrieved September 30, 2023.
  54. ^ Fercalo, Andrei (August 8, 2014). "NaaLaa". Softpedia. Retrieved October 1, 2023.
  55. ^ "A Closer Look At AppGameKit 2". GameFromScratch. June 12, 2015. Retrieved September 30, 2023.
  56. ^ "Cerberus X 2025-08-07 Released". GameFromScratch. August 10, 2018. Retrieved September 30, 2023.
  57. ^ Clarke, Gavin (February 21, 2007). "Linux breakthrough for Visual Basic developers". The Register. Retrieved October 1, 2023.
  58. ^ Anderson, Tim (February 14, 2020). "25 years of Delphi and no Oracle in sight: Not a Visual Basic killer but hard to kill". The Register. Retrieved March 25, 2023. Enter Borland Delphi, which combined Object Pascal with a VB-like visual form builder. Object Pascal was Borland's own language, with full support for inheritance. It is case-insensitive and not much harder than VB for coding, once you get used to typing begin and end a lot (loosely equivalent to curly braces in C). Unlike VB, it sensibly has different operators for assignment (:=) and comparison (=).
  59. ^ Speed, Richard (May 6, 2022). "RAD Basic – the Visual Basic 7 that never was – releases third alpha". The Register. Retrieved March 26, 2023. Alternatively, one can relive the days of the whole BASIC/Pascal rivalry with Delphi-compatible Lazarus.
  60. ^ "Product Family Life Cycle Guidelines for Visual Basic 6.0". Msdn2.microsoft.com. March 31, 2005. Retrieved June 16, 2009.
  61. ^ Ramel, David (July 7, 2020). "Popularity Index: Classic Visual Basic Hangs In There". Visual Studio Magazine. Retrieved March 28, 2023.
  62. ^ Ramel, David (February 28, 2020). "Visual Basic Resurgence? Project Seeks to 'Bring the VBE into This Century!'". Visual Studio Magazine. Retrieved March 28, 2023.
  63. ^ Domingo, Michael (June 13, 2017). "Viva, Visual Basic! Or, Does VB Have a Future?". Visual Studio Magazine. Retrieved March 26, 2023.
  64. ^ Ramel, David (March 12, 2020). "Microsoft: 'We Do Not Plan to Evolve Visual Basic as a Language'". Visual Studio Magazine. Retrieved March 26, 2023.
  65. ^ Ramel, David (February 8, 2023). "Microsoft Reaffirms Fate of Visual Basic". Visual Studio Magazine. Retrieved March 25, 2023.
  66. ^ Williams, Al (September 17, 2018). "It's The Web, Basically". Hackaday. Retrieved September 28, 2023.
  67. ^ Veteanu, Marian (February 14, 2017). "JavaScript compilers. Part II: Languages that compile to JavaScript". Code Avenger.
  68. ^ "Java – What programming languages target J2ME". iTecNote. Retrieved September 30, 2023. Now I've heard of other languages which supposedly make possible development without recourse to Java, languages like CellularBASIC (which looks a bit like QBASIC) and Hecl (which seems to be based on Tcl).
  69. ^ Tello, Guillaume (December 15, 2007). "LG KS 360". Archived from the original on October 28, 2010. Retrieved September 30, 2023. After some research on the Net, I came across this site about the CellularBASIC. It is a complete BASIC interpreter written in JAVA.
  70. ^ Miller, Paul (June 19, 2017). "Fuze Code Studio will let kids use the Switch to code their own Switch games". The Verge. Retrieved September 30, 2023.
  71. ^ Porter, Matt (December 18, 2015). "Now kids can get back to BASIC with Fuze". The Gadget Man. Retrieved September 30, 2023.
  72. ^ Bedford, Mike (October 21, 2015). "FUZE powered by Raspberry Pi V2 review". The Gadget Man. Retrieved September 30, 2023.
  73. ^ Brin, David (September 14, 2006). "Why Johnny Can't Code". Salon. Archived from the original on September 18, 2013. Retrieved June 19, 2017.
  74. ^ "Small Basic". Microsoft Developer Network. Archived from the original on March 17, 2014. Retrieved June 19, 2017.
  75. ^ "BASIC-256 homepage". Check out "Why Johnny Can't Code," the article that inspired BASIC-256.
  76. ^ Ratliff Sr., Gary L. (October 2008). "An Alphabet of Computer Languages: BASIC". PCLinuxOS Magazine. Retrieved February 25, 2024.
  77. ^ Koster, Raph (November 21, 2006). "Quite BASIC — Web BASIC programming". Retrieved February 25, 2024.
  78. ^ "Dartmouth plans celebration for 50th anniversary of BASIC computer language". New Hampshire Union Leader. April 28, 2014. Archived from the original on June 20, 2017. Retrieved June 14, 2017.
  79. ^ Wood, Lamont (June 23, 2011). "How are students learning programming in a post-Basic world?". Computerworld. Retrieved February 26, 2024.
  80. ^ "BASIC at 50 – Event Schedule". Dartmouth College. Retrieved June 14, 2017.
  81. ^ "BASIC at 50". Dartmouth College. Retrieved June 14, 2017.
  82. ^ "KeyPgAsm". FreeBasic Wiki. Retrieved August 2, 2017.
  83. ^ "Inline x86 ASM". Pure Basic. Retrieved August 2, 2017.
  84. ^ "Using assembly-language in your code". Power Basic. Archived from the original on August 2, 2017. Retrieved August 2, 2017.
  85. ^ Kemeny, John G.; Kurtz, Thomas E. (January 1968). Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF) (4th ed.). Hanover, N.H.: Dartmouth College Computation Center. p. 53. Archived (PDF) from the original on January 3, 2014.
  86. ^ Information Technology Industry Council (2013). "ANSI INCITS 60:1978 — Programming Language Minimal BASIC". Intertek Inform. Retrieved May 16, 2025.
  87. ^ International Organization for Standardization (1984). "ISO 6373:1984 — Data processing — Programming languages — Minimal BASIC". ISO. Retrieved May 16, 2025.
  88. ^ Ecma International (1978). "ECMA-55: Minimal BASIC". Ecma International. Retrieved May 16, 2025.
  89. ^ Information Technology Industry Council (2003). "ANSI INCITS 113:1987 — Information Systems – Programming Language – Full BASIC". Intertek Inform. Retrieved May 16, 2025.
  90. ^ ANSI X3.113-1987 (PDF, Internet Archive)
  91. ^ International Organization for Standardization (1991). "ISO/IEC 10279:1991 — Information technology — Programming languages — Full BASIC". ISO. Retrieved May 16, 2025.
  92. ^ Ecma International (1986). "ECMA-116: BASIC". Ecma International. Retrieved May 16, 2025.
  93. ^ International Organization for Standardization (1994). "ISO/IEC 10279:1991/Amd 1:1994 — Information technology — Programming languages — Full BASIC — Amendment 1: Modules and single character input enhancement". ISO. Retrieved May 16, 2025.
  94. ^ Ham, John Gatewood (2014). "An ECMA-55 Minimal BASIC Compiler for x86-64 Linux?". Computers. 3 (3): 69–116. doi:10.3390/computers3030069. S2CID 40383760.
  95. ^ angros47 (July 29, 2013). "ANSI Basic: is FreeBasic standard-compliant?". FreeBasic. Archived from the original on September 28, 2023.
  96. ^ Bantchev, Boyko (2008). "The True 'True BASIC'". Institute of Mathematics and Informatics. Archived from the original on March 13, 2011.
  97. ^ Phillips, Wayne (2024). "twinBASIC Homepage". twinBASIC.

General references

[edit]
[edit]
维生素e吃多了有什么副作用 金族念什么 子宫肌瘤是什么引起的 比是什么 鲜为人知是什么意思
狗和什么属相相冲 什么是蜘蛛痣图片 狗脚朕什么意思 为什么手脚冰凉还出汗 什么叫阳性率
痔疮手术后可以吃什么 营业员是什么 狗不能吃什么东西 莲子和什么搭配最好 观音坐莲是什么意思
哈密瓜是什么季节的水果 和平是什么意思 冰箱发烫是什么原因 甲钴胺有什么作用 朕是什么时候开始用的
儿童乘坐高铁需要什么证件hcv8jop5ns4r.cn 喉咙肿大是什么原因hcv7jop7ns0r.cn 蛋白过敏是什么症状hcv7jop4ns7r.cn 95年属什么多大hcv9jop6ns9r.cn 天后是什么意思hcv9jop3ns5r.cn
男人眼角有痣代表什么hcv8jop1ns3r.cn 乏了是什么意思hcv8jop1ns5r.cn 碧玺是什么hcv9jop2ns4r.cn 金疮是什么病aiwuzhiyu.com 一什么村庄hcv7jop5ns6r.cn
嗳气打嗝吃什么药hcv8jop8ns2r.cn pvd是什么材料hcv8jop5ns9r.cn 餐中服用是什么意思hcv8jop2ns9r.cn 身体燥热是什么原因hcv9jop6ns9r.cn 穿青人是什么民族hcv9jop4ns4r.cn
vans属于什么档次hcv9jop3ns8r.cn 纳气是什么意思liaochangning.com 鸡头上长痘痘用什么药hcv9jop6ns9r.cn 梦见自己嫁人了预示着什么huizhijixie.com 手指关节痛挂什么科hcv7jop5ns5r.cn
百度