هم‌تمثیلی (به انگلیسی: Homoiconicity) در برنامه‌نویسی کامپیوتری نامی است که الن کی در تز دکترای خود در سال ۱۹۶۹ میلادی به خصوصیتی از زبان‌های برنامه‌نویسی اطلاق کرده‌است که در آن‌ها ساختار برنامه دقیقاً شبیه به شکل نحوی آن باشد؛ که در نتیجه، ساختار درونی برنامه را می‌توان به راحتی از روی متن سطح بالای برنامه استنتاج کرد. در صورتی که زبانی هم‌تمثیل باشد، بدین معنی است که درخت نحوی آن دارای ساختاری مشابه با متن زبان است، که خود به این معنی است که درخت نحوی زبان و نحو زبان از دیدگاه جبر مجرد دارای یک‌ریختی هستند. این ویژگی اجازه می‌دهد تا تمام کدهای داخل برنامه با یک نوع نمایش یکسان به عنوان داده نگاشته شوند و یا مورد دسترسی قرار گیرند.

نمایش زبان‌هایی مثل کلوژر برای سینتکس دقیقاً مشابه با عملیاتی است که پردازنده برای عملیات جبری استفاده می‌کند. در حالت پیشرفته‌تر، پرانتزها، تعاریف متغیر و تعریف توابع هم در سینتکس زبان دقیقاً به همان ترتیبی هستند که در درخت نحوی آمده.

اولین مزیت زبان‌های هم‌تمثیل، توانا بودن در تولید و تغییر کد همان برنامه در زمان اجرا است که در زبان‌های از نوع دیگر از طریق بازتاب یا Reflection (تبدیل رشته‌ها و تفسیر آن در کامپایلر) انجام می‌شود.

جستارهای وابسته ویرایش

برای مطالعه بیشتر ویرایش

پیوند به بیرون ویرایش

منابع ویرایش

  • "The Reader" (به انگلیسی). clojure.org. Retrieved 11 January 2018.
  • مشارکت‌کنندگان ویکی‌پدیا. «Homoiconicity». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۱۱ ژانویهٔ ۲۰۱۸.