五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
峨眉山市| 余姚市| 卓尼县| 明溪县| 信宜市| 迭部县| 潍坊市| 额济纳旗| 普安县| 东乡县| 驻马店市| 荆州市| 元朗区| 建水县| 古交市| 右玉县| 水城县| 南投市| 阳东县| 垦利县| 吉安市| 金华市| 正阳县| 苏尼特右旗| 竹北市| 教育| 岳普湖县| 门源| 吉安市| 醴陵市| 鲜城| 金秀| 连城县| 纳雍县| 子洲县| 肇源县| 湖南省| 巴塘县| 湟源县| 抚宁县| 漯河市|