Can you summarize the following document?
        
  一些語言使用左值(英語:l-value)和右值(英語:r-value)的概念。左值具有確定的、可以被獲得的記憶體地址。這意味著左值可以是變數,也可以是對指向特定記憶體地址的指標解引用(dereference)的結果。例如C語言的表示式codice_1,在執行時,計算機生成一個整數值13,但因為程式沒有明確指定這個13如何在計算機中儲存,所以這個表示式產生一個右值。另一方面,如果一個C程式宣告瞭一個變數x並將x賦值為13,那麼表示式codice_2的值是13,並且是一個左值。  在C語言中,術語“左值”最初表示可以被賦值 (電腦科學)(即位於賦值運算子左側)的物件,但由於“const”被加入到語言中,這類物件現在被稱作“可更改的左值”。C++中,左值和右值是表示式的分類,一個表示式必然是左值或右值之一。C++11把上述左值性(lvalueness)擴充為更復雜的值類別(value category),包含左值(英語:lvalue),純右值(英語:prvalue)和臨終值(英語:xvalue)三個基本分類(fundamental classification),一個表示式必然是三者之一。  左值和右值的概念最早由CPL程式語言的一篇論文引入。 這時定義的左值是可以放在賦值號左側賦予新值的物件;右值是可以放在賦值號右側讀出其值的物件。在B語言中,左值和右值作為文法的元素被明確。在C語言中,文法不再出現左值和右值的區別,左值的概念被保留在語義規則中,而“右值”在ISO C中被視為“值”的同義詞。  C++語言引入了const限定的物件。const物件可以取地址,但是不能被賦值;而一些右值物件也可以出現在賦值號的左邊被賦值。因此,截至C++03標準,把具有標識(identity)的表示式規定為左值,不具有標識的表示式規定為右值。因而,名字、指標、引用等是左值,是命名物件,具有確定的記憶體地址;字面量、臨時物件等為右值,右值僅在建立它的表示式中可以被訪問。函式名字是左值(在C語言中規定它既不是左值也不是右值),陣列名是常量左值,但是在大多數表示式中函式名字與陣列名字自動隱式轉換為右值。右值的生存期短暫,所以需要用左值去捕捉右值。把右值複製(copy)到左值上是常見操作。  C++11標準引入了右值引用資料型別與移動語義,因而左值與右值的定義發生了很大變化。右值引用變數繫結到右值上,延長了右值對應的臨時物件的生存期。移動語義把臨時物件的內容移動(move)到左值物件上。因而在C++11,對於值的分類,要考慮標識(identity)與可移動性(movability),二者的組合產生了五種分類:  C++的非靜態成員函式呼叫表示式(obj.func與ptr->func),非靜態成員函式指標呼叫表示式(obj.*mfp與ptr->*mfp)被當作純右值,但是不能用於初始化引用,不能做函式實參,僅僅能用作函式呼叫表示式左邊的運算元,如(pobj->*ptr)(args)。  返回void的函式呼叫表示式、到void的型別轉換表示式、throw表示式被當作純右值。但是不能用於初始化引用,不能做函式實參。可用於某些上下文環境中(如單獨作為一行語句、逗號操作符的左端表示式等),或返回void的函式的return語句中。此外,throw表示式可用作三元條件操作符的第二或第三運算元。  位域(bit field)表示式是左值,但不能用&運算子取地址,不能繫結到非常量左值引用。常量左值引用可以用位域左值初始化,但實際上是另行分配繫結了一個物件。

  值可以是一個給定的資料型別,例如一個字串,一個數字,一個單一的字母等幾乎任何型別的資料。  有些處理器支援多種尺寸的立即數,例如8位或16位,每一種指令形式採用獨特的操作碼和助記符。如果一個程式設計師提供的資料值不適合,彙編器將會出現“超出範圍”的錯誤訊息。大多數彙編器允許一個立即數被表示為ASCII,十進位制,十六進位制,八進位制或二進位制資料。因此,ASCII字元'A'和65、0x41是一樣的。字串的位元組序在不同處理器之間可能不同,取決於彙編器和計算機體系結構。
在電腦科學中,值(英語:Value)是一無法進一步求值的表示式。例如,表示式“1 + 2”不是一個值,因為它可以被化簡為表示式“3”。表示式“3”不能夠繼續化簡,因此它是一個值。表示式既有型別(type)屬性,又有值分類(value categories)屬性。兩種屬性彼此獨立。也就是說,對每一種型別的表示式,都有各種值分類。