八四艦隊案の一部として長門、谷風など共に予算が成立した。仮称艦名は「第2号小型巡洋艦」、1916年(大正5年)5月13日龍田(たつた)と命名される。1917年(大正6年)7月24日佐世保海軍工廠で起工、1918年(大正7年)5月29日午前10時進水、1919年(大正8年)3月31日に竣工した。同日、利根に代わり第一水雷戦隊に編入された、1920年(大正9年)、シベリア出兵に参加、船団護衛に従事した。
1923年(大正12年)4月、3番砲の前方に方位測定室を設けて(方位測定用の)空中線を装備した。空中線の形状は短冊形(長方形)になっている(天龍は菱形)。1932年(昭和7年)から翌年、または1935年(昭和10年)頃に魚雷発射管は移動式からその場で旋回する形に改め、装備位置が高められた。1933年(昭和8年)4月16日から5月25日まで佐世保海軍工廠で改装を行った。羅針艦橋の側壁を鋼製の固定式に改め、窓ガラスが設置された(従来はキャンバスで覆う形)。前面の側壁は垂直であり、天龍(上方が前方に出ている)との識別点になる。なお、天蓋はキャンバスのままだった。また前部マストを三脚式に改め(従来は単マスト)、マスト・トップを若干短縮し、クロスツリーを設けて保持する形に改めた。1936年(昭和11年)11月10日から18日に艦橋周囲に防弾板を設置し、中国方面へ進出した。1937年(昭和12年)7月に九三式13mm機銃2挺が1番煙突前部の左右に1挺ずつ装備された。龍田は1938年(昭和13年)12月15日に予備艦となり1940年(昭和15年)11月15日に艦隊に復帰(第18戦隊を編成)した間に羅針艦橋天蓋を固定化した。また同じ時期に方位測定用の空中線はループ型に変更された(1937年(昭和12年)頃とする文献もある)。混焼缶(ボイラー)は最後まで混焼缶のままとする文献と、重油専焼化されたとする文献がある。なお、艦橋上の探照灯台ブルワークは前方に延長され、天龍との識別点になっている。昭和16年度(1941年)の第18戦隊時には2番艦として1番煙突に2本の白線を描いていたが、開戦時には消された。
ユーザは変換仕様をYacc文法ファイルとしてのテキストファイルを作っておく。yaccコマンドyacc [-dlrtv ] [-b prefix] fileNameは、fileName で与えたYacc文法ファイル（たとえば"wiki_samp1.y"）（伝統的に拡張子は.yがつけられることが多かった）から構文規則を入力し、それに基づくLALR構文解析器になるC言語のソースプログラム（通常"y.tab.c"）を出力する。-rオプションでコード部分だけ"y.code.c"ファイルに独立させることもできる。このC言語ソースプログラムにはLALR解析テーブルおよびドライバルーチンが含まれる。 特に、構文解析全体を行う関数にはyyparse()という名前がついている。よってこのプログラムにあらかじめ適宜yyparse()を呼び出すmain()関数を加えておくなどして（それはYacc文法ファイル中の「追加Ｃプログラム部」での記述でも可能）、ほしい変換プログラムを完成することができる。-dオプションで生成するヘッダファイル"y.tab.h"は、Lexがトークン処理を行うときに、Yaccが割り当てたトークン値（256～）を正しく使うよう、Lex実行時に与える。-vオプションにより、生成パーサの文法、終端記号、非終端記号、状態の種類とそれぞれの判定パターンおよびそのシフト、還元等の措置や状態遷移先といった解析テーブル情報が、人に分かりやすい形でテキストファイル"y.output"に出力される。（この"y.output"リストの見方が分かりにくい。ピリオド「.」（Yaccの種類によっては下線「_」）は現在のカーソル位置であることなどは知らないと分からないであろう。説明は日本語文書では良書「Cコンパイラ設計(yacc・lexの応用) 」のほかに見つけにくいが、英語ではいくつかある     ）-tオプションを指定すると、生成パーサが実行されるときに、状態番号、スタック状態、読んだトークン、意味値の演算の様子、変化した状態番号などが、逐一標準エラー出力に表示されるのでデバッグに役立つ（コンパイルオプションも関連）。次に、Yaccで生成し構文解析器ソースプログラム（"y.tab.c"）をccコマンドやgccコマンドなどでコンパイルする。このとき、Lexも利用したのであればその出力（"lex.yy.c"）も並べて指定する。これらに対応するライブラリもコンパイルオプションによってリンクさせる。コンパイルで作成された変換プログラムを実行すると、標準入力（FILEポインタyyinで変更可能）（yywrap関数で複数ファイルの連結が可能）から変換するファイルを読み込む。これを字句解析器関数yylex()によってトークンにして構文解析が実行される。変換結果やエラーは、Yaccのアクション部や呼ばれる関数で書いた処理によりそれぞれ出力される。syntaxエラーなどは通常標準エラー出力に出るが、形式や出力先をエラー報告関数yyerror()でカスタマイズできる。Yaccのオリジナルなエラーメッセージでは情報が貧弱である。開発・運用で頭を抱えないようにするためには、特に発生場所のファイル名、行番号およびトークン番号などをエラーメッセージに追加するようにyyerror()を作っておくことが望ましい。