亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        自然數(shù)階乘算法程序正確性的形式化證明

        2020-03-30 02:12:19梁元貞林燕芬耿江濤
        大眾科學(xué)·上旬 2020年2期
        關(guān)鍵詞:雙語教學(xué)

        梁元貞 林燕芬 耿江濤

        摘 要:程序正確性與可信性是各類計算機系統(tǒng)中最重要的核心問題。在開展“C程序設(shè)計”課程雙語教學(xué)、以及精品在線開放課程建設(shè)的實踐中,培養(yǎng)計算思維的意識和能力是核心任務(wù)。本文選擇體現(xiàn)計算思維本質(zhì)特征的“自然數(shù)階乘算法”這個典型程序為抓手,透過程序調(diào)試與測試的表象,直擊程序正確性與可信性的核心,通過程序的完全正確性證明,為開展計算思維的形式化方法教育、培養(yǎng)視野及思維開闊的國際化人才,進行了有益的實踐。

        關(guān)鍵詞:階乘算法;程序正確性;形式化證明;計算思維;雙語教學(xué)

        1 引言

        實施雙語教學(xué),是“互聯(lián)網(wǎng)+”及智能時代培養(yǎng)國際化人才的重要舉措。廣州涉外學(xué)院發(fā)揮“涉外”特色優(yōu)勢,采用愛爾蘭都柏林工業(yè)大學(xué)Paul Kelly編著的中國教育部雙語教學(xué)示范教材[1],在計算機應(yīng)用及軟件技術(shù)專業(yè)強化雙語教學(xué),取得顯著成效[2]。在進一步開展“雙語C程序設(shè)計”精品在線開放課程的建設(shè)實踐中,更需要注重將“計算思維”的意識培養(yǎng)和方法應(yīng)用貫穿人才培養(yǎng)和實踐教學(xué)的全過程。

        計算思維被認為是數(shù)學(xué)邏輯思維、物理實證思維后的第三種思維方式,由美國計算機科學(xué)家周以真教授首次提出[3]:計算思維是與形式化問題及其解決方法相關(guān)的思維過程,是運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計、以及人類行為理解等思維活動,根本特征是抽象和自動化。形式化方法用嚴格的符號系統(tǒng)和數(shù)學(xué)模型描述和驗證一個目標軟件系統(tǒng)的行為和特性[4],使用嚴格精確的數(shù)學(xué)語言、無二義的語法語義,以及一組定義其語法語義的形式化規(guī)則,采用嚴謹?shù)难堇[推理法完成邏輯分析和證明。

        程序設(shè)計課程是培養(yǎng)計算思維最有效的工具。中國九校(首批“985工程”建設(shè)高校)聯(lián)盟在計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明中,把培養(yǎng)計算思維能力作為計算機基礎(chǔ)教學(xué)的核心任務(wù)[5]。而自然數(shù)的階乘算法,可用“循環(huán)結(jié)構(gòu)”與“遞歸函數(shù)”兩種程序?qū)崿F(xiàn),體現(xiàn)了計算思維中“自動化”的本質(zhì)特征,成為培養(yǎng)計算思維能力的最好抓手。

        2 程序正確性概述

        程序的正確性是衡量一個程序正常工作的基本條件。然而,程序所描述的動態(tài)計算過程是無法直接用程序本身的靜態(tài)結(jié)構(gòu)進行正確性證明。因此,程序含有錯誤是難免的。為盡量減少錯誤[6],首先應(yīng)使用結(jié)構(gòu)化程序設(shè)計方法,并在程序調(diào)試時采用軟件測試的方法去跟蹤程序的運行,從而發(fā)現(xiàn)與改正錯誤,但更重要的是采用程序正確性證明的理論進行證明。

        然而,這些早期的奠基性工作仍有很多不足之處[4],在應(yīng)用中異常繁瑣且較難掌握。但其中采用形式化方法構(gòu)建正確及可信的程序,則有利于提高計算思維能力,便于從理論上指導(dǎo)設(shè)計出正確的程序。

        程序規(guī)約是對程序所實現(xiàn)功能的精確描述,是程序正確性的判斷依據(jù),由程序的前置斷言和后置斷言兩部分組成。前置斷言是程序執(zhí)行前的輸入應(yīng)滿足的條件,用一階邏輯公式Pre表示。后置斷言是程序執(zhí)行后的輸出應(yīng)滿足的條件,用一階邏輯公式Post表示。若用P表示問題求解的實現(xiàn)程序,則程序規(guī)約可用Floyd-Hoare邏輯公式表示為{Pre}P{Post},根據(jù)此邏輯表達式的布爾值,對程序正確性做以下定義:

        (1)部分正確:若對于每個使Pre(i)為真,且能使程序P計算終止的輸入信息i,Post(i,P(i))都為真,則稱程序P關(guān)于Pre和Post是部分正確的。

        (2)程序終止:若對于每個使Pre(i)為真的輸入i,程序P的計算都終止,則稱程序P關(guān)于Pre是終止的。

        (3)完全正確:若對于每個使Pre(i)為真的輸入信息i,程序P的計算都將終止,并且Post(i,P(i))都為真,則稱程序P關(guān)于Pre和Post是完全正確的。

        一個程序的完全正確,等價于該程序是部分正確,同時又是終止的。

        3 自然數(shù)階乘算法的遞歸實現(xiàn)及正確性證明

        自然數(shù)階乘的C語言遞歸程序P如下[1]:

        int fact( int n )

        {

        int x = 1;

        if ( n > 0 )

        x = n * fact(n-1);

        return x;

        }

        證:使用廣義數(shù)學(xué)歸納法,容易證明程序正確,此處從略。

        4 自然數(shù)階乘算法的循環(huán)實現(xiàn)及正確性證明

        自然數(shù)階乘的C語言循環(huán)程序P如下[1]:

        int fact( int y )

        {

        int x = 1;

        while ( y > 0 )

        x = y * x, y = y-1;

        return x;

        }

        證:① 首先使用Hoare公理法證明程序部分正確性。

        采用Hoare邏輯三元組描述程序為:

        [ y ≥ 0 ?y = n ] ?F ?[x = n!] (4-1)

        由此可見:P: y ≥ 0 ?y = n

        Q: x = n!

        首先, y > 0 ?x × y! = n! ?→ ?y > 0 ?( y × x ) × (y - 1)! = n! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4-2)

        根據(jù)賦值公理,用 x 代替 y × x 可得到以下表達式:

        [ y > 0 ?( y × x ) × (y - 1)! = n! ] ?x = y * x ?[ y > 0 ?x × (y - 1)! = n! ] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4-3)

        由式(4-2)和式(4-3)利用結(jié)論規(guī)則,可得

        [ y > 0 ?x × y! = n! ] ?x = y * x ?[ y > 0 ?x × (y - 1)! = n! ] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4-4)

        同理,由賦值公理可得

        [ y > 0 ?x × (y - 1)! = n! ] ?y = y - 1 ?[ y ≥ 0 ?x × y! = n! ] ? ? ? ? ? ? ? ? ? ? (4-5)

        由式(4-4)和式(4-5)利用順序規(guī)則,可得

        [ y > 0 ?x × y! = n! ] ?x = y * x, y = y - 1 ?[ y ≥ 0 ?x × y! = n! ] (4-6)

        根據(jù)式(4-6),利用循環(huán)規(guī)則中 P = y > 0 ?x × y! = n!,R = y > 0,可得

        [y ≥ 0 ?x × y! = n! ] ?while (y>0) x = y * x, y = y - 1 [ y≥0 ?x × y! = n! ?y≤0 ] (4-7)

        因為 y = n ?x = 1 ?→ ?x × y! = n! (4-8)

        由式(4-7)和式(4-8)利用結(jié)論規(guī)則,可得

        [ y ≥ 0 ?y = n ?x = 1] while (y > 0) x = y * x, y = y - 1 [ y≥0 ?x × y! = n! ?y≤0 ] (4-9)

        又因為 0! = 1,所以

        y ≥ 0 ?x × y! = n! ?y ≤ 0 ?→ ?y=0 ?x × y! = n! ?→ ?x = n! ? ? (4-10)

        由式(4-9)和式(4-10)利用結(jié)論規(guī)則,可得

        [ y ≥ 0 ?y = n ?x = 1 ] ?while ( y > 0 ) ?x = y * x, y = y - 1 ?[ x = n! ] (4-11)

        根據(jù)賦值公理可得

        [ y≥0 ?y = n] ?x = 1 ?[ y≥0 ?y = n ?x = 1 ] ? (4-12)

        最后,由式(4-11)和式(4-12)利用順序規(guī)則,可得

        [ y ≥ 0 ?y = n ] ?x = 1; ?while ( y > 0 ) ?x = y * x, y = y - 1 ?[ x = n! ] (4-13)

        可以看出,式(4-13)和式(4-1)相同且成立,程序的部分正確性得證。

        ② 再用 Kruth計數(shù)器方法證明程序終止性。

        選取 N(y) = y

        輸入斷言: I(y): y > 0

        當(dāng)?shù)谝淮芜M入循環(huán)時有 y > 0

        根據(jù)程序算法容易看出:循環(huán)體內(nèi)始終滿足 y > 0,于是就有N(y) > 0;

        而每執(zhí)行一次循環(huán),N(y)是遞減的;

        因而,循環(huán)只能執(zhí)行有限次,必定終止,程序的終止性得證。

        完全正確性:綜合上述證明,程序是部分正確的且也是終止的,故程序是完全正確的。

        5 結(jié)語

        計算思維的形式化方法能夠嚴格分析、處理、證明程序及其性質(zhì),對于確保程序正確性和提高可信性具有基礎(chǔ)性的作用。當(dāng)前,形式化方法教育已在歐美教育界進行了相關(guān)的實踐,因此我國高校計算機教育強調(diào)計算思維的同時,更要注重其內(nèi)涵形式化方法的教育作用。

        參考文獻:

        [1] Paul Kelly等,雙語版C程序設(shè)計[M], 2017,電子工業(yè)出版社

        [2]Jiangtao Geng etc. Research on Speeding up the Internationalization of Private High Vocational Education[J].International Journal of Technology Management 2017(4):7-9

        [3] Jeannette M. Wing. Computational Thinking[J]. Communication of the ACM. 2006, 49,(3):33-35.

        [4] 王戟等. 形式化方法概貌[J]. 軟件學(xué)報, 2019, 30(01):33-61.

        [5] 何欽銘等.計算機基礎(chǔ)教學(xué)的核心任務(wù)是計算思維能力的培養(yǎng)[J].中國大學(xué)教學(xué),2010(9): 5-9.

        [6] 馬曉星等. 軟件開發(fā)方法發(fā)展回顧與展望[J]. 軟件學(xué)報, 2019, 30(01):3-21.

        作者簡介:

        梁元貞(1983.12-),女,講師,碩士,廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院計算機應(yīng)用教研室主任。研究方向:雙語教學(xué)、課程研究、計算機課程教學(xué)。

        林燕芬(1974.7-),女,助理研究員,廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院高教研究室。研究方向:高職教育研究、精品課程建設(shè)。

        *通訊作者:耿江濤(1965.12-),男,副教授,高級工程師,華南師范大學(xué)博士生,廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院華文與國際教育學(xué)院院長。研究方向:大數(shù)據(jù)應(yīng)用技術(shù)、高職教育國際化、雙語教學(xué)。

        基金項目:1.廣東省教育廳2017年度廣東省特色創(chuàng)新項目“粵港合作背景下高職院校國際化人才培養(yǎng)研究”(項目編號:2017GWTSCX061)階段性成果 2.廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院2018年校級質(zhì)量工程重點項目“廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院精品在線開放課程管理與建設(shè)研究”(項目編號:SWZL201807)成果 3.廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院2019年校級質(zhì)量工程重點項目“基于大數(shù)據(jù)智慧教育平臺的計算機課程雙語教學(xué)改革的實踐研究”(項目編號:SWZL2019008)成果 4.廣州涉外經(jīng)濟職業(yè)技術(shù)學(xué)院2019年校級教研重點項目“基于學(xué)者網(wǎng)平臺構(gòu)建對分課堂模式實施程序設(shè)計課程的雙語教學(xué)改革”(項目編號:2019JY01)成果

        猜你喜歡
        雙語教學(xué)
        國際班生物雙語教學(xué)實踐與分析
        考試周刊(2016年91期)2016-12-08 22:51:30
        “合理選擇飲食”的雙語微課教學(xué)設(shè)計
        高校雙語教學(xué)現(xiàn)狀與創(chuàng)新分析
        漢語授課對維吾爾族學(xué)生數(shù)學(xué)學(xué)習(xí)影響的案例分析
        對太極拳雙語教學(xué)中教學(xué)技巧的研究
        考試周刊(2016年85期)2016-11-11 01:48:48
        新形勢下數(shù)據(jù)庫原理的雙語教學(xué)
        計算機教育(2016年7期)2016-11-10 08:51:31
        高校通識課程《美術(shù)鑒賞》雙語教學(xué)實踐與研究
        基于CDIO教育理念的《情景導(dǎo)游》課程雙語教學(xué)改革探索
        文教資料(2016年19期)2016-11-07 11:18:10
        湖南省高校舞蹈啦啦操課堂開設(shè)雙語教學(xué)的可行性初探
        體育時空(2016年8期)2016-10-25 19:33:57
        雙語教學(xué)質(zhì)量評價與管理研究
        久久精品岛国av一区二区无码| 久久精品免费中文字幕| 亚洲人成国产精品无码果冻| 色视频www在线播放国产人成| 午夜精品一区二区三区无码不卡| 二区三区视频在线观看| 国产91色综合久久高清| 99视频30精品视频在线观看| 天天av天天爽无码中文| 久草精品手机视频在线观看| 国产三级国产精品国产专区50| 特黄做受又硬又粗又大视频小说| 国产亚洲精品aaaa片app| 无码国产一区二区色欲| 中文字幕高清不卡视频二区| 99久久婷婷国产综合精品青草免费 | 国产精品成人3p一区二区三区| 老太脱裤让老头玩ⅹxxxx| 亚洲红杏AV无码专区首页| 性生大片免费观看性少妇| 国语对白做受xxxxx在| 欧美喷潮系列在线观看| 国产成人色污在线观看| 九九视频免费| av最新版天堂在资源在线| 风韵丰满熟妇啪啪区99杏| 激情影院内射美女| 99热门精品一区二区三区无码| 五月激情在线观看视频| 极品美女扒开粉嫩小泬图片| 高中生粉嫩无套第一次| 一区二区三区国产美女在线播放 | av网站在线观看大全| 97久久精品无码一区二区天美| 在线观看网址你懂的| 在线观看视频亚洲一区二区三区| 人妻无码一区二区三区| 国产精品熟妇视频国产偷人| 亚洲精品一区二区在线播放| 日韩av在线播放人妻| 无码精品人妻一区二区三区人妻斩|