یک زبان برنامه نویسی به نام Prolan را به این شکل تعریف میکنیم:

هر برنامه به زیان Prolan دنباله ای از دستورات به شکل (s1,s2) است که در آن s1 و s2 دو رشته از نویسه ها (کاراکتر ها) هستند. برای اجرای یک دستور از زبان Prolan مانند (s1,s2) یک رشته به عنوان رشته ورودی به آن داده می شود و اگر زیر رشته s1 در رشته ورودی وجود داشت، این زیر رشته در اولین محلی که در رشته ورودی ظاهر شود تبدیل به s2 خواهد شد و اگر رشته s1 در رشته ورودی موجود نباشد، دستور (s1,s2) بر روی این رشته اجرا نخواهد شد. به عنوان مثال نتیجه اجرای دستور (ab,xa) روی رشته ababab، رشته xaaabab است. توجه کنید که همین دستور بر روی رشته bacb قابل اجرا نیست، چون زیر رشته ab در آن وجود ندارد.

یک برنامه به زبان به زبان Prolan به این شکل اجرا می شود: در ابتدا یک رشته به عنوان ورودی به آن برنامه داده می شود و این رشته در طی مراحلی تغییر می یابد. در هر مرحله اولین دستور قابل اجرای برنامه بر روی رشته اجرا می شود و آن را تغییر می دهد. پس از آن دوباره رشته تغییر یافته به شروع برنامه بر میگردد و مرحله قبل روی آن انجام میشود. کار تا آنجا ادامه پیدا میکند که دستور قابل اجرایی بر روی رشته خاصل در برنامه موجود نباشد. در این هنگام رشته حاصل خروجی برنامه میباشد.