執権政治のもとでの合議制への参加や成文の法典などを定めるようになった鎌倉武士たちも、ようやく内外の文化や学問への関心をいだくようになり、幕府の歴史を編年体でしるした歴史書『吾妻鏡』が編纂された。執権北条時頼の命令によって書かれた公的日記であり、全52巻、頼朝挙兵から1266年（文永3年）までを記述している。鎌倉時代の政治史を知る上での根本史料となっている。鎌倉時代の史論書として名高いのが、天台座主で九条兼実の弟、また『新古今和歌集』の歌人でもあった慈円の『愚管抄』である。転換期の世相を深い思索をもとに記しており、歴史をつらぬく原理をさぐり、「道理」による歴史解釈をこころみた。『愚管抄』は、一貫して慈円自身が歴史の瞬間に我が身を置き、歴史を追体験するかたちで叙述されており、人間の理解やはからいを超越した歴史の不思議が歴史を動かす力ともなっていること、あるいは、歴史が動くときの軸ともなっていることを「道理」の語で表現しようとしている、との指摘がある。そして、公家社会の人びとにはどうしても理解できない「武者ノ世」の出現を、道理のしからしむるところと考え、幕府との協調を説こうとした。この著は、承久の乱の直前に後鳥羽上皇の挙兵を知って記されたもので、慈円はこの挙兵を道理に合わないとしてひとつの思想的立場から批判したのであり、また、現実の政治論としての意味ももっていた。上述の日本書紀の注釈書『釈日本紀』のほか歴史への関心は仏教史におよび、日本最初の仏教史として臨済宗の僧侶虎関師錬によって『元亨釈書』が著述された。
鎌倉時代に入ると、日本の古典研究（和学）が顧みられるようになった。日本書紀の民間初の注釈書である卜部兼方の『釈日本紀』のほか、鎌倉の僧仙覚が万葉集の諸本を校訂して注釈書『万葉集註釈』（別名『仙覚抄』）を著し、源氏物語の研究では、源光行・源親行父子が『水原抄』を著して注釈を加えた。
書道では、平安時代に藤原行成が創始した世尊寺流はしだいに公家社会で衰え、かわって宋・元の書風が伝えられたのを受けて鎌倉時代末に伏見天皇の第6皇子で京都青蓮院 の尊円入道親王 が青蓮院流をひらいた。青蓮院流は、和様（世尊寺流）をもとに宋（とくに南宋の張即之）の書風をとり入れたもので、江戸時代には朝廷・幕府・諸藩の公文書に採用され、御家流と称された。庶民間でもひろく普及し、習字の手本などにもなっている。有名な『鷹巣帖』は、同じ持明院統で兄後伏見天皇の孫にあたる後光厳天皇のために、尊円が漢字と仮名で詩歌を一巻に書きついだものである。
鎌倉時代の金工品として知られているのが、安芸国厳島神社（広島県廿日市市）の密教法具および近江国神照寺（滋賀県長浜市）の透彫金銀鍍華籠である。また、三嶋大社の手箱（梅文蒔絵櫛笥）には数種におよぶ美麗な和鏡が内容品として納められている。舎利信仰の高まりとともに多くの舎利塔が造られたが、なかでも透かし彫りの美麗さで知られるのが西大寺（奈良市）の金銅透彫舎利塔である。梵鐘には鋳物師物部重光による建長寺鐘、同じく物部国光による円覚寺鐘があり、鎌倉時代の二大梵鐘となっている。それぞれ建長七年（1255年）、正応三年（1290年）の紀年銘が刻されている。
漆器は、前代にくらべて器形が端正になり、文様も従来の象徴的な自然描写から写実的な絵画表現へと変化した。また、歌絵、葦手絵にならった意匠も用いられた。技法としては、平蒔絵、高蒔絵も出現した。鎌倉時代前葉では、畠山記念館所蔵の蝶文手箱、出雲大社秋野蒔絵螺鈿箱、輪王寺蒔絵手箱、中葉では、鶴岡八幡宮籬菊文硯箱、サントリー美術館浮線綾文手箱、後葉では三嶋大社梅文蒔絵櫛笥、大倉集古館の扇散文蒔絵手箱などがある。なお、この時代の螺鈿技術の進展も著しく、ことに、螺鈿のみで巧妙に絵画的模様を示した永青文庫所蔵の時雨鞍は、その妙技を示す逸品として名高い。
ツリー上のコードの SSA 形式への変換は、代入の対象を新たな変数に置き換え、変数の使用箇所をその定義箇所に到達する「バージョン付き」のものに置き換えるだけの基本的に簡潔な問題である。例として、下記のような制御フローグラフを考える。"x  x - 3" の左辺の名前を変え、それ以降 x を新たな名前に変えることができ、それでもプログラムは全く同じ動作をする。このことを利用して、SSA ではそれぞれに対して一度しか代入が行われない新たな二つの変数x₁ と x₂ を作成する。同様に、全ての変数に対してバージョンを区別するための添え字を与える。ここで、各々の変数を使用している箇所がどの定義を参照しているかをただ一点を除いて把握している。最後のブロックの y は制御フローのどちらを通るかによって y₁ と y₂のどちらを参照するかが異なる。ではこれをどのようにして知るのか？その答えは、Φ (ファイ) 関数と呼ばれる特別な命令を最後のブロックの始めに追加することである。この命令は、どちらの制御フローから到達したのかによって y₁ あるいは y₂ を選択し y の新たな定義 y₃ を生成する。これにより、最後のブロックの y は y₃ を用いることができ、いずれの場合でも正し値を得ることができる。x についても Φ 関数を追加する必要があるか？という質問があるかもしれないが、答えは「不要」である。x のバージョンは x₂ のみがこの箇所に到達しており、問題にはならない。より一般的な質問として、任意の制御フローが与えられたとき、どこに、またどの変数に対して Φ 関数を挿入するべきか、という問題がある。これは難しい質問であるが、支配辺境(dominance frontier) と呼ばれる概念を用いて求める優れた方法がある。ここで、Φ 関数は実際に実装されるものではなく、コンパイラに対して Φ 関数でグループとされる全ての変数の値をメモリやレジスタの同じ場所に配置するよう指示するマーカーである。