中核部に含まれるタグの名前には常に cf が前置され、その後にユニークな識別文字列が続く。CFML で書かれたカスタムタグには cf_ が前置されるが、他にも呼び出し方が存在する。
手続き的な関数は、CFScript(英語版) を通して利用可能である。
CFML は一般に動的プログラミング言語と見なされている。しかし、各種タグで入力パラメータの型チェックが可能である(cffunction、cfparam、cfqueryparam など。ただし、プログラマが型を指定した場合)。型チェックが使われているか否かに関わらず実行時に失敗が発生するのだが、これがよい方式かどうかについては異論もある。
CFML は大文字と小文字を区別しない。
CFML では C++ の map コンテナのようなデータ構造を多用する。キーは常に文字列だが、値の型は特に指定されない。値はドット記法でアクセスされることが多いが、CFML の実装によっては手続き的関数からアクセスできたり、一種のオブジェクトのように扱って get メソッドで値を取り出す形式もある。
最近の CFML 実装では、コンポーネントとしてオブジェクトをサポートしている。コンポーネント定義はファイル内にあり、cfcomponent タグで囲まれている。
コンポーネント間のメッセージパッシングもドット記法で行われる。これはJavaなどのオブジェクト指向言語と似た記法である。メソッド呼び出しの括弧を省略すると、ColdFusion ではその関数を値オブジェクトの map とみなす。これによりメソッドが一種の第一級オブジェクトとして扱われる。
CFML は形式にこだわらない。タグに本体がないのが普通である場合、文法的にもそのタグを閉じる必要がない。例えば、
と書いても
と書いても正しい。どちらを使うべきかという議論もよく発生する。