این روش که توسط «جان کوزا»[1] توسعه یافت، بیشتر برای برنامه‌نویسی ژنتیک[2] توسط نرم‌افزار «لیسپ»[3] مورد استفاده قرار می‌گیرد، [5] که برنامه‌ها را به عنوان شاخه‌های داده در ساختار درخت نشان می‌دهد. در این روش تغییرات تصادفی می‌توانند با عوض کردن عملگرها یا تغییر دادن ارزش یک گره داده شده در درخت، یا عوض کردن یک زیردرخت با دیگری به وجود آیند.[10] یا به زبان ساده‌تر این طورمی‌توان گفت که: در این نوع کد گذاری یک درخت دودویی برای عبارت (کروموزوم) تشکیل می‌دهیم که معادل درخت پارس است و تمام اعمال مربوط به درخت پارس بر روی درخت قابل انجام است.[13]

این روش بیشتر در نرم‌افزار کامپایلر فوق بکار برده می‌شود البته در نرم افزارهایی که تحت عنوان «کدهای الگوریتم ژنتیک» برای یک مسألۀ خاص نوشته می‌شوند از این نوع روش رمزگذاری و آدرس‌دهی کروموزوم استفاده می‌شود.[5]

[1] John Koza

[2] Genetic Programming

[3] LISP