فرآيند برنامه نويسي ژنتيک توسط هر زبان برنامه نويسي که قابليت بيان و ارزيابي تركيب ا ز توا بع را داشته باشد قابل پياده سازي ا ست هر چند که زبان ليسپ بيشترين قا بليت را دارد. زبان ليسپ تنها از دو نوع نهاد تحت عنوان اتم وليست تشکيل شده است. اتمها مي توانند مقادير ثابت مانند 7 يا مقادير متغير مانند TIME باشند. ليستها  در زبان ليسپ مجموعه اي مرتب ا ز اجزا درون پرانتز مي باشد مانند ( + 1 2 ) . کامپايلر و سيستم عامل زبان ليسپ به گونه اي کار مي کند که هر عبارتي را مي بيند آنرا ارزيابي مي کند. اتمهاي ثابت به خود مقادير ارزيابي مي شوند در حاليکه اتمهاي متغير به مقادير جاريشان ارزيابي مي شوند. هنگامي که ليستي توسط زبان ليسپ مشاهده مي شود ، اولين عنصر درون ليست به عنوان تابع و ساير عناصر بعنوان آرگومانهاي تابع فرض مي شوند.

به عنوان مثا ل   عبارت ( + 1 2 ( IF ( > TIME 10 ) 3 4 ) )  را در نظر بگيريد. در زير   عبارت ( > TIME 10 )   تابع < بر روي اتم متغير TIME و اتم ثابت 10 اعما ل مي شود. سپس اين زير عبارت به مقدار درست يا نادرست با توجه مقدار جاري اتم متغير TIME  ارزيابي مي شود .مقدار منطقي اي که توسط زير عبارت ( > TIME 10 )  برگشت داده مي شود اولين آرگومان تابع IF فرض مي شود. تابع IF  تابعي با سه آرگومان مي باشد. ا ين تابع مقدار ارزيابي شده دومين آرگومان را در صورتي که اولين آرگومان آن صحيح باشد باز مي گرداند در غير ا ين صورت مقدار ارزيابي شده آرگومان سوم برگشت داده مي شود.   هر عبارت زبان ليسپ را مي توا ن به صورت ساختار درختي نمايش داد.

دقت شود که اين فرم درختي عبارت ليسپ معادل درخت پارسري مي باشد که ساير کامپايلرها براي ارائه

يک برنامه کامپيوتري مي سازند.