コードスイッチング（code-switching）とは、2種以上の言語体系ないし言語変種（方言など）の切り替えが行われることである。

概要 
コードスイッチングとは、2種以上の言語体系ないし言語変種（方言など）の切り替えが行われることである。英語である「code-switching」の頭文字をとって「CS」と表記されることもある。またコードミクシングと呼ばれることもある。

コードスイッチングに関する研究は、主に言語学分野における研究と、社会言語学分野における研究に大別できる。前者は、コードスイッチングが発生した文やフレーズに対する統語構造の分析が主な研究内容であり、一方で後者は、バイリンガルがコードスイッチングを使用する動機や目的、しいてはコードスイッチングが社会的に有する機能を明らかにすることが主な研究内容である。また、第二言語習得や、第二言語教学の分野においてもコードスイッチングは注目に値する現象であると見なされている。

なお、コードスイッチングに似た現象として借用語（いわゆる外来語）の使用が挙げられるが、この2つは形態素・音韻的特徴などにより区別され、借用語の使用は一般的にコードスイッチングとは見なされない。またコードスイッチングはバイリンガルのみが使用するのに対し、借用語はモノリンガルもバイリンガルも使用するという点で大きく異なる。

また一方で、コードスイッチングとしばしば混同される概念として、レジスターの変化に伴い生じるスタイルシフトがある。コードスイッチングが2種以上の異なる言語体系（方言を含む）間での使用言語の切り替えを指すのに対し、スタイルシフトは一つの言語内での文体（スタイル）の切り替えを指す。つまり日本語に関して言えば、いわゆる標準日本語と名古屋弁や博多弁などの方言間の切り替えはコードスイッチングであり、普通体（いわゆるタメ語）と丁寧体（つまり敬語）間の文体の切り替えはスタイルシフトである。

言語学分野における研究
言語学分野におけるコードスイッチング研究は、その殆どがコードスイッチングが発生した文やフレーズに対する統語構造の分析が主な研究内容である。したがって、ここで言う言語学分野とは、主に統語論の分野を指す。また、形態論の観点からコードスイッチングによって創出された、2種以上の言語から形成される語（単語）に対してその構造を分析することもある。

コードスイッチングの分類・種類 
コードスイッチングは、言語形式上、「文中コードスイッチング(Intra-sentential code-switching)」と、「文間コードスイッチング(Inter-sentential code-switching)」に分けられる。文中コードスイッチングとは、1文の中でコードスイッチングが起こっているものである。一方、文間コードスイッチングとは、1文の後の次の文が別の言語に切り替わっているものである。また、これら以外に、感動詞や日本語の終助詞などにおいてコードスイッチングが起こっているものは、付加コードスイッチング（tag code-switching）、あるいは「象徴的コードスイッチング（Emblematic code-switching）」などと呼ばれることもある。　なお、文中・文間コードスイッチングに関しては、「スイッチング」という言葉の意味の考慮に基づき、文間コードスイッチングこそが真の意味でのコードスイッチングであり、文中コードスイッチングはコードスイッチングではなく、コードミクシングであると認識する学者も少なくない。 以下は、各種コードスイッチングの例である。コードスイッチングの発生箇所は下線を引いて示す。

文中コードスイッチング 

（日本語-英　語）I haven't seen my おばあちゃん in a while（訳：おばあちゃんとしばらく会っていません。）
（日本語-中国語）我學校的老師都很やさしい。（訳：私の学校の先生はみんなやさしいです。）

文間コードスイッチング 

（日本語-英　語）これ美味しいよ。Do you want to try this?（訳：これ美味しいよ。食べてみる？）
（日本語-中国語）你叫什麼名字？教えてくれますか？（訳：お名前はなんですか？教えてくれますか？）

付加コードスイッチング（象徴的コードスイッチング）

（日本語-英　語）こんなに塩かけちゃ体に悪いでしょ、you know？（訳：こんなに塩かけちゃ体に悪いでしょ。）
（日本語-中国語）我…其實…えーと…怎麼說呢…，還是不要說好了。（訳：僕…本当はね…えーと…何ていうかな…やっぱり言わないでおくよ。）

コードスイッチング文の産出過程に関するアプローチ 
コードスイッチングが発生した文の統語構造を解明するための理論も数多く提唱されている。主要な理論として、Poplackが1980年に提唱した「自由形態素制約理論（The free morpheme constraint）」や「等価制約理論（The equivalence constraint）」、および、Myers-Scottonが1993年に提唱した「マトリックス言語フレームモデル（The matrix language frame model）」などが挙げられる。これらの理論の発達により、バイリンガルがコードスイッチングを実行するさいは、ただ単に2種の言語を「ごちゃ混ぜ」にしているのではなく、一定の文法・統語ルールに基づいていることが証明されつつある。

社会言語学分野における研究

社会言語学分野におけるコードスイッチング研究は、バイリンガルがコードスイッチングを使用する原因やコードスイッチングの有する機能を解明することが主な研究目的である。バイリンガルがコードスイッチングを実行するさい、その背景には必ず何かしらの理由があると考えられる。コードスイッチング現象はマクロ的視点、およびミクロ的視点から考察が可能である。具体的には、マクロ的視点からは、コードスイッチングの使用が社会的に如何なる機能を有し、その使用がその社会・コミュニティにおけるどのような社会的背景を反映するのか、ミクロ的視点からは、実際の会話においてコードスイッチングの使用が何を含意するのかが考察される。また、社会言語学分野においては時に、コードスイッチングに関する年代別での調査（例：年長者と若者がとあるコードスイッチングの使用された文を耳にしたさい、その文に対する容認度に差異はあるか）、男女別での調査（例：男性と女性ではどちらがよりコードスイッチングを多用する傾向にあるのか）、地域別での調査（例：都市部と地方で生活する人々では日常生活におけるコードスイッチングの使用頻度はどれほど異なるか）などについて言及されることもある。

コードスイッチングは、20世紀半ばの北米では、いずれの言語も十分に話せないために思いつく語やフレーズを混ぜるという話者の戦略だと思われてきた。しかし、多くの研究により、両言語が十分話せる話者も行っていることが証明されている。日本での研究の例として、在日韓国・朝鮮人の場合、在日何世か、一時的な留学生かどうかなどによって、コードスイッチングの仕方に違いがあることなどが示されている。また、Gumperz(1982)はバイリンガルが使用する言語には、自身が所属する社会的集団に対するある種の民族的意識をより強く反映する言語とそうでない言語が存在するとし、前者を「we code」、後者を「they code」と称した。通常we codeは、そのバイリンガルが所属するコミュニティーにおける低位言語であり、家庭内や親しい友人同士での会話など私的な場面で使用され、一方のthey codeは高位言語であり、公的な場面において使用される。例えると、いわゆる標準日本語と関西方言を理解する関西地方出身者にとって、彼らのwe codeは関西方言であり、いわゆる標準日本語がthey codeであると言える。

コードスイッチングの分類・種類 
コードスイッチングは、その発生する要因によって、「状況的コードスイッチング（Situational code-switching）」と、「隠喩的コードスイッチング（Metaphorical code-switching）」に分けられる。状況的コードスイッチングとは、対話相手の変化、対話場面の変化、対話地点の変化といったシチュエーションの変化にしたがって起こるものである。一方、隠喩的コードスイッチングとは、話者が発言に何らかの特別な意味やニュアンスを含ませるために起こるものである。つまり、前者は外的要因によって起こるコードスイッチングであり、後者は内的要因によって起こるコードスイッチングであると言える。 なお、隠喩的コードスイッチングに関しては、会話的コードスイッチング（Conversational code-switching）と呼ばれることもある。　しかし実際のところ、一つのコードスイッチング現象が、いくつもの状況的原因や話者の何かしらの意図によるものであることも珍しくない。そのため、一つのコードスイッチング現象に対して、これらのコードスイッチングのタイプのうちどちらのタイプに属するのかを断定することは困難である。以下は、各種コードスイッチングの例である。

状況的コードスイッチング 

 ある日本語ー韓国語バイリンガルの子供が、日本人の父親とは「日本語」で会話をするが、韓国人の母親と話すさいは「韓国語」の使用に切り替える。（対話相手の変化）
 ある日本語母語者がそれまではクラスメートと「日本語」で会話をしていたが、ドイツ語の授業が始まると「ドイツ語」に切り替えて会話を始めた。（対話場面の変化）
 あるインターナショナルスクールに通う子供が、自宅では「日本語」を使用するが、学校では「英語」を使用する。（対話地点の変化）

隠喩的コードスイッチング（会話的コードスイッチング） 

 ある日本語ー英語のバイリンガルが「英語」で会話をしているが、日本語の固有名詞（地名や人名など）を述べるさいはそのまま「日本語」で述べる。（コードスイッチングの原因：日本語でないと表現できないため）
 ある日本語ー英語バイリンガルの兄弟が、日本人の父親と「日本語」で会話をしていたが、父親に聞かれたくない内容を述べるさいには「英語」の使用に切り替え、兄弟だけで会話を続けた。（コードスイッチングの原因：特定の聞き手の排除）

なお、ダイグロシア状態において、高位変種（H変種）と低位変種（L変種）の両方が会話の中で表れるさいにも、コードスイッチングと呼べる。この場合も上述のように、シチュエーションの変化による高位変種と低位変種の切り替えは状況的コードスイッチングと言え、一方で、進行する会話の途中での話者自身の意思による高位変種と低位変種の切り替えは隠喩的コードスイッチング（あるいは会話的コードスイッチング）と言える。

コードスイッチング使用の原因・動機に関するアプローチ 
バイリンガルによるコードスイッチング使用の原因・動機に関する理論も幾つか提唱されている。中でもとりわけ広く認識されているものとして、Carol Myers-Scottonによって提唱された「有標モデル（Markedness model）」が挙げられる。　このモデルでは、バイリンガルが自身の所属する社会やコミュニティにおける慣習およびルールに基づき、その場その場に相応しい使用言語を選択するさい、それに伴いコードスイッチングが使用されることは言ってしまえば当然なことであり、このような場合に使用されたコードスイッチングを「無標」のものと見なす。一方で、バイリンガル一人一人による何らかの意図に基づき、コードスイッチングの使用を聞き手が予測することが困難な場合、このような状況下で使用されたコードスイッチングを「有標（＝話者による何かしらの含意がある）」のものと見なす。なお、このモデルにおける「無標」とは上記における「状況的コードスイッチング」と、「有標」は「隠喩的コードスイッチング（会話的コードスイッチング）」と相似した概念と言える。