語言是一種工具,語言應需要產生,並應需要而發展。原始的語言和詞彙是一種直接、具體的符號及符號組合。感性是理性的啟端,發展了的語言是建立在自我描述之上的一種抽象。詞彙是語言的材料,詞法是語言的模板,語義則是語言的精神。
抽象是實際需要,是選擇的結果,一致性是抽象的目的,而抽象本身卻是二義的。抽象意味著表示、分類、歸納、組織、演繹及錯誤。錯誤是選擇和判斷的一種,錯誤是抽象的特質,本身也是一種抽象,錯誤因創造而生,伴隨著抽象而來。人是有靈性的動物,會因需要創造各種抽象,並依賴於創造的抽象,稱之為知識和智慧型。而當依賴成為習慣時,有時靈性反而被禁錮了。
語言可以用來表現世界、描述世界、記錄和傳遞資訊、知識及智慧型、抒發情感、表達善惡、記錄歷史、傳遞宗教。但對程式設計師來說,組織、傳遞、儲存、加工資訊是語言的主要職責,而目的則是描述需求、分解需求、解決需求。程式設計師一般是現實主義者,即使有時看起來有些理想,程式設計師做事首先考慮的是實用,然後是工程化。
資料和資訊是程式語言處理的基本物件,而知識則是處理的依據,至於整個過程以及處理的效果如何,則受智慧型影響,智慧型的運用往往表現為利益的產生,但利益不應該是智慧型的唯一。智慧型是知識的選擇與運用,也是人生的態度。
資料和資訊本身是混沌的,混沌不是問題,一種生命力的體現。資訊的混沌主要表現在整體上,而觀察細節時,則應該相對顯得有序。混沌的資訊對於我們來說並不十分好用,比較好用的是哪些按某種目的經過梳理的資訊。梳理和加工是資訊選擇的結果,有選擇意味著有丟失,正如魚和熊掌很難兼得。好用與有用並不十分一致,好用應該是對有用的某種權衡。人有時可以很容易處理複雜的資訊,而對於加工原始資訊反而有些吃力。處理複雜資訊需要的往往只是技巧,而處理簡單資訊則經常需要更多的基礎積累,這也許是難度的所在。正如簡單之所以複雜,是因為沒有假設,複雜之所以簡單,是因為有許多假設。
程式語言需要合適的詞彙、語法規則、語義去表述和定義處理資訊的方式和模式。詞彙是語言的基本特徵,一些為數不多的詞彙集合往往可以處理一大批問題。詞匯集往往與要處理問題的某些側面對應,有些詞匯集適合描述問題、有些適合分解問題、有些適合表示問題的處理步驟、有些則適合於執行數值計算和邏輯演算、而有些則適合於資料的輸出和表現。乙個有益的語言可以對問題整個進行規劃,梳理成合適的結構,而每個節點則由合適的語言,以合適的方式去操作。梳理是乙個約束的過程,而分解操作則是融合和整合的過程,在這過程中要充分運用現有的成果,不能什麼事都從頭開始,即不可行也沒有必要。
在程式設計中,資訊處理的最直接表現為分類和計算,計算是計算機本身所具有的能力,而分類更多的是資訊選擇的需要。分類在程式語言上表現為型別和例項,型別是一種規範、約束、劃分。表示例項可以具有的一項和多項特徵,並對這些特徵進行約束,表現為這些特徵可行的取值範圍以及有效的操作能力。型別蘊含著組合,但在程式設計中,但主要用於例項的自我表徵。例項一般具有某些型別特性,並在特性約束下具體取合適值,執行相應的操作。
對於現有大部分語言來說,型別與例項的劃分是清楚的,型別定義了一種規範,而例項則是這種規範的具體使用。但在實際應用時,並不是所有的情況都是這樣地清晰。例如對於符號表來說,型別定義本身也是一種例項。而有些物件表現為半例項化半型別化的特性,而有些型別則完全依賴於例項化物件。型別和例項之間的這種關係,現在也許只是特例,但在以後會慢慢變成常態。概念與應用相關,在一種應用下明確的概念,在另外一種應用下則可能變得模糊。概念正確依賴於所處的環境,當概念開始與環境不符時,就會表現為例外的出現,例外是一種環境改變對固有邏輯的衝擊,例外是抽象的幽靈,卻是自然的常態。
程式設計師很實在,一般只做力所能及的事,偶爾去思考一下,只是給所做的事情,找乙個說服自己的理由。
我眼中的程式設計師
從事專案管理工作也有很長時間了,合作過的程式設計師也有幾十位了吧,跟他們的合作大多都是愉快的,我也很喜歡跟他們合作,因為很多的好想法只有通過程式設計師才能實現。跟我合作的程式設計師很多都不是軟體專業,而是物理,數學,無線電等等專業的,但是他們比起軟體專業的人毫不遜色,也許還要強一些。怎麼跟程式設計師...
程式設計師眼中的CPU
cpu是暫存器的集合體。高階語言經過編譯轉化為機器語言之後,通過暫存器進行運算 累加暫存器 和儲存處理。根據功能將暫存器分為8類 1.累加暫存器 accumulator register 2.程式計數器 program counter 3.基址暫存器 base register 4.變址暫存器 in...
程式設計師眼中的Redis
redis 是用c語言編寫的記憶體中的資料結構儲存系統,可以用來作資料庫 快取 訊息中介軟體.資料結構 字串 strings 值是任何種類的字串 雜湊 hashs 值是map 字典,陣列 鍊錶,不管讀多還是寫多都能很好的效能 列表 lists 鍊錶或佇列或棧 集合 sets 無序集合,可用交集 差集...