最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

五分鐘學(xué)會(huì)一門編程語(yǔ)言?

2022-09-28 16:55 作者:程序員_可樂(lè)  | 我要投稿

大家好,我是可樂(lè)。

看到標(biāo)題,不出意外的話,你肯定開(kāi)始罵我了:**標(biāo)題黨,什么編程語(yǔ)言五分鐘就能學(xué)會(huì)?

其實(shí)我本來(lái)也是不相信的,但是學(xué)過(guò)了才知道這是真的。

1、Brainfuck

看到這個(gè)小標(biāo)題,不要誤會(huì),我沒(méi)有罵人。

這就是今天文章的主人公,也就是讓你們五分鐘能夠?qū)W會(huì)的一門編程語(yǔ)言——Brainfuck。

Brainfuck,簡(jiǎn)稱BF,是一種極小化的編程語(yǔ)言,由Urban Müller在1993年創(chuàng)造。

目標(biāo)是創(chuàng)建一種簡(jiǎn)單的、可以用最小的編譯器來(lái)實(shí)現(xiàn)的、符合圖靈完全思想的編程語(yǔ)言。

PS:不得不佩服大佬命名方式,或許這就是大佬吧?。?!

2、語(yǔ)法

學(xué)習(xí)編程語(yǔ)言,首先就要學(xué)習(xí)其語(yǔ)法。

Brainfuck 編程語(yǔ)言 由 8 個(gè)命令組成:

語(yǔ)法含義>指針向右移動(dòng)一格<指針向左移動(dòng)一格+使指針當(dāng)前格的字節(jié)數(shù)值加1-使指針當(dāng)前格的字節(jié)數(shù)值減1.把當(dāng)前格數(shù)值按 ASCII 表輸出到終端,接受一個(gè)字節(jié)的輸入,將其值存儲(chǔ)在數(shù)據(jù)指針的字節(jié)中。[當(dāng)指針當(dāng)前值為 0 時(shí),程序跳轉(zhuǎn)至與之對(duì)應(yīng)的 ] 之后;否則程序正常執(zhí)行]程序跳轉(zhuǎn)回與之對(duì)應(yīng)的 [ 處

自此,你學(xué)完了 Brainfuck 語(yǔ)言的所有語(yǔ)法,我想都用不了五分鐘吧。

3、Hello World

老規(guī)矩,新語(yǔ)言上手的第一步就是要能輸出 Hello World。

問(wèn)題:這里我們先練習(xí)如何在屏幕打印一個(gè)字母 ‘A’ ?

3.1 菜鳥(niǎo)版

分析:

因?yàn)?ASCII 表中 'A' 對(duì)應(yīng)的值為 65。所以你可能很快就會(huì)有第一種編程方案:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.

這里 + 有65個(gè),然后通過(guò) . 將其輸出到終端,如下:

看上去解決了這個(gè)問(wèn)題,但是這里的 + 實(shí)在太多了,我們編程的時(shí)候很容易少寫或者多寫,那么有沒(méi)有什么方法能簡(jiǎn)化呢?

3.2 進(jìn)階版

ASCII 表中 'A' 對(duì)應(yīng)的值為 65。為了少打幾個(gè) +,我們很自然的想到乘法運(yùn)算,65 = 13*5.

所以我們可以通過(guò)循環(huán)來(lái)改進(jìn)上面的方法:

+++++ [ >+++++++++++++ <- ] >.

這里我解釋一下上面的語(yǔ)法:

①、第一行,有5個(gè) +,表示當(dāng)前格子數(shù)加到 5;

②、第二行,一個(gè) [,表示進(jìn)入一個(gè)循環(huán);

③、第三行,表示指針向右移動(dòng)一格,并且該格子數(shù)值為 13;

④、第四行,表示指針向左移動(dòng)一格,并且該格子數(shù)值減 1(初始化值為5);

⑤、第五行,循環(huán)的結(jié)束語(yǔ)句,判斷指針?biāo)诟褡邮欠駷?,不為0,移動(dòng)到第3行代碼繼續(xù)執(zhí)行,為零則退出循環(huán)。

⑥、第六行,指針向右移動(dòng)一格,并且向終端輸出該格子的值。

下面通過(guò)動(dòng)圖給大家演示一下:

3.3 輸出 Hello World!

++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

4、總結(jié)

不知道大家學(xué)完這門語(yǔ)言之后有什么感想。

首先我要說(shuō)的是,這門語(yǔ)言并不是為了設(shè)計(jì)實(shí)際軟件而設(shè)計(jì)的,而是為了挑戰(zhàn)計(jì)算機(jī)編程的界限。

我們知道計(jì)算機(jī)界最高獎(jiǎng)項(xiàng)叫圖靈獎(jiǎng),圖靈在1936年發(fā)表的 "On Computable Numbers, with an Application to the Entscheidungsproblem"(《論可計(jì)算數(shù)及其判定性問(wèn)題的應(yīng)用》)中提出的數(shù)學(xué)模型——圖靈機(jī)(Turing Machine),描述了它是什么,并且證明了只要圖靈機(jī)可以被實(shí)現(xiàn),就可以用來(lái)解決任何可計(jì)算問(wèn)題,感興趣的大家可以去研究研究。

這門語(yǔ)言對(duì)于我們?nèi)ダ斫鈭D靈思想也是很有幫助的。

比如,一門新的語(yǔ)言,我們要證明其是否是圖靈完備的,如果用數(shù)學(xué)證明的方式必然會(huì)比較復(fù)雜,但是如果你能用這門新語(yǔ)言實(shí)現(xiàn)一個(gè) Brainfuck 的解釋器,那么就必然證明其是圖靈完備的。

彩蛋

Brainfuck 語(yǔ)言圖形化演示:https://openprocessing.org/sketch/516467


五分鐘學(xué)會(huì)一門編程語(yǔ)言?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
长岛县| 阿克| 柘荣县| 左云县| 黄骅市| 离岛区| 丘北县| 新乡市| 宁都县| 冀州市| 芒康县| 潜江市| 赤峰市| 永仁县| 晋江市| 西乌| 桐柏县| 饶阳县| 泰顺县| 新宾| 内乡县| 阳春市| 滦平县| 杨浦区| 定日县| 大宁县| 红安县| 山阳县| 灌云县| 乐都县| 辽中县| 增城市| 鄯善县| 锡林浩特市| 青河县| 通州区| 新巴尔虎左旗| 吉木萨尔县| 通化市| 修水县| 西充县|