南シナ海に面するマカオは、中心地となる半島部と、タイパ島とコロアネ島の間を埋め立ててつなげた島からなる。半島部は、東には珠江（パールリバー）、西には西江があり、中華人民共和国の本土の珠海経済特区と隣接している。1970年代以降に大規模な埋立が行われたため、マカオの地形は概ね平坦であるが、多数ある険しい丘が、元の地形の名残をとどめている。マカオ半島は元々島だったが、徐々に砂州が伸びてゆき、狭い地峡になり、その後の埋め立てにより狭い水路を残して大陸と一体化した（陸繋島）。マカオは高度に構造物が密集した都市であり、耕地、放牧地はなく、実質的に農業はほとんど行われていない。このために、マカオの人々は伝統的に海に目を向けて生計を立ててきた。
オテロ・デ・カルバーリョ大尉率いる国軍左派による1974年4月25日のカーネーション革命の後に、ポルトガル政府は民主化され当時所有していた全ての海外領土を放棄する方針を採ることになった。しかし、中華人民共和国政府はマカオの主権を主張しつつ当分の間のポルトガルによる統治を希望し、1976年にポルトガル政府は、マカオを「特別領」として再編成し行政上及び経済上の自治を多くの点で認めた。その後1979年に、ポルトガル政府は中華人民共和国政府との国交樹立（と中華民国との断交）を行った。第二次世界大戦後に国力が低下しており、しかも地元民による自治が進んだマカオを海外領土として統治することに興味を持たなくなったポルトガル政府は、即時移譲を望むも返還は遅れ、「アジア最後のヨーロッパ植民地」と呼ばれていた。
中華人民共和国内で文化大革命が行われていた1966年11月に、中国共産党系小学校における無許可での増築工事に対するセルヴェイラ代理総督による制裁が行われ、この制裁に怒った住民によるデモがセナド広場などで数度にわたり行われた。当初は平和的なデモであったが、その後中国共産党系の住人によって暴動化し、12月3日には、これを鎮圧しようとしたポルトガル軍警察がデモ隊に発砲したために、数人のデモ隊が死亡する惨事となった。これに怒った中華人民共和国政府は、人民解放軍によるマカオへの軍事侵攻をほのめかしながら、サラザール政権に対して事件の謝罪と責任者の処罰、共産党系の遺族に対する慰謝料の支払い、以後の中国共産党系住民による統治参加、そして中華民国の国務機関（諜報機関）によるマカオ内での活動の停止などを要求した。当時のポルトガル海上帝国はポルトガル植民地戦争で国力が低下し、マカオにわずかな軍事力しか駐留させていなかった上に、同じく海外領土として中国大陸に香港を抱えていたイギリスとの英葡永久同盟も5年前にゴアなどのポルトガル領がインドから武力侵攻を受けた際に役立ってなかったため、軍事的な支援は期待できなかった。軍事対立が起きた場合全てを失うと判断したサラザール政権はそれらの要求をほぼ全面的に呑み、総督が中国共産党系の住人組織に対して謝罪と慰謝料の支払いを行い、代理総督と警察幹部ら数名は国外へ追放された。以後「マカオの王」「マカオの影の総督」と呼ばれ、ポルトガル政府と友好的な関係を持った親中派実業家の何賢の影響下に入ることになり、当時のアフリカのポルトガル植民地とは対照的に政情は安定した。ポルトガル政府は中華民国との国交を保ち続けたにも関わらず、国連でアルバニア決議に賛成したり、その植民地であるマカオがあらゆる中華民国の活動を禁止して単独で中華民国と事実上「断交」するなど中華人民共和国政府に配慮した政策をとることとなった。
LISPは「式指向」の言語である。他の多くの言語とは違って、式と文は区別されず、すべてのコードとデータは式として書き下される。式が評価されたとき、それは値（または値のリスト）を生成する。式は他の式に埋め込める。マッカーシーの1958年の論文では、2つのタイプの表現が導入されている。内部のデータ構造の表現であるS式（記号式、英: symbolic expression、sexp）と、S式を引数に取りS式を返す関数を表す、外部表現であるM式(メタ式、英: meta expression）である。マッカーシーは、S式はプログラムの処理対象のデータの表現に使い、LISPプログラムの表現にはM式を使った。S式によるプログラムの表現は論文の中のみのものと考えていた。しかし、S式で表現されたプログラムを評価するevalが実装され、S式で表現することでプログラムをプログラムで操作できるという利点があり、今日ではほとんどすべてのLISP言語でM式は使用されておらず、プログラムとデータの両方にS式を使用する。LISPの用いる S式は括弧を大量に使用するため、批判を受けることもある。「LISP は 『lots of irritating superfluous parentheses』（過剰でいらいらさせる大量の括弧）に由来する」というジョークもある。しかし、S式による構文はLISPの能力を生み出してもいる。この構文は極めて正規化されているので、コンピュータによる操作が容易に行える。式への依存が、LISPに優れた柔軟性を与えている。LISPの関数は、それ自身がリストとして書かれており、データとまったく同様に扱うことができる。LISPのプログラムは他のLISPプログラムを処理するように書くことができる。これは、メタプログラミングと呼ばれる。多くの LISP方言はこの機能をマクロシステムで活用しており、言語自身の機能をほとんど際限なく拡張することを可能にしている。LISPでのリストは空白と括弧で区切られた要素で記述される。たとえば、(1 2 "foo")は1, 2, "foo"の値を要素として持つ1つのリストである。これらの値は暗黙の型を持つ。これらは2つの整数と1つの文字列であるが、そのように宣言されている必要はない。空のリスト()はnilとも書ける。