成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

BASIC 與 FORTRAN 77:比較過(guò)去的編程語(yǔ)言

開(kāi)發(fā)
BASIC 存在許多種不同的版本,這取決于你的計(jì)算機(jī),但該語(yǔ)言總體保持不變。Bywater BASIC是一種開(kāi)源的 BASIC 實(shí)現(xiàn),適用于包括 Linux 和 DOS 在內(nèi)的不同平臺(tái)。

如果你和我一樣,在 20 世紀(jì)七八十年代使用計(jì)算機(jī)長(zhǎng)大,你可能學(xué)過(guò)一種常見(jiàn)的個(gè)人計(jì)算機(jī)編程語(yǔ)言,名為 BASIC(全稱是 “初學(xué)者的通用符號(hào)指令代碼Beginner's All-purpose Symbolic Instruction Code”)。那個(gè)時(shí)期,包括

TRS-80、Apple II 和 IBM PC 在內(nèi)的每臺(tái)個(gè)人計(jì)算機(jī)都可以找到 BASIC 實(shí)現(xiàn)。當(dāng)時(shí),我是一個(gè)自學(xué)的 BASIC 程序員,在嘗試了 Apple II 上的 AppleSoft BASIC 后,轉(zhuǎn)向 IBM PC 上的 GW-BASIC,后來(lái)在 DOS 上學(xué)習(xí)了 QuickBASIC。

我通過(guò)編寫一個(gè)示例程序來(lái)探索 BASIC 和 FORTRAN 77 中的 FOR 循環(huán),以將數(shù)字列表從 1 加到 10。

但是曾經(jīng),一種在科學(xué)編程領(lǐng)域受歡迎的語(yǔ)言是 FORTRAN(即 “公式翻譯FORmula TRANslation”)。盡管在 1990 年對(duì)該語(yǔ)言進(jìn)行的規(guī)范以后,該名稱更常見(jiàn)的風(fēng)格是 “Fortran”。

當(dāng)我在 1990 年代初作為大學(xué)本科物理學(xué)生學(xué)習(xí)物理學(xué)時(shí),我利用自己在 BASIC 上的經(jīng)驗(yàn)學(xué)習(xí)了 FORTRAN 77。那時(shí)我意識(shí)到 BASIC 許多概念都來(lái)源于 FORTRAN。當(dāng)然,F(xiàn)ORTRAN 和 BASIC 在很多其他方面也存在差異,但我發(fā)現(xiàn)了解一點(diǎn) BASIC 可以幫助我快速學(xué)習(xí) FORTRAN 編程。

我想通過(guò)使用兩種語(yǔ)言編寫相同的程序,展示它們之間的一些相似之處。通過(guò)編寫一個(gè)示例程序來(lái)探索 BASIC 和 FORTRAN 77 中的 FOR 循環(huán),這個(gè)程序?qū)?1 到 10 之間的數(shù)字相加。

Bywater BASIC

BASIC 存在許多種不同的版本,這取決于你的計(jì)算機(jī),但該語(yǔ)言總體保持不變。我喜歡的一種 BASIC 版本是 Bywater BASIC,這是一種開(kāi)源的 BASIC 實(shí)現(xiàn),適用于包括 Linux 和 DOS 在內(nèi)的不同平臺(tái)。

要在 FreeDOS 上使用 Bywater BASIC,你必須首先從 FreeDOS 1.3 Bonus CD 中 安裝該軟件包。然后進(jìn)入 C: 目錄并輸入 bwbasic 命令,這將啟動(dòng) BASIC 解釋器。你可以在這個(gè)提示符下輸入程序:

bwBASIC:

Bywater BASIC 使用較早的 BASIC 編程標(biāo)準(zhǔn),需要你在每個(gè)程序指令上編寫一個(gè)行號(hào)。將行號(hào)視為索引。你可以使用行號(hào)輕松地引用程序中的任何指令。當(dāng)你將程序鍵入 Bywater BASIC 解釋器時(shí),請(qǐng)?jiān)诿總€(gè)指令前添加行號(hào):

bwBASIC: 10 print "Add the numbers from 1 to 10 ..."
bwBASIC: 20 sum = 0
bwBASIC: 30 for i = 1 to 10
bwBASIC: 40 sum = sum + i
bwBASIC: 50 next i
bwBASIC: 60 print sum
bwBASIC: 70 end

可以使用 list 命令查看你已經(jīng)輸入到解釋器中的程序:

bwBASIC: list
10 print "Add the numbers from 1 to 10 ..."
20 sum = 0
30 for i = 1 to 10
40 sum = sum + i
50 next i
60 print sum
70 end

這個(gè)簡(jiǎn)短的程序演示了 BASIC 中的 FOR 循環(huán)。 FOR 是任何編程語(yǔ)言中最基本的循環(huán)構(gòu)造,允許你迭代一組值。在 Bywater BASIC 中,FOR 循環(huán)的一般語(yǔ)法看起來(lái)像這樣:

FOR 變量 = 起始值 TO 終止值

在這個(gè)示例程序中,指令 for i = 1 to 10 開(kāi)始一個(gè)循環(huán),迭代值為 1 到 10。在每個(gè)循環(huán)中,變量 i 被設(shè)置為新值。

在 BASIC 中,所有到 next 指令前的指令都將作為 FOR 循環(huán)的一部分執(zhí)行。因?yàn)槟憧梢詫⒁粋€(gè) FOR 循環(huán)放入另一個(gè) FOR 循環(huán)中,Bywater BASIC 使用語(yǔ)法 NEXT 變量 來(lái)指定要迭代的循環(huán)變量。

在提示符下鍵入 run 來(lái)執(zhí)行程序:

bwBASIC: run
Add the numbers from 1 to 10 ...
55

Bywater BASIC 被稱為 BASIC 解釋器,因?yàn)橹荒軓?Bywater BASIC 環(huán)境中運(yùn)行程序。這意味著解釋器會(huì)處理與操作系統(tǒng)的交互的所有繁重工作,因此你的程序不需要自己完成這個(gè)工作。 這樣做的代價(jià)是,程序在解釋環(huán)境中運(yùn)行會(huì)比它作為編譯程序運(yùn)行慢一些。

FreeBASIC

另一個(gè)流行的 BASIC 實(shí)現(xiàn)是 FreeBASIC,這是一個(gè)開(kāi)源的 BASIC 編譯器,適用于多個(gè)平臺(tái),包括 Linux 和 DOS。要使用 FreeBASIC,你需要從 FreeDOS 1.3 Bonus CD 安裝 FreeBASIC 包,然后進(jìn)入 C: 目錄,你會(huì)在這里找到 FreeBASIC 程序。

FreeBASIC 是一個(gè)編譯器,因此你首先需要?jiǎng)?chuàng)建一個(gè)包含程序指令的源文件,然后使用源代碼運(yùn)行編譯器以創(chuàng)建一個(gè)可運(yùn)行的程序。我編寫了一個(gè)類似于“將 1 到 10 的數(shù)字相加”的程序版本,將其保存為 BASIC 文件,并命名為 sum.bas

dim sum as integer
dim i as integer
print "Add the numbers from 1 to 10 ..."
sum = 0
for i = 1 to 10
sum = sum + i
next
print sum
end

如果你將這段代碼與 Bywater BASIC 版本的程序進(jìn)行比較,你可能會(huì)注意到 FreeBASIC 不需要行號(hào)。FreeBASIC 實(shí)現(xiàn)了一種更現(xiàn)代的 BASIC 版本,使得編寫程序時(shí)不需要跟蹤行號(hào)更容易。

另一個(gè)主要的區(qū)別是你必須在源代碼中定義或聲明變量。使用 DIM 指令在 FreeBASIC 中聲明變量,例如 dim sum as integer,以定義一個(gè)名為 sum 的整數(shù)變量。

現(xiàn)在可以在命令行上使用 fbc 編譯 BASIC 程序:

C:\DEVEL\FBC> fbc sum.bas

如果你的代碼沒(méi)有任何錯(cuò)誤,編譯器將生成一個(gè)可以運(yùn)行的程序。例如,我的程序現(xiàn)在稱為 sum。運(yùn)行我的程序?qū)?1 加到 10:

C:\DEVEL\FBC> sum
Add the numbers from 1 to 10 ...
55

FORTRAN 77

FORTRAN 編程語(yǔ)言類似于舊式和現(xiàn)代 BASIC 之間的混合體。FORTRAN 比 BASIC 更早出現(xiàn),而 BASIC 顯然從 FORTRAN 中汲取靈感,就像后來(lái)的 FORTRAN 版本從 BASIC 中獲得啟示一樣。你可以將 FORTRAN 程序以源代碼的形式寫成文件,但并不需要在每個(gè)地方使用行號(hào)。但是,F(xiàn)ORTRAN 77 在某些指令中使用行號(hào)(稱為標(biāo)簽),包括 FOR 循環(huán)。在 FORTRAN 77 中,FOR 實(shí)際上被稱為 DO 循環(huán),它執(zhí)行相同的功能并具有幾乎相同的用法。

在 FORTRAN 77 中,DO 循環(huán)的語(yǔ)法如下:

DO 行號(hào) 變量 = 起始值, 終止值

這種情況是需要行號(hào)來(lái)指示 DO 循環(huán)結(jié)束位置的一種情況。你在 BASIC 中使用了 NEXT 指令,但 FORTRAN 需要一個(gè)行標(biāo)簽。通常,該行是一個(gè) CONTINUE 指令。

查看這個(gè)示例 FORTRAN 程序,了解如何使用 DO 循環(huán)來(lái)循環(huán)一組數(shù)字。我將此源文件保存為 sum.f

PROGRAM MAIN
      INTEGER SUM,I
      PRINT *, 'ADD THE NUMBERS FROM 1 TO 10 ...'
      SUM = 0
      DO 10 I = 1, 10
        SUM = SUM + I
   10 CONTINUE
      PRINT *, SUM
      END

在 FORTRAN 中,每個(gè)程序都需要以 PROGRAM 指令開(kāi)始,并指定程序名稱。你可能會(huì)將此程序命名為 SUM,但隨后在程序中不能使用變量 SUM。當(dāng)我學(xué)習(xí) FORTRAN 時(shí),我從 C 編程中借鑒了一些東西,并以 PROGRAM MAIN 開(kāi)始了我的所有 FORTRAN 程序,做法類似于 C 程序中的 main() 函數(shù),因?yàn)槲也惶赡苁褂妹麨?nbsp;MAIN 的變量。

FORTRAN 中的 DO 循環(huán)類似于 BASIC 中的 FOR 循環(huán)。它迭代從 1 到 10 的值。變量 I 在每次循環(huán)中獲取新值。這樣可以將 1 到 10 的每個(gè)數(shù)字相加,并在完成時(shí)打印總和。

你可以在每個(gè)平臺(tái)上找到適合的 FORTRAN 編譯器,包括 Linux 和 DOS。FreeDOS 1.3 的 Bonus CD 中包括 OpenWatcom FORTRAN 編譯器。在 Linux 上,你可能需要安裝一個(gè)包來(lái)安裝 GNU Fortran 支持(在 GNU 編譯器集合(GCC)中)。在 Fedora Linux 上,你可以使用以下命令添加 GNU Fortran 支持:

$ sudo dnf install gcc-gfortran

然后你可以使用以下命令編譯 sum.f 并運(yùn)行程序:

$ gfortran -o sum sum.f
$ ./sum
ADD THE NUMBERS FROM 1 TO 10 ...
55

一點(diǎn)不同之處

我發(fā)現(xiàn) FORTRAN 和 BASIC 非常相似,但也存在一些不同之處。這些語(yǔ)言的核心是不同的,但如果你了解一些 BASIC,你可以學(xué)習(xí) FORTRAN,同樣,如果你了解一些 FORTRAN,你也可以學(xué)習(xí) BASIC。

如果你想探索這兩種語(yǔ)言,有幾點(diǎn)需要注意:

  • FORTRAN 77 使用全大寫,但后來(lái)的 FORTRAN 版本允許大小寫混用,只要對(duì)變量、函數(shù)和子程序使用相同的大小寫。大多數(shù) BASIC 實(shí)現(xiàn)都不區(qū)分大小寫,這意味著你可以自由地混合大小寫字母。
  • 有許多不同版本的 BASIC,但它們通常做同樣的事情。如果你學(xué)會(huì)了一種 BASIC 實(shí)現(xiàn)方式,很容易學(xué)會(huì)另一種。注意 BASIC 解釋器或編譯器的警告或錯(cuò)誤信息,查閱手冊(cè)了解差異。
  • 某些 BASIC 實(shí)現(xiàn)需要使用行號(hào),例如 Bywater BASIC 和 GW-BASIC。更現(xiàn)代的 BASIC 版本允許你編寫不使用行號(hào)的程序。FreeBASIC 需要使用 -lang 廢棄選項(xiàng)編譯帶有行號(hào)的程序。
責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2010-03-11 10:51:19

Python編程語(yǔ)言

2010-03-10 19:46:07

Python編程語(yǔ)言

2021-10-04 18:49:46

Fortran 77語(yǔ)言猜數(shù)字

2010-03-10 16:35:23

Python編程語(yǔ)言

2016-04-11 10:58:45

編程語(yǔ)言排行榜VB.NET

2021-04-09 15:20:47

編程語(yǔ)言Fortran程序員

2011-11-16 09:00:39

編程語(yǔ)言

2010-03-08 15:31:58

Fortran編程語(yǔ)言排行榜

2011-02-11 23:21:00

Fortran編程語(yǔ)言排行榜

2023-05-24 09:31:51

CGo

2009-03-10 11:31:16

編程語(yǔ)言排行榜VB

2009-06-15 11:03:10

Java語(yǔ)言C#語(yǔ)言

2021-04-30 11:24:33

編程語(yǔ)言薪酬開(kāi)發(fā)

2022-12-19 10:56:13

編程語(yǔ)言JavaScriptPython

2020-12-29 06:44:18

GoScala編程語(yǔ)言

2021-01-07 15:01:09

編程語(yǔ)言JavaPython

2015-03-27 09:38:53

Java互聯(lián)網(wǎng)編程編程領(lǐng)域之王

2016-04-18 15:58:00

IT技術(shù)周刊51CTO語(yǔ)言排行榜

2009-10-19 14:22:13

VB.NET EIF體

2020-07-07 07:00:00

RustGo語(yǔ)言編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美精品一区二区在线观看 | 6080yy精品一区二区三区 | 日本一区二区三区视频在线 | 亚洲啊v | 国产视频一二三区 | 国产中文字幕在线观看 | 97国产精品视频人人做人人爱 | 欧美v日韩v| 国产精品69毛片高清亚洲 | 日韩欧美在线播放 | sese视频在线观看 | 人人做人人澡人人爽欧美 | 欧美日韩精品中文字幕 | 成人精品免费视频 | 琪琪午夜伦伦电影福利片 | 最近日韩中文字幕 | 成人性视频免费网站 | 伊人二区 | 91资源在线| 97色综合 | 久久久国产精品 | 久久视频免费看 | 亚洲一区二区三区在线观看免费 | 97色伦网| 91在线观看免费 | 日韩一区二区在线视频 | 欧美精品被 | 影音先锋亚洲资源 | 久久三级av | 色小姐综合网 | 久久一区二区av | 欧美日韩1区2区3区 欧美久久一区 | 欧美一级视频在线观看 | 99在线免费视频 | 在线播放一区二区三区 | 天天人人精品 | 日本精品视频一区二区三区四区 | 中文字幕免费视频 | 久久久人成影片一区二区三区 | 免费同性女女aaa免费网站 | 亚洲国产精品一区二区三区 |