هم‌تمثیلی

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

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

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

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

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

  • Ira R. Forman and Nate Forman, Java Reflection in Action (2005), شابک ۱−۹۳۲۳۹۴−۱۸−۴
  • Ira R. Forman and Scott Danforth, Putting Metaclasses to Work (1999), شابک ۰−۲۰۱−۴۳۳۰۵−۲

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

منابع

    • "The Reader". clojure.org. Retrieved 11 Januaryٔ 2018.
    • مشارکت‌کنندگان ویکی‌پدیا. «Homoiconicity». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۱۱ ژانویهٔ ۲۰۱۸.
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.