編程語言:
靜態(tài)語言:編譯型語言
C剃法,C++唇礁,JAVA
優(yōu)先:性能好勾栗,比解釋語言高30%
缺點(diǎn):每一次改動(dòng)都得重新編譯,用戶接口不是那么好盏筐,很多東西都需要自己去寫封裝围俘,開發(fā)周期長,維護(hù)成本大
動(dòng)態(tài)語言:解釋型語言
shell琢融,perl界牡,python
優(yōu)點(diǎn):開發(fā)周期短,開發(fā)成本低螟左,各種造好的輪子直接拿來用袜匿,便于維護(hù)
缺點(diǎn):性能差
facebook
動(dòng)態(tài)語言->靜態(tài)語言
php -> Hiphop ->C++
bash
perl
python Django
java, jsp, ssh(Spring, Structs, Hibernate)
ruby, rails
asp, php
學(xué)程序捷徑步驟:
1.基本語法
2.算法携取,數(shù)據(jù)結(jié)構(gòu)
3.編譯原理
程序員需要懂語言,看語言挽荠,最后要能自己寫出來,內(nèi)化成自己的泊碑。
訓(xùn)話:一個(gè)人必須做自己最擅長的工作坤按,如果不能做自己最擅長的工作,一定要用自己最擅長的方式去做自己工作
PHP is Hypertext Preprocessor 超文本預(yù)處理器
bash:
詞法分析
語法分析(句法分析)
生成執(zhí)行路徑
opcode:操作碼
php解釋型馒过,php
php
php source code --> 編譯成二進(jìn)制 --> 執(zhí)行二進(jìn)制
Zend:opcode
1.Scanning(Lexing)-將php代碼轉(zhuǎn)換成語言片段(Tokens)
2.Parsing 將Token轉(zhuǎn)換成簡單而有意義的表達(dá)式
3.Compilation-將表達(dá)式編譯成opcodes
4.Execution-順序執(zhí)行opcodes臭脓,每次一條,從而實(shí)現(xiàn)php腳本的功能
CGI
Common Gateway Interface
request --> apache發(fā)現(xiàn)時(shí)php請求 --> php解釋器解釋成html --> apache的到html-->response
嵌入式web開發(fā)語言
index.php
<html>
<head></head>
<?php
?>
</html>
第一種模式:
CGI模式:apache + php解釋器--這叫CGI模式
第二種工作模式:
模塊模式Module機(jī)制:apache的本質(zhì)是DSO:dynamic shared object
所以可以把php編譯成apache共享模塊腹忽,php_mod
不過這樣apache既要處理靜態(tài)也要處理動(dòng)態(tài)內(nèi)容
第三種工作模式:
FastCGI機(jī)制:apache + php服務(wù)器(內(nèi)部有很多空閑的進(jìn)程)-這樣就不在是基于CGI了
Nginx比apache性能要好得多
php5.4已經(jīng)內(nèi)置了第三種工作模式来累,Nginx+fpm
yum install php53 php-mbstring
rpm -ql php53