原创 推理實驗室(1) 命題證明

這裏採用A.G.漢密爾頓《數理邏輯》中的記號。 原子符號: ~、->、p1、p2.... 公式集: pi 是公式,如果A和B是公式,那麼~A和A->B也是公式。 有時公式太複雜,也可以用∧,∨,<->來簡化表示,規定用A∧B表示~(A->

原创 ucc編譯器分析與總結(3) 聲明檢查

有了類型系統和符號管理的基礎知識之後,接下來就可以分析聲明檢查部分的代碼了。 源代碼經過預編譯後生成.i文件,這時候代碼主要分爲函數語句和聲明語句兩部分,其實函數只不過是一種特殊的聲明語句,比聲明語句多了{}裏面的內容。函數語句和

原创 四國軍棋界面開發(5)喫子規則與聲音效果

之前已經完成了對行棋路線的判定,接下來需要實現對軍棋中喫子規則的判定 1.大小比較 只有在行棋路線合法的情況下才比較大小,比較棋子大小的函數爲CompareChess 輸入的參數是選中的棋子和目標棋子(也可能目標位置上沒棋子),返

原创 windows下編譯gdb源碼

在學習編譯gdb的過程中,一定要和本文出現的各軟件版本保持一致,否則很容易因爲版本的原因出現一些奇怪的問題。 1.搭建msys2環境 在win下編譯gdb首先要搭建msys2的開發環境,先從官網下載msys2-i686-20190

原创 關於存在性問題的本質思考

在做《抽象代數的代碼實現》這一專題時,我碰到數學概念難以用代碼表達的問題,而這又很大程度上是由於數學上各種雜七雜八的存在性問題引起的,所以我想探究一下存在性問題到底是什麼。在存在性問題解決之前先把這個專題暫停掉,因爲以我現在的能力

原创 前端調試入門的一些記錄

1. vscode 本來想使用eclipse的,但是eclipse的js插件對調試太不友好了,於是嘗試用vscode,雖然沒達到理想中的要求,但還可以湊合着用,下載後默認安裝即可。 調試前端,要先裝一個之Debugger for

原创 gcc源碼編譯

編譯是基於msys2平臺,使用的源碼是gcc-7.3.0-1.src.tar.gz 解壓後執行 makepkg --skippgpcheck會報錯,提示缺少依賴,根據錯誤提升安裝相關依賴 pacman -S mpc-devel g

原创 fossil源碼編譯

fossil是一個類似git的版本控制工具,是由SQLite作者寫的,代碼的水平應該比較高,fossil還提供了web展示的功能,支持http接口,綜合性比較強,對c語言程序員來說也可以初步瞭解一些前端和後端的知識,比較有學習價值

原创 eclispe設置斷點無效(No source file named)

最近不知道做了什麼操作導致eclipse的斷點無效,表現爲gdb只認相對路徑的斷點,不認絕對路徑,而eclipse打斷點使用的是絕對路徑,導致無效,輸出信息是:No source file named 默認情況下是不存在這個問題

原创 SQLite源代碼編譯調試

1.在msys上編譯 本文介紹的是windows平臺,所以首先要安裝msys2環境,這裏就不細說了,具體可以參考下面這篇文章: https://blog.csdn.net/qiuzhiqian1990/article/detail

原创 嵌入式linux入門筆記

學習的是韋東山的JZ2440板子,一開始假設是裸板,首先要用jtag把uboot燒到nor flash,完成後拔掉jtag,然後板子從nor flash啓動,剛開始啓動時馬上按空格鍵進入uboot選擇菜單,會出現如下選擇項: ##

原创 Eclipse CDT初步使用教程

我用過Source insight和VS,感覺不順手就沒用了,所以也沒有深入研究過,其他的如Code::Blocks,vim,Clion, Emacs我也沒用過,不好做評價,反正我用Eclipse用的很舒服,這裏給大家分享一下,多

原创 嵌入式linux之nfs掛載及gdb調試環境的搭建

1開發板和虛擬機互ping nfs即網絡文件系統,要掛載nfs之前首先要讓開發板和ubuntu可以相互ping通。一般在vmware上運行ubuntu,爲了能夠上網,啓動時在網絡適配器的選項中選擇NAT模式,NAT模式的意思就是和

原创 ucc編譯器分析與總結(5) 中間代碼生成

1.基本框架 經過語義檢查後,現在已經有了包含符號和類型的完整語法樹,現在要做的事情就是繼續沿着語法樹走一遍,對每條語句和表達式生成相應的中間代碼。 中間代碼以三地址碼的形式表示,由兩個源操作數,一個目的操作數和一個運算符組成。然

原创 詞法分析器flex和語法分析器lemon的初步使用

自己手寫詞法分析器和語法分析器是很麻煩的一件事,而且這裏面的邏輯非常複雜很容易出錯。flex和lemon就是用來幫助生成詞法分析器和語法分析器的,只需要寫少量規則代碼,就可以生成解析的c代碼。現在先不關注實現原理,主要看一下這東西