2007.07.02

今天要來往第二章鑽研去,一開始標題大大打著 TCL 介紹!?聽聽志亨老師的解釋:TCL (Tool Command Language)在ns2中主要是用來描述腳本的,簡單的說就是用來描述要模擬的網路環境和參數設定等。(引自 http://140.116.72.80/~smallko/ns2/tcl.htm )

原來 TCL 是要來描述腳本的,可是遇到第一個疑問是...那我要用什麼編譯,什麼軟體去寫?平常在寫 c++ 都有 visual2005 還是Dev c 可以拿來 compile 加除錯,出來的檔案都是 .cpp 還可以編譯成執行檔,那這個 TCL 要怎麼去寫呢?關於這個峰峰似乎有獨特的見解,到時候再來去看他的 XD。

在這我先介紹一些 TCL 撰寫的語法以及指令,因為在學校有學過 C 語言,所以現在看 TCL 語法感覺不是很難上手。而在這我一樣抓取志亨老師的網站例題來詳細解說,並且會翻譯成 c++ 語言來讓自己比較容易瞭解。


 $第一個例題,變數的宣告與使用----- set、puts


set 指令,就像是在宣告, c 語言裡面的 int 等等的 type 宣告,第一行的意思是宣告 foo 這個變數 assign 為 john,以 c 語言來看就要寫成 「string foo = "john";」,這裡不同的是沒有等號,也沒有分號作指令區隔。

puts 指令,就像是在 output , c 語言裡面的 cout ,第二行意思是 output 這一串在『"』裡面的字,以 c 語言來看就要寫成「cout << "my name is " << foo;」,這裡不同的是不需要小於,也不需要把變數抓取出來,就像是 c 語言 printf 的形式。

 ※注意:變數宣告前面不用加$符號,可是在使用變數則必須在前面加上$。


 $第二個例題----- eval

eavl 指令,這個指令我有點不太懂,不過大致上的意思好像是可以執行一個 TCL script,我照我意思去翻譯這一串指令就是,首先設定了一個變數 foo = puts hi,可是 puts 在 TCL 裡面也算是一個指令,所以當 eval $foo 也就是要去執行 foo 裡面的指令,然而裡面的指令就是要 output hi,所以整個程式執行下來就只看到螢幕顯示 hi。

 
 $第三個例題,表示式----- expr

expr 指令,在這個例題就像是判斷式, c 語言裡的 if(...)判斷,第一行的意思是宣告 value 存放 expr 判斷完後的值,以 c 語言來看就要寫成「if(0==1)」,這裡不同的是整個表示式要以中括號 [] 括起來,比較特殊的是,他可以將判斷完的值直接丟給一個變數。


 $第四個例題,表示式----- expr

expr 指令,在這個例題就像是使用 expr 去做運算,運算完後的值傳給 value 去存,最後再 output 出來,以 c 語言來看就要寫成「int a=2+3; cout << a;」,感覺在運算上 expr 似乎就比較不需要,不過這是此程式的語法,所以要熟記!為甚麼要這麼寫呢?我猜是下個例題使用起來 expr 就比較方便了。


 $第五個例題,表示式----- expr

expr 指令,在這個例題也是使用 expr 去做運算,相較於 c 語言來看,這樣的寫法比較方便,就不用再去宣告出兩個變數,並且變數再去做運算,直接以 expr 當運算完後直接回傳值即可。
 

歡迎對於 NS2 有研究或見解的同學、朋友可以一起討論  by Yo PM 05:06

創作者介紹
創作者 NS2lab 的頭像
NS2lab

『網路節點模擬』 研究日誌

NS2lab 發表在 痞客邦 留言(0) 人氣()