ticoAg/ChineseCorpus-Kaggle-fanti huggingface dataset:
一位學者指出，他對一份重要的死海詩篇書卷中詩篇第119篇所作的校勘透露，它在文字方面跟馬所拉文本的詩篇第119篇幾乎完全吻合。論到詩篇書卷，桑德斯(J. A. Sanders)教授指出：“大部分［差異］屬於拼字方面，這些差異惟獨對研究古希伯來字發音及類似問題的學者才重要。”這些傑出的古代手抄本的其他例證表明，在大多數事例上均沒有任何重大差異。雖然以賽亞書卷在拼音和文法結構方面含有若干差異，但對聖經的教義卻沒有絲毫影響。
希伯來文聖經的幾個主要流傳渠道主要來説，包括：撒馬利亞五經、阿拉米文意譯本（塔古姆）、希臘文《七十人譯本》、提比哩亞希伯來文文本、巴勒斯坦希伯來文文本、巴比倫希伯來文文本、死海書卷的希伯來文文本。對這些不同的文本作過一番研究和比較之後，基本可以確信經過20多個世紀的流傳，希伯來文聖經在基本上仍保存著原貌。
直至19世紀，希伯來文聖經的標準印刷版本是1524－1525年出版的海依姆（Jacob ben Chayyim）第二拉比聖經。到18世紀，學者們才開始提倡希伯來文文本的校勘工作。
* 1776－1780年，肯尼科特（Benjamin Kennicott）在牛津出版了根據600多份希伯來文手抄本編定而成的異文本。
* 1784－1798年間，意大利學者迪·羅西（J. B. de Rossi）在帕爾馬出版了另外800多部抄本的各種異文。
* 德國的希伯來語學者貝爾（S. Baer）也出版了一部經文母本。
* 較近期，金斯伯格（C. D. Ginsburg）經過多年工作，編纂了一部供校勘之用的希伯來文聖經母本。這部母本於1894年面世，在1926年出版最後修訂版。
* 羅瑟拉姆（Joseph Rotherham）根據1894年版的金斯伯格文本於1902年出版了稱為《點要本聖經》的英文譯本，馬戈利斯（Max L. Margolis）教授與他的同事則採用金斯伯格和貝爾的文本於1917年出版了他們所譯的希伯來文聖經。
* 1906年，希伯來語學者基特爾（Rudolf Kittel）在德國出版了他的精練希伯來文文本的初版，稱為《希伯來文聖經精練文本》（後來刊印第二版）。基特爾在這本書裏列出詳盡的腳注供人作校勘經文之用，並把當時已面世的多部馬所拉文本的希伯來文手抄本加以校勘或比較。他採用受人普遍接受的海依姆文本為藍本。後來，時日久遠得多而較優越的本·阿謝爾（Ben Asher）馬所拉文本發表出來（這部文本是大約在第10世紀加以標準化的），基特爾便著手編纂一部嶄新的《希伯來文聖經精練文本》第三版。編纂的工作直到他死後才由他的同工合力完成。
基特爾文本把馬所拉的邊旁批注全部輯錄起來，而馬所拉則把基督教之前文士們在經文方面所作的許多竄改羅列出來。
* Anderson, Bernhard. ''Understanding the Old Testament''. ISBN 0-13-948399-3
* Bahnsen, Greg, et al., ''Five Views on Law and Gospel'' (Grand Rapids: Zondervan, 1993).
* , ISBN 0-684-86913-6 (paperback).
*  and ISBN 0-7618-3372-2 (paperback).
* .  Full texts of the Old (and New) Testaments including the full Roman and Orthodox Catholic canons.
* .  Protestant Old Testament on a single page.
* .  Extensive online OT resources (incl. commentaries).
* : Old Testament stories and commentary.
*  – Biblia Hebraica Stuttgartensia and the King James Version.
*  基督教文藝出版社藏書  - 華人基督宗教文獻保存計劃
*  思高聖經學會藏書  - 華人基督宗教文獻保存計劃
市長（英語對應詞：，出自拉丁文「」，「較大的」的意思）是近現代城市或市鎮中最高行政首長的職稱。
在許多政府系統裡，市長是由市民選出為一個城市最高行政長官、或為一個儀式的職務。市長這個名稱在全世界各個地方依據當地的法律有不同職責和權力，也因各個地方而有不同意義。
*在，市長是市政機關的行政首長，地級市的市長由市人民代表大會選舉產生，職責是主持市人民政府的工作，地位僅次於市委書記。
*在，市長是指直轄市（屬一級行政區）、市（屬二級行政區）、縣轄市（屬三級行政區）的行政首長。由市民直選產生。
*在，「市長」職務可以指基層政權——市町村的行政首長，即市長、町長、村長。由市町村民直選產生。
*在，市長是指特別市、特別自治市、廣域市（上列3種為一級行政區）、市（屬二級行政區）的行政首長。由市民直選產生。
*在，市長指的是擁有市政廳資格的地方政府之首領。有時市議會（Municipal Council）的首領也稱為市長，但多數情況使用「主席」（President）一詞。市長由各州政府遴選。
*在，「市長」職務是指一個市的人民委員會主席。
任命者或選舉
其他職位或政治地位
北京市人民政府
北京市人大常委會
第十九屆中共中央委員、中共北京市委副書記
上海市人民政府
上海市人大常委會
第十九屆中共中央委員、中共上海市委副書記
天津市人民政府
天津市人大常委會
第十九屆中共中央紀委委員、中共天津市委副書記
重慶市人民政府
重慶市人大常委會
第十九屆中共中央候補委員、中共重慶市委副書記
2018年九合一選舉
*在，市長是當地政府的負責人。在過去，市長主要是一個擔任禮儀性職務的角色，地位不同於一般積極管理城市的市長。
島嶼或島（英語：Island）是指於海洋、江河或湖泊中被水體圍繞，面積小于大陸的陸地區域。世界上面積最大的島嶼是北美洲的格陵蘭島，面積更大的陸地則不再被視為島嶼，而叫做「大陸」。不考慮西蘭大陸（地球上唯一一個已被淹沒的大陸，面積約490萬平方公里）和白令陸橋（亞洲和北美洲之間的大陸架）的話，目前地球上共有四個大陸：亞歐非大陸、美洲大陸、南極大陸以及澳洲大陸，其中澳洲大陸被視為大洋洲的主要部分。另外格陵蘭島由於面積龐大，常被稱為格陵蘭次大陸。在狹小的地域集中2個或以上的島嶼，即成「島嶼群」，大規模的島嶼群稱作「群島」或「諸島」，列狀排列的群島即為「列島」。而如果一個國家的整個國土都坐落在一個或數個島之上，則此國家可以被稱為島嶼國家，簡稱“島國”。
國際海洋法《聯合國海洋法公約》第121條規定，島嶼的定義是「四面環水并在高潮時高于水面的自然形成的陸地區域」，擁有與其他陸地領土相同的領海、毗連區、專屬經濟區和大陸架，但是「不能維持人類居住或其本身的經濟生活的巖礁，不應有專屬經濟區或大陸架。」 如果是低潮時四面環水并高于水面，但在高潮時沒入水中的自然形成陸地則屬于「」。
另一方面，有些國家會用更廣泛的定義來命名「島」，涵義包括自然地理所謂之列島、群島、島嶼、島礁、巖礁、淺灘、暗礁和暗灘，並在有主權爭議的環礁構築人工島，在島上建設界碑、燈塔、港口、機場、氣象觀測站等設施，達到「維持人類居住或其本身的經濟生活」的條件，以維護其有效控制的正當性。
位於大溪地西北方的茉莉亞島是一座擁有珊瑚礁的火山島可以依照地質成因、位置、開發狀況來區別。
;按地質成因：
島可以分為以下四種類型：大陸島、火山島、珊瑚島和沖積島（也可算作大陸島的一種）。其中大陸島有兩種分類方法：
*按大陸島的組成物質和成因的差異，可分為基巖島和沖積島。
*大陸島的基礎固定在大陸架或大陸坡上，按其構成成因又可分為構造島、冰磧島和沖蝕島。
火山島也可進一步分為大陸型火山島和海洋型火山島。
沿海各地對島嶼的稱呼有所不同，有相當多的地區以“山”為名，尤以中國浙江沿海為多，長江以南（浙、閩、粵等地）對小島又通常稱為“嶼”。但實際上「島」、「嶼」從未有明正式或確定的定義，例如臺灣的綠島面積僅為蘭嶼的三分之一，但前者為「島」，后者為“嶼”。而「排」、「石」或「巖」等則通常指更小的島嶼。有的島雖然細小，但是用「洲」來命名的，如香港的長洲，廣東一帶使用較多，同時內河（如長江）中因江河沖擊而形成的沙洲型島嶼多有使用“洲”為名，如武漢的天興洲。
最高海拔（米）
丹麥王國
世界第一大島
全球地勢最高的島南半球面積最大的島
婆羅洲（加里曼丹島）
全球國家最多的島亞洲第一大島全球地勢第三高的島
馬達加斯加島
非洲第一大島
北美洲第二大島
亞洲第二大島世界人口第四多的島全球地勢第五高的島
北太平洋日本海
世界人口第二多的島亞洲第三大島
歐洲第一大島世界人口第三多的島
北美洲第三大島
埃爾斯米爾島
北美洲第四大島
亞洲第四大島
大洋洲第二大島
世界人口最多的島亞洲第五大島
大洋洲第三大島
菲律賓第一大島世界人口第五多的島
北美洲第五大島
北大西洋加勒比海
加勒比地區第一大島
世界面積最大的火山島歐洲第二大島
菲律賓第二大島
歐洲第三大島
注：統計不包括澳洲及比澳洲大的陸塊。
資料來源： 全球陸塊排名（包括大陸和島嶼）
未上榜的其它世界重要島嶼包括：
# 德文島（世界第一大無人島和加拿大第六大島）
# 亞歷山大一世島（南極洲第一大島和世界第二大無人島）
# 大火地島（南美洲第一大島）
# 馬拉若島（世界面積最大的沖積島和巴西第一大島）
# 臺灣島（全球地勢第四高的島和世界人口第六多的島）
# 巴納納爾島（世界第一大河島和巴西第二大島）
# 夏威夷島（美國第一大島和全球地勢第二高的島）
# 馬尼圖林島（世界第一大湖島）
# 弗雷澤島（世界第一大沙島）
# 利富島（世界面積最大的珊瑚島）
幻方，有時又稱魔術方陣（其簡稱“魔方”呼現一般指立方體的魔術方塊）或縱橫圖，由一組排放在正方形中的整數組成，其每行、每列以及每一條主對角線的和均相等。通常幻方由從到的連續整數組成，其中為正方形的行或列的數目。因此階幻方有行列，并且所填充的數為從到。
幻方可以使用階方陣來表示，方陣的每行、每列以及兩條對角線的和都等于常數，如果填充數為，那么有
《繫辭》云：「河出圖，洛出書，聖人則之。」在宋朝之前，洛書的記述只有文字。
九宮圖實物最早發現於西漢，1977年中國考古學家在安徽阜陽縣雙古堆西漢古墓中發現漢文帝七年（前173年）的太乙九宮占盤，乃是中國漢代幻方的實物。東漢《數術記遺》也有記載。
後來陳摶以降認為河圖洛書的洛書代表九宮圖，為這個數，而行、列以及兩對角線上各自的數之和均為15。
南宋數學家楊輝著《續古摘奇算法》把類似于九宮圖的圖形命名為縱橫圖，書中列舉3、4、5、6、7、8、9、10階幻方。其中所述三階幻方構造法：“九子斜排，上下對易，左右相更，四維挺出，戴九履一，左三右七，二四為肩，六八為足”，比法國數學家Claude Gaspar Bachet提出的方法早三百余年。
根據構造方法的不同，幻方可以分成三類：奇數階幻方、階幻方和階幻方，其中為自然數，階幻方不存在。幻方構造法主要有：連續擺數法、階梯法（樓梯法）、奇偶數分開的菱形法、對稱法、對角線法、比例放大法、斯特雷奇法、LUX法、拉伊爾法（基方、根方合成法）、鑲邊法、相乘法、幻方模式等。
Siamese方法（Kraitchik 1942年，pp. 148-149）是構造奇數階幻方的一種方法，說明如下：
*當右上方格出界的時候，則由另一邊進入。
*當右上方格中已經填有數，則把數填入正下方的方格中。
*按照以上步驟直到填寫完所有個方格。
（由于幻方的對稱性，也可以把右上改為右下、左上以及左下等方位）
以下圖階幻方為例，填寫在（第一行第三列）的位置上；應當填寫在其右上方格即中，由于超出頂邊界，所以從最底行進入，即；填寫在的右上方格中；填寫在的右上方格中，由于超出右邊界，所以從最左列進入，即；填寫在的右上方格中；應該填寫的方格已經被所占據，因此填寫在的正下方格中；按照上面的步驟直到所有數填入。
魔方陣不是唯一的，比如5階魔方陣還可以是：
對于階幻方一般都用對調法，制作起來很容易。將它分割成個區塊，再將其每一個區塊的非主副對角線上的各個數關于中心對調即可。
如4階幻方的排列法：
按如上圖排列好，再將非主副對角線上的各個數關于中心對調，即成下圖：
八階幻方構造如下
以階為例子，先排出階的幻方，如上圖，再將圖中每一個數都加上，有下圖：
在外圍加上一圈格子，把和這些數安排在外圈格子內，但要使相對兩數之和等于。對于這些數是：；。結果如下：
在(4M+2)×(4M+2）個方格的適當格點上，先排出2M+1階的幻方。在前M+1行的格點，全部標上「L」；在第M+1行的中間格點標上「U」，其余格點標上「L」；在第M+2行的中間格點標上「L」，其余格點標上「U」；在餘下的M-1行的格點全部標上「X」。將格點上的數乘以4再減4，再按下面的規則加上1至4其中一個數，填入對應的格上：
4 1    1 4    1 4
L      U      X
2 3    2 3    3 2
68  65  96  93   4   1  32  29  60  57
17L     24L      1L      8L     15L
66  67  94  95   2   3  30  31  58  59
92  89  20  17  28  25  56  53  64  61
23L      5L      7L     14L     16L
90  91  18  19  26  27  54  55  62  63
16  13  24  21  49  52  80  77  88  85
4L      6L     13U     20L     22L
14  15  22  23  50  51  78  79  86  87
37  40  45  48  76  73  81  84  9   12
10U     12U     19L     21U      3U
38  39  46  47  74  75  82  83  10  11
41  44  69  72  97  100  5  8   33  36
11X     18X     25X      2X      9X
43  42  71  70  99  98   7  6   35  34
int a17,b17,m;
void s(int i)
{  /*搜索全部四階幻方，C代碼,運行時間7秒*/
int n=0,j=0;
while(++j
* @author: contribute to wikipedia according GNU
* @description:用於創建奇數階的幻方
public class magic_squre_odd {
static int  matrix;
static int   n;
public static void magic_squre_odd_generate
{ matrix = new intnn;
//所有的數初始化為0
matrix0(n-1)/2 = 1;
int x = 0,y = (n-1)/2;
//count:記住已經插入過的數
for(int count = 2; count=n，則y=y-n，x不變;continue
if(y>=n)
y -= n;
//循環判斷是否該位置已經有數據，直到找到一個空位
//如果有數據，則移到x = x + 2;y = y - 1; continue
if (y=n){x-=n;continue;}
if (y
以下是本算法將n設置為11時得出的11階幻方的構造結果：
68 81 94 107 120 1 14 27 40 53 66
80 93 106 119 11 13 26 39 52 65 67
92 105 118 10 12 25 38 51 64 77 79
104 117 9 22 24 37 50 63 76 78 91
116 8 21 23 36 49 62 75 88 90 103
7 20 33 35 48 61 74 87 89 102 115
19 32 34 47 60 73 86 99 101 114 6
31 44 46 59 72 85 98 100 113 5 18
43 45 58 71 84 97 110 112 4 17 30
55 57 70 83 96 109 111 3 16 29 42
56 69 82 95 108 121 2 15 28 41 54
* @description:用於創建4階的幻方
public class magic_square_4m {
static void magic_squre_4m_generate
//初始化matrix
matrix = new intnn;
//將matrix裡的位置用數順序排列
int ini = 0;
for(int i = 0; i
以下是本算法輸出的結果：
對調之前的樣子：
1_2_3_4_
5_6_7_8_
9_10_11_12_
13_14_15_16_
對調之後的樣子：
1_15_14_4_
12_6_7_9_
8_10_11_5_
13_3_2_16_
知名華人數學家陳省身曾在數學演講中說幻方只是一個奇跡，它在數學中沒有引起更普遍深刻的影響，不屬于“好的數學”。
對幻方的學習和研究一直局限于趣味數學本身，更接近數字游戲或文字游戲，缺乏與主流數學的聯系(和璇璣圖在中國詩歌中的地位有一些相似)。數學和物理中也有具有更多學術價值的特殊數字方陣，如推動了試驗設計研究的拉丁方陣和已有應用的阿達瑪矩陣，還有在量子力學中有重要價值的泡利矩陣及其推廣版本蓋爾曼矩陣。魔術方塊則可以與群論建立聯系(見魔方群)，可以作為抽象代數的入門教具，也是的研究案例之一，并非單純的幾何玩具。高性能的計算機誕生后，幻方、幻星、素數環(prime ring problem)等很多這類需要滿足特殊規律的填數問題，只要所需的數字規模不大，都可以考慮通過深度優先搜索算法暴力求解和枚舉。
* 德國畫家與雕刻家阿爾布雷希特·丟勒曾在一幅名作《憂郁》(Melencolia I)的角落中畫下一個幻方。這個著名的幻方圖也被知名工程數學軟件MATLAB加入自己的幫助文檔中。
* Frenicle 標準型式
*  幻方介紹及其建造方法（英語）
*  一個小學老師對幻方的研究
Smalltalk是一種動態類型、反射式的面向對象編程語言。Smalltalk由艾倫·凱、Dan Ingalls、Ted Kaehler、Adele Goldberg等于1970年代初在施樂帕羅奧多研究中心開始開發。
Smalltalk對其它眾多的程序設計語言的產生起到了極大的推動作用，特別是具有元類的Objective-C、CLOS、Python和Ruby等。1990年代涌現的許多軟件開發思想得利于Smalltalk，例如設計模式、敏捷編程和代碼重構等。
Smalltalk和許多程序設計語言不同，它不僅僅是一門語言。下面從幾個不同的角度來解釋Smalltalk。
*一種面向對象的程序設計語言：它是一種面向對象的語言，包含語言的語法和語義。一些編譯器可以透過Smalltalk源程序產生可執行文件。這些編譯器通常產生一種能在虛擬機上運行的二進制代碼。Smalltalk語言本身非常精煉。
*一種程序設計環境：這里指的是一種提供許多-{zh-hans:對象; zh-hant:物件;}-的系統，而不是某種特殊的開發環境。和許多語言不同（包括C++），Smalltalk附帶有一個巨大的、相當標準的類庫。這些類使得開發Smalltalk程序的效率非常高。在其它語言（例如Ada、C和Pascal）中，通常被作為語言的一部分的功能（例如條件判斷，循環等），在Smalltalk由特定的類提供。
*一個應用開發環境（ADE）：由于Smalltalk的歷史原因，它具有一個非常優秀的高度集成、開放的應用開發環境。由于開發環境中的瀏覽器、監視器以及調試器，都由同樣的源程序衍生出來的，不同的版本之間也具有相當好的兼容性。此外，這些工具的源程序都可以在ADE直接存取。
Smalltalk-76圖形用戶界面，截圖中有類瀏覽器。
最早的Smalltalk原型由艾倫·凱于1970年代初提出。類（來自Simula 67）、（來自LOGO）以及圖形用戶界面（來自Sketchpad）等概念的有機組合，構成了Smalltalk的最初的藍圖。
在1971年到1975年之間，艾倫·凱在Xerox PARC的小組，設計并實現了第一個真正的Smalltalk語言系統，編譯器由Dan Ingalls負責主要實作。這個系統被稱為Smalltalk-71與Smalltalk-72，具有以下幾個技術創新：
*語言完全基于消息交換和Simula 67的類的概念。
*語言沒有固定的語法，語法分析由類本身完成。
開發環境的革新相當迅速。雖然當時的位圖顯示器十分昂貴，但是艾倫·凱卻說服了PARC，讓他使用這些位圖顯示器，這使得艾倫·凱和他的小組，能夠實現不同大小和字體的文字，使用多窗口環境，以及一些對圖像處理的高端支持。Smalltalk-72影響了演員模型的發展，它的語法和執行模型，與現代的Smalltalk變體有著顯著的差異。
在1975到1976年間，艾倫·凱小組認識到應當對執行效率和規模進行優化。于是他們在許多重要方面重新設計了Smalltalk系統，被稱為Smalltalk-76，它在語言上：
*確定了語言的語法，這使得編譯器能夠產生高效、可執行、精煉的二進制代碼。
* 拉里·泰斯勒設計了瀏覽器，這極大地提高了Smalltalk程序員的編程效率。
前述的所有Smalltalk系統，都是在特殊的硬件上實現的，直到1977年至1978年，Bruce Horn和Ted Kaehler把Smalltalk-76移植到上，它是由Intel 8086處理器和自定顯示器所組成的硬件環境。雖然這種硬件環境只生產了10臺，但是它證明了在通常的處理器上實現Smalltalk的可能性。
在1979至1980年，部分受NoteTaker項目的影響，Smalltalk小組的注意力轉移到Smalltalk的銷售可行性上。小組設計并實現了新一代的Smalltalk系統，這次修改的目標著重于在標準硬件上的移植性等方面，被稱為Smalltalk-80，它包括：
*采取ASCII碼字符集，摒棄了原先在Smalltalk-72和Smalltalk-76中使用的特殊字符。
*取消了原始方法直接存取內存的能力。取而代之的是引入一系列的原始方法提供相應的功能。
*引入MVC（模型-視圖-控制器）系統以方便交互式應用軟件的開發。
Smalltalk-80是在PARC之外能獲得到的第一個語言變體，最初作為Smalltalk-80版本1，給與了少數公司（惠普、蘋果公司、泰克和DEC）和大學（UC Berkeley），用于同行評審和在它們自己的平臺上實現。后來在1983年普遍可獲得的實現，叫做Smalltalk-80版本2，發行為虛擬機規定和映像（具有對象定義的獨立于平臺的文件）。
1988年Xerox PARC為了將Smalltalk推向市場而成立了分拆公司ParcPlace Systems。ANSI Smalltalk自從1998年來是標準的語言參考。
兩個當前流行的Smalltalk實現變體，是這些最初Smalltalk-80映像的后代。Squeak是開源實現經由Apple Smalltalk，派生自Smalltalk-80版本1。經由Smalltalk-80 2.5和ObjectWorks（二者都是ParcPlace Systems的產品），派生自Smalltalk-80版本2。
Smalltalk-80例子代碼在Squeak下的類層級和與之并行的元類層級的示意圖。其中的r是ProtoObject，c是Class，mc是Metaclass。藍色連接表示實例聯系，綠色連接表示繼承聯系。
如同其他面向對象語言，Smalltalk-80（而非Smalltalk-72）的中心概念是“對象” 。一個對象總是一個“類”的一個“”。類是描述它們的實例的屬性和行為的“藍圖”。例如，一個GUI窗口類可以聲明窗口有屬性比如標簽、位置和窗口是否可見。類還可以聲明實例們支持操作比如打開、關閉、移動和隱藏。每個特定窗口對象對這些屬性都有自己的值，它們每個都能進行它的類定義的操作。
Smalltalk對象確切的可以做三件事：
# 持有狀態（引用到其他對象）。
# 接收消息自本身或其他對象。
# 在處理一個消息的過程中，發送消息至本身或其他對象。
一個對象持有的狀態總是私有于這個對象。其他對象只能通過發動請求（消息）至這個對象，來讓它做出查詢或變更這個狀態。任何消息可以發送給任何對象：當接收到一個消息的時候，接收者確定這個消息是否合適。Alan Kay評論說，盡管關注于對象，消息才是Smalltalk中最重要的概念：“最大的想法是消息傳遞，它是Smalltalk/Squeak核心的全部意義所在（它是我們在Xerox PARC階段從未真正完成的某種東西）。”
不同于多數其他語言，Smalltalk對象可以在系統運行的同時進行修改。現場編碼和飛速應用補丁，是Smalltalk的主導編程方法論，并且是它高效的主要原因。
Smalltalk是“純”面向對象編程語言，這意味著，不像C++和Java，在作為對象的值和作為基本類型的值之間沒有區別。在Smalltalk中，基本值比如整數、布爾值和字符，在它們也是相應類的實例，和發送消息來調用它們上的運算的意義上，也是對象。編程者可以改變或擴展（通過子類）實現基本值的類，使得新行為可以定義到它們的實例，例如要實現一個的控制結構，甚至使得它們現存行為改變。這個事實被總結成常聽到的一句短語：“在Smalltalk中，所有東西都是對象”，它可以更精確的表達為：“所有的值都是對象”，因為變量不是。
因為所有的值都是對象，類也是對象。每個類都是這個類的元類的一個實例。元類都是元類類Metaclass的實例，它也是對象，并且是叫做Metaclass class的元類元類的實例。代碼塊是Smalltalk表達匿名函數的方法，也是對象。
Smalltalk-80語法是相當極簡主義的，只基于了一小把的聲明和保留字。事實上，Smalltalk中只保留了六個“關鍵字”：true、false、nil、self、super和thisContext。它們的準確術語是“偽變量”，是服從變量標識符規則的標識符，但指示了編程者所不能變更的綁定。true、false和nil偽變量是單例實例。self和super，在響應一個消息而激活的方法中，指稱這個消息的接收者；但是發送給super的消息，在這個方法的定義類的超類中查找方法，而非這個接收者的類中，這允許子類中的方法調用在超類中的同名方法。thisContext指稱當前的活躍記錄。
內建的語言構造只有消息發送、賦值、方法返回和某些對象的文字語法。從它最初作為給所有年齡兒童的語言開始，標準的Smalltalk語法以更像英語，而非主流編碼語言的方式使用標點符號。語言余下部份，包括用于條件求值和迭代的控制結構，都由標準Smalltalk類庫實現在內建構造之上。（出于性能上的原因，實現可以識別并特殊處理某些這種消息；但是，這只是優化而非硬性規定入語言語法的。）
諺語“Smalltalk語法適合一張明信片”，所提及的是的一個代碼片段，展示了一個方法的所有基本標準語法元素：
exampleWithNumber: x
true & false not & (nil isNil) ifFalse: self halt.
y := self size + super size.
#($a #a 'a' 1 1.0)
Transcript show: (each class name);
show: ' '.
下列例子詮釋了最常用的對象，可以在Smalltalk-80方法中被寫為值。
數，下列是某些可能例子：
2r10010010
16rA000
最后兩個項目分別是二進制和十六進制數。在r前的數是底數或基數。基數不必須是二的冪；例如36rSMALLTALK是一個有效的數值，等價于十進制的80738163270632。
字符書寫時帶有前導的美元符：
字符串是包圍在單引號內的字符序列：
要在一個字符串中包括一個引號，使用另一個引號來轉義：
'I said, ''Hello, world!'' to them.'
雙引號不需要轉義，因為單引號界定字符串：
'I said, "Hello, world!" to them.'
兩個相等的字符串（字符串相等，如果它們包含完全相同的字符）可以是駐留在內存不同位置中的不同對象。除了字符串，Smalltalk有叫做（Symbol）的字符序列對象的類。符號保證是唯一的，沒有是不同對象的兩個相等的符號。因此，符號非常易于比較并經常用于語言制品，比如消息選擇子（見后）。
符號被寫為#跟隨著。比如：
#'foo'
如果一個序列不好括空白或標點字符，還可以寫為：
#(1 2 3 4)
定義了四個整數的一個數組。
很多實現支持下列字節數組（ByteArray）的文字語法：
#1 2 3 4
定義了四個整數的字節數組。
最后卻重要的是，塊（匿名函數文字）:
... 一些smalltalk代碼 ...
塊在下文中進一步詳細解釋。
很多Smalltalk方言為其他對象實現了額外的語法，但是上述的是所有方言都本質上支持的。
在各種Smalltalk中共同使用的有兩種變量：實例變量和臨時變量。其他變量和有關術語依賴于特定實現，例如有類共享變量和名字空間共享變量，而Squeak和很多其他實現，有類變量、池變量和全局變量。
在Smalltalk中臨時變量聲明是在方法（見后）內聲明的變量。它們聲明在方法的頂部，作為由豎杠包圍的空格分隔的名字。例如：
聲明一個臨時變量名叫index，可以包含初始值nil。
多個變量可以在一組豎杠內聲明：
聲明了兩個變量：index和vowels。所有變量都要初始化。字符串的索引變量，初始化為null字符或初始為0的ByteArray，此外的所有變量初始化為nil。
按命名約定，實例變量、臨時變量、方法或塊的參數，應當以小寫字母開頭，指示它們具有私有作用域，它們合稱為局部變量。而全局變量、類變量、池字典、類名字，應當以大寫字母開頭，它們合稱為共享變量。
變量通過:=語法來指定一個值。比如：
vowels := 'aeiou'
指定字符串'aeiou'至前面聲明的vowels變量。這個字符串是個對象（在單引號之間的字符序列是文字字符串的語法），在編譯時間由編譯器創建。
在最初的Parc Place映像中，現在下劃線（_）的字形，在那時是左向箭頭（←）字形（就像1963年版本ASCII代碼中那樣）。Smalltalk最初接受左向箭頭，作為唯一的賦值算符。一些現代代碼仍然包含充當賦值的下劃線，會讓人想起這種最初的用法。多數現代的Smalltalk實現接受要么下劃線，要么冒號等號語法。
消息是Smalltalk中最基礎的語言構造。所有控制結構都實現為消息發送。Smalltalk缺省的采用動態分派和單一分派策略（相對于其他一些面向對象語言使用的多分派）。
下列例子是發送消息factorial至數值42：
42 factorial
在這種情況下，42叫做這個消息的“接收者”，而factorial是消息的選擇子。接收者通過返回一個值來相應這個消息（這個情形中是42的階乘）。同其他事物一樣，消息的結果可以賦值給一個變量：
aRatherBigNumber := 42 factorial
上面的factorial是“一元”消息，因為只涉及了一個對象，即接收者。消息可以承載額外的對象作為實際參數，比如：
2 raisedTo: 4
在這個表達式中，涉及了兩個變量：2作為接收者而4作為消息的實際參數。消息結果，或用Smalltalk的說法，回答被認定為16。這種消息叫做“關鍵字”消息。消息可以有多個實際參數，使用如下語法:
'hello world' indexOf: $o startingAt: 6
它的回答是在接收者字符串中字符o的索引，從索引6開始查找。這個消息的選擇子是indexOf:startingAt:，構成自兩個部份或關鍵字。
這種關鍵字和實際參數的交織意圖改進代碼的可讀性，因為實際參數由前導于它們的關鍵字來解釋。例如，要建立一個矩形的表達式使用C++或Java類語法可以寫為：
new Rectangle(100, 200);
不清楚這些實際參數分別是什么。與之相反，在Smalltalk中，這個代碼可以寫為：
Rectangle width: 100 height: 200
這個情況下接收者是Rectangle類，回答是這個類的具有指定寬度和高度的一個實例。
最后，多數特殊（非字母）字符可以被用作所謂的“二元消息”。這些允許了數學和邏輯算符以傳統形式書寫：
它發送消息+給接收者3，具有4作為實際參數傳遞（回答將是7）。類似的：
將消息>發送給3具有實際參數4（回答將是false）。
注意，Smalltalk-80語言自身不包含著這些算符的含義。上述的結果都只是這些消息的接收者（這里是數值實例）為了響應消息+和>而定義并返回的。
這個機制的副作用是運算符重載。消息>可以被其他對象所理解，允許使用形如a > b的表達式來比較它們。
一個表達式可以包括多次消息發送。在這個情況下，表達式依據一個簡單的優先級次序來分析。一元消息有最高的優先級，隨后是二元消息，最后是關鍵字消息。例如：
3 factorial + 4 factorial between: 10 and: 100
被求值如下：
#3接收消息factorial并回答6
#4接收消息factorial并回答24
#6接收消息+具有24作為實際參數并回答30
#30接收消息between:and:具有10和100作為實際參數并回答true
最后的消息發送的回答是整個表達式的結果。
在需要的時候使用圓括號可以改變求值的次序。例如：
(3 factorial + 4) factorial between: 10 and: 100
將改變表達式含義，首先計算3 factorial + 4產生10。接著10接收第二個factorial消息，產生3628800。3628800接著接收between:and:，回答false。
注意因為二元消息的含義不是硬性規定入Smalltalk-80語法的，它們全部都被認為有相等的優先級并簡單的從左至右來求值。因此，使用二元消息的Smalltalk表達式的含義可能不同于傳統釋義：
3 + 4 * 5
被求值為(3 + 4) * 5，產生35。要得到預期回答23，必須使用圓括號來顯式的定義運算次序：
3 + (4 * 5)
一元消息可以一個接一個的寫成：
3 factorial factorial log
它發送factorial到3，接著factorial到這個結果（6），接著log到這個結果（720），產生結果2.85733。
在下列（假想）例子中書寫了一序列的表達式，每個都用點號分隔。這個例子首先建立類Window的一個新實例，存儲它在一個變量中，接著發送兩個消息給它。
window := Window new.
window label: 'Hello'.
如果向上述例子這樣一序列消息都發送給相同的接收者，它們也可以寫為，具有用分號分隔的單獨消息：
Window new
label: 'Hello';
這種將前面例子的重新為一個單一表達式，避免了對將新窗口存儲在臨時變量的需要。依據平常的優先級規則，一元消息new首先發送，接著label:和open被發送到new的回答。
可以使用yourself消息來返回一個級聯消息的接收者。
代碼塊（匿名函數）可以被表達一個文字值（它是一個對象，因為所有值都是對象）。這是通過方括號達成的：
這里的:params是代碼可以接受的形式參數的列表。這意味著Smalltalk代碼：
可以理解為：
或用λ演算表達為：
x + 1 value: 3
可以被求值為：
結果的塊對象可以形成一個閉包：它可以在任何時間訪問它外圍的詞法作用域內的變量。塊是頭等對象。
塊可以通過發送給它們value消息來執行。塊有一個參數用value:，有2個參數使用value:value:，以此類推直到4個參數，對多于4個參數使用valueWithArguments:并將參數作為數組傳遞。
塊返回（常稱為回答）其主體的最后一個表達式的值，除非有一個由顯式的^指示的返回，這時返回這個返回表達式的值。
塊的文字表示是一種創新，它一方面允許特定代碼有更重大的可讀性；它允許涉及迭代的算法一更清晰和簡潔的方式編碼。典型的在某些語言中使用循環寫成的代碼，可以在Smalltalk中使用塊簡潔的書寫，有時在單一一行之內。更重要的方面是，塊允許控制結構使用消息來表達并具有多態，因為塊推延了計算并可以使用多態來選擇替代者。所以在Smalltalk中if…then…else被書寫和實現為：
expr ifTrue:  expr為真時求值的語句  ifFalse:  expr為假時求值的語句
再比如選擇：
positiveAmounts := allAmounts select:  anAmount isPositive
注意這與函數式編程有關，這里的計算模式被抽象成了高階函數。例如，在一個搜集上的消息select:，等價于在一個適當的函子上的高階函數filter。
在Smalltalk中控制結構沒有特殊的語法。它們轉而實現為發送到對象上的消息。例如，條件執行被實現為，發送消息ifTrue:到一個布爾對象，傳遞一個代碼塊作為實際參數，它被執行當且僅當布爾接收者為真。有下列代碼演示：
result := a > b
ifTrue:  'greater'
ifFalse:  'less or equal'
塊也被用來實現，用戶定義控制結構、枚舉器、訪問器、異常處理、可插拔的行為和很多其他模式。例如：
aString := 'This is a string'.
vowels := aString select:  aCharacter isVowel.
在最后一行，向字符串發送了消息select:，具有一個代碼塊文字作為實際參數。作為給select:消息的實際參數的代碼塊，表示一個測試，代碼塊文字將被用作一個謂詞函數，它回答true，當且僅當這個字符串的一個元素，應當被包括在滿足這個測試的字符搜集之中。
字符串對象，通過迭代經過它的成員（即向自身發送消息do:），來響應select:消息，將選擇塊（select:的實際參數aBlock）嵌入在迭代塊的代碼之中，把它自身包含的每個字符，都作為實際參數傳給迭代塊，而各做一次求值。在求值迭代塊的時候（被發送了消息value:），將迭代元素傳給選擇塊（aBlock引用的塊文字 aCharacter isVowel），它回答一個布爾值；接著向它發送消息ifTrue:，如果這個布爾值是對象true, 這個字符被增加到要返回的字符串。
因為select:方法被定義在抽象類Collection中，并且搜集類的類方法中，實例創建方法有with:、with:with:一直到with:with:with:with:with:with:方法，它可以如下這樣使用：
rectangles := OrderedCollection
with: (Rectangle left: 0 right: 10 top: 100 bottom: 200)
with: (Rectangle left: 10 right: 10 top: 110 bottom: 210).
aPoint := Point x: 20 y: 20.
collisions := rectangles select:  aRect containsPoint: aPoint.
異常處理機制Exception類，及其子類比如Error，使用塊作為處理器（類似于CLOS風格異常處理）：
一些運算. Error signal: 'an error occurred'
on: Error do:
處理器代碼. ex return
異常處理器的ex實際參數提供到掛起運算的狀態的訪問（棧幀、行號、接收者和實際參數等），并且還被用來控制計算怎樣繼續（通過發送ex proceed、ex reject、ex restart或ex return之一）。
類通過實例變量定義它的實例的結構，通過方法定義它的實例的行為。每個方法都有叫做選擇子的一個名字，它在這個類之內是唯一性的。下面是個平凡的類定義：
Object subclass: #MessagePublisher
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Smalltalk Examples'
多數這種定義經常由編程環境來填充。這里的類定義是給Object類的一個消息，用來建立它叫做MessagePublisher的一個子類。
在Smalltalk中類是頭等對象，它可以就像任何其他對象一樣接收消息，并可以在執行時間動態的創建。subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:方法，定義在Class類中。
在Smalltalk中，是這個實例私有的。在需要于這個類的所有實例和這個類本身之間，共享某個數據的時候，要使用。池變量是在可以沒有繼承關聯的多個類之間共享的變量。池變量最初存儲在池字典中，現在它們應當被定義為專門的類（SharedPool的子類）的類變量。
category指示有關的類的“群組”，在現代Smalltalk版本如Pharo中被替代為package，包系統是利用簡單的命名約定，組織Squeak和Pharo源代碼的簡單而輕量級的方式。
當一個對象接收到一個消息的時候，調用匹配這個消息名字的一個方法。所有方法都是公開的和虛擬的（也就是動態查找的）。方法被分組入指示它們意圖的協議（protocol）之中。
為一個類增加方法涉及到Behavior類，其中的compile:方法，編譯一個方法源代碼并返回一個CompiledMethod類的實例；addSelector:withMethod:方法，將給定的一個編譯過的方法增加到方法字典中。在Behavior類的子類ClassDescription類中，compile:classified:方法，編譯一個方法的源代碼，并為這個方法指派上給定的歸類（對于方法稱為協議）。
下列代碼定義一個方法publish，并且這個定義將在這個對象收到publish消息的時候發生。
Transcript show: 'Hello World!'
下列方法演示了接收多個實際參數并返回一個值：
quadMultiply: i1 and: i2
"這個方法將給定的兩個數相乘并對結果乘以4."
mul := i1 * i2.
^mul * 4
這個方法的名字是#quadMultiply:and:。返回值通過^算符來指定。
對象負責在運行時間動態的確定，執行哪個方法來響應一個消息，盡管在很多語言中，這可能是（有時或總是）在編譯時間靜態確定的。
執行任何前導了^（脫字符或↑）的表達式，都導致這個方法于這一點退出，并返回這個表達式的值。終止而沒有顯式返回某個表達式的一個方法，將隱含的返回自身。
為一個類新建一個實例，要用到在Behavior類中定義的new方法。下列例子代碼：
MessagePublisher new
建立（并返回）MessagePublisher類的一個新實例。這典型的賦值到一個變量：
publisher := MessagePublisher new
但是也有可能發送一個消息到一個臨時的、匿名對象：
MessagePublisher new publish
Hello world程序，實質上被所有計算機語言的課本用作要學習的第一個程序，它展示了這個語言的最基本語法和環境。對于Smalltalk，這個程序可極其簡單的書寫。下列代碼中，消息show:被發送給對象Transcript，具有字符串文字'Hello, world!'作為它的實際參數。調用show:方法，導致它的實際參數（字符串文字'Hello, world!'），顯示在副本（終端）窗口：
Transcript show: 'Hello, world!'.
注意需要打開Transcript窗口，來看到這個例子的結果。
反射是一個計算機科學術語，適用于有能力檢查它們自己的結構的軟件程序，例如檢查它們的分析樹或輸入和輸出參數的數據類型。反射是動態、交互式語言比如Smalltalk和Lisp的一個特征。具有反射的交互式程序（要么解釋的要么編譯的）維護所有內存內對象的狀態，包括代碼對象自身，這是在解析/編譯期間生成的，并且是在編程上可訪問和修改的。
反射也是Smalltalk這種有元模型的語言的一個特征。元模型是描述這個語言的模型，開發者可以使用元模型來做事，比如游歷、檢查和修改一個對象的分析樹，或找到特定種類的結構的所有實例（例如在元模型中Method類的所有實例）。
Smalltalk-80是完全的反射式系統，用Smalltalk-80語言實現。Smalltalk-80提供了結構性和計算性反射二者。Smalltalk是結構性反射式系統，其結構是由Smalltalk-80對象定義的。定義這個系統的類和方法也是對象，并且完全是它們所有助力定義的系統的一部份。Smalltalk編譯器將文本源代碼編譯成方法對象，典型是的CompiledMethod的實例。通過把它們存儲入一個類的方法字典，而增加到這個類。類層級的定義類的那部份，可以向系統增加新類。這個系統是通過運行建立或定義類和方法的Smalltalk-80代碼來擴展的。Smalltalk-80系統是個現場（living）系統，承載著在運行時間擴展自身的能力。
因為類是對象，可以向它們提問比如：“你實現了哪些方法？”或“你定義了什么字段/槽/實例變量？”。所以通過能應用于系統中的任何對象的普通的代碼，對象可以輕易的檢查、復制、（去）序列化，諸如此類。
Smalltalk-80還提供計算性反射，有能力觀察系統的計算狀態。在派生自最初Smalltalk-80的語言中，一個方法的當前活動（activation），可以作為通過偽變量命名的一個對象來訪問，這個偽變量是作為六個保留字之一的thisContext。通過發送消息至thisContext，一個方法活動可以提問比如：“誰給你發送了這個消息？”。這些設施使得有可能實現協程，或類似Prolog的回溯，而不需要修改虛擬機。異常系統也是使用這個設施實現的。這個設施更有趣的用法之一，是在 web框架之中，它通過為每個編輯的頁面存儲續體，并在它們之間切換來導航一個web站點，緩解了編程者處理Web瀏覽器的返回按鈕的復雜性。使用Seaside編程web服務器，可以使用更常規的編程風格來完成。
Smalltalk如何使用反射的一個例子，是處理錯誤的機制。當一個對象被發送了一個它沒有實現的消息的時候，虛擬機發送給這個對象doesNotUnderstand:消息，具有這個消息的實化作為實際參數。這個消息（它是另一個對象，是Message的實例），包含這個消息的選擇子和它的實際參數的一個Array。在交互式Smalltalk系統中，doesNotUnderstand:的缺省實現，是打開一個錯誤窗口（一個Notifier）向用戶報告錯誤。通過它和反射設施，用戶可以檢查錯誤在其中發生的上下文，重新定義犯錯的代碼，并繼續，這一切都在這個系統之中，使用Smalltalk-80的反射設施。
通過建立只理解（實現）doesNotUnderstand:的一個類，可以建立一個實例，經由它的doesNotUnderstand:方法能攔截發送給它的任何消息。這種實例可以叫做透明代理。可以使用這種代理來實現很多設施，比如分布式Smalltalk，這里的消息在多個Smalltalk系統之間交換，和數據庫接口，這里的對象透明的從數據庫中排除錯誤，還有promise等。分布式Smalltalk的設計影響了如CORBA這樣的系統。
多數流行的編程系統，將靜態的程序代碼（以類定義、函數或過程的形式），分離于動態的或運行時間的程序狀態（比如對象或其他形式的程序數據）。它們在程序啟動的時候裝載程序代碼，而任何先前的程序狀態必須從配置文件或其他數據源顯式的重新建立。程序（和編程者）未顯式保存的設置，在每次重啟時都必須再次設立。傳統的程序在每次程序保存一個文件、退出和重載的時候，還失去很多有用的文檔信息。這會失去細節比如回退歷史或光標位置。基于映像的系統不會因為計算機關閉或OS更新，而強制失去所有這些東西。
但是很多Smalltalk系統，不區分程序數據（對象）和代碼（類）。事實上，類也是對象。因此，多數Smalltalk系統，存儲整個程序狀態（包括類和非類對象二者）在一個文件之中。這個映像可以接著由Smalltalk虛擬機裝載，將類Smalltalk系統恢復成先前的狀態。這是受到了FLEX的啟發，它是Alan Kay創建的語言并描述于他的科學碩士畢業論文中。
Smalltalk映像類似于（可重啟的）核心轉儲，并可以提供與核心轉儲相同的功能，比如延遲或遠程調試，具有對出錯時刻的程序狀態的完全訪問。將應用代碼建模為某種形式的數據的其他語言比如Lisp，也經常使用基于映像的持久存儲。這種持久存儲的方法，對于快速開發是強力的，因為所有開發信息（比如程序的解析樹），都保存而利用于調試。但是它作為一個真實的持久存儲機制，也有一個嚴重的缺點。首先，開發者可能經常想要隱藏實現細節，并使它們在運行時間不可獲得。出于法律和維護的原因，允許任何人在運行時間修改程序，對于在運行時間環境不暴露源代碼的編譯后的系統，不可避免的介入復雜性和潛在的錯誤。其次，盡管持久存儲機制易于使用，它缺乏多數多用戶系統需要的真正持久存儲能力。最明顯的是進行同多個用戶并行訪問相同的數據庫的事務。
OpenSmaltalk VM（OS VM）是Smalltalk運行時環境的著名實現，很多現代Smalltalk VM基于或派生自它。OS VM自身是從一組Smalltalk源代碼文件（它們叫做VMMaker），轉譯成原生C語言源代碼（通過使用叫做Slang的轉譯器），它依次再針對特定平臺和硬件架構來編譯，實際上確使Smalltalk映像的跨平臺執行。源代碼可以在GitHub上獲得并在MIT許可證下發布。OS VM的知名派生者有：
*Squeak，一個開源Smalltalk。
* Pharo Smalltalk，一個開源跨平臺語言。
*Croquet VM，Croquet計劃的一個與Squeak有關的Smalltalk VM。
*Cuis-Smalltalkf，一個開源的小型、簡潔和適用的Smalltalk。
*Haver-Smalltalk，Cuis的具有完整模塊系統的擴展。
*PharoJS，一個開源的從Smalltalk到Javascript的轉譯器，擴展了Pharo環境。
*SqueakJS，用于web的一個OpenSmalltalk兼容的VM，還能運行老舊的Squeak應用如或Scratch。
*，通過轉譯運行在JavaScript上。
* Smalltalk，包含下列產品：、ObjectStudio和WebVelocity。
*，一個家族，包括Smalltalk/V。
*Smalltalk/X，由Claus Gittinger開發。
*，在2009年寫的只用于macOS的實現。
*GNU Smalltalk，Smalltalk的無頭（缺少GUI）實現。
*，GNUstep腳本框架，它在Objective-C運行時上使用Smalltalk語言。
*VAST平臺（VA Smalltalk），Instantiations公司開發。
*，Object Arts出品。
*，Object Connect出品的Windows平臺Smalltalk。
*，運行于Palm Pilot。
*SmallJ，一個開源的基于Java的Smalltalk，派生自SmallWorld。
*TruffleSqueak，用于GraalVM的一個Squeak/Smalltalk VM和Polyglot編程環境（更多基于GraalVM的Smalltalk實現可見于官網)
* Free Online Smalltalk Books
* Smalltalk Zoo
*Smalltalk-80 Bluebook implementations in C++: by  dbanay and  rochus-keller on github
日本歷史、日本史是指日本或日本列島內的歷史。
根據傳說，日本於公元前660年2月11日建國。日本在公元4世紀出現首個統一政權倭國，其後於大化革新後確立天皇體制，引入唐朝文化，學習漢字與建立東亞的習俗與價值觀，對日本造成了深遠的影響。12世紀末，日本開始六百多年的幕府時代，期間曾經歷一個半世紀的戰國時代，德川家康在關原之戰打敗其他大名後，於17世紀初建立江戶幕府，並從第二代將軍起實行鎖國政策二百多年。
1854年黑船事件後，日本國內有志之士提出「尊王攘夷」等號召，江戶幕府在輿論壓力下，被迫將政權還給明治天皇，史稱「大政奉還」。1868年，明治天皇經由戊辰戰爭勝利施行明治維新整頓內政，富國強兵的政策主導近代日本的開端。1920年代一戰後短暫經歷大正民主時期，到1930年代落入軍部控制，實行軍國主義，但於1945年被盟國擊敗後宣布投降。日本在恢復主權後經濟高速增長，躋身先進國家之列；1990年代，泡沫經濟破滅；2012年安倍經濟學重振日本經濟。
關於日本列島上被確認過的人類歷史，大約可追溯到愛知縣出土10萬年前的古蒙古人種「牛川人」化石乃至3萬年前，及在琉球出土的1萬8千年前古蒙古人種「港川人」。約3萬4千年前，從華北地區傳來被稱呼為小刀型石器的石器，在列島全區被廣泛的使用，但在約2萬年前由西伯利亞過來新的稱呼為細石刀片的石器主要在東日本傳開。一段時間裡，東日本細石刀片文化與西日本的小刀型石器文化並存，不久細石刀片也在西日本傳開，約1萬5千年前左右，小刀型石器的蹤影急速消失。
約1萬2千年前，因末次冰期結束而開始急劇溫暖化，使得人們的文化與生活產生極大變化，除了琉球群島以外，全島進入了繩文時代。
約1萬2千年前開始被稱為繩文時代。分為草創期、早期、前期、中期、後期、晩期這6期。
這個時候的人們製作繩文式陶器、早期以後邁向定居，大部分住在半地穴式房屋。使用弓箭狩獵、貝塚漁撈、採集植物等經營生活，使用打製石器、磨製石器、骨角器等等。而此時人們也進行栽培，後期到晩期間種植稻。
西元前3世紀左右至西元3世紀前後的期間被稱為彌生時代。時代劃分的名稱，是由這個時期被視為代表特徵性的彌生式陶器而來。1884年，在東京都文京區彌生町，這種陶器首次被發現，故名。
在這一時期，以種植稻米為中心成立的農耕社會，由北部九州至日本列島各地快速蔓延開。彌生時代，根據陶器的形式，可分為前、中、后三期。前期從九州擴展到近畿一帶（東日本尚處于繩紋時代末期），中期波及到東北地方。扁平片刃石斧等磨制石器、青銅器和前期北九州的支石墓等類似于大陸文化。彌生文化從一開始就具有先進的農耕技術，通常認為它受到來自朝鮮、吳越與中原漢人的移民的影響。中期以后灌溉技術進步，農業生產漸趨穩定。后期，鐵制農具普及，石器基本消失。銅鐸、銅劍、銅矛、銅戈等青銅祭器發達，出現制鐵和制鹽等社會分工。通過交易和戰爭等，形成統一的政治性的地區集團。此時北海道尚不能種植水稻，仍處在繩紋文化階段。
彌生時代中期，日本諸國中的奴國國王曾向漢朝朝貢，並為漢光武帝賜以金印。
顧名思義，古墳時代就是盛行修筑古墳的時代。前方后圓的大小古墳，以奈良縣為中心，散布在北起福島縣、南至熊本縣和大分縣的廣大地區。5世紀又從宮城縣擴展到鹿兒島縣。古墳只埋葬部族首長，由部族成員共同修筑。
3世紀后期，在近畿地方，倭國逐漸興起，經過長期的擴張，并且逐漸征服日本中部大部分地方，其首領最初稱為“大王”，后來改稱“天皇”。
4世紀，中國歷史文獻完全沒有對日本的記錄，史學家稱呼這段時期為「空白的四世紀」。
5世紀，原始的所有制關系開始崩潰，大家族發展為生產單位和動產所有單位，原有部族內部發生利害矛盾。從五世紀中期起，畿內強大部族間的內戰激化。有些強大的部族與出現倭五王的百舌鳥古墳群和古市古墳群有關。到六世紀，繼體天皇系統的新興勢力統一畿內東部各部族，確立大王的地位。以筑紫君磐井為首的北九州勢力，曾希望獲得與此類似的地位而進行反抗，但在其獲得這種地位之前，這種反抗即已潰敗。在內戰過程中，各地首長授予部族成員以修造小古墳的權利，以此增強戰斗力。因此，原來只是首長墓的古墳，到5世紀后半葉便向小古墳群（群集墳）演變。這種傾向到6世紀進一步發展。日本全國各地修造的古墳超過十萬個。古墳的主體部分也采用橫穴式石室。石室內埋葬數代家族成員，并以武器為中心，陪葬有須惠器、土師器等死后生活的必需品。
但大量小古墳群的出現，古墳作為統治者的建筑物的性質逐漸減弱。佛教在這一時期通過百濟傳來，朝廷中兩大勢力之一的蘇我氏支持佛教，另一勢力物部氏支持傳統的神道教，雙方發生激烈沖突。587年，衣折戰役中，蘇我馬子擊敗物部守屋，取得對朝廷的控制權。因此，從6世紀末到7世紀初，倭王權在畿內盡力建造寺院，同時限制修筑小古墳群，大王和強大的豪族則葬于源於中國皇帝陵墓而建的大型方墳。這樣，古墳時代臨近結束，而所謂大化《薄葬令》更進一步助長這種傾向，留下來的只不過是高松塚古墳等貴族階層的古墳，墳丘小但很華麗。關東和東北地方古墳時代結束的比西日本晚，直到七世紀前半葉仍修造前方后圓墳。
飛鳥時代得名于奈良縣的飛鳥地方（現在的明日香村，當時的都城、藤原京）。