در برنامه‌نویسی به فرایند وصل کردن شناسه‌ها به مولفه‌های نشان داده شده توسط آن‌ها تطبیق نام می‌گویند. این نام‌ها ممکن است در جدول نمادها یا به عنوان بخشی از معماری فضای نام ذخیره شوند. هدف از نام گذاری فراهم کردن دسترسی آسان و سریع به مولفه‌های برنامه است. این فرایند می‌تواند برای فراخوانی تابع، متغیر یا مولفه ای از یک مجموعه موجودیت نام گذاری شده استفاده شود. 
 عبارت‌های برنامه‌های کامپیوتری، متغیرها، نوع داده‌ها، توابع، کلاس‌ها، اشیا، کتاب‌خانه‌ها، بسته‌ها و دیگر موجودیت‌ها را با اسم فراخوانی می‌کنند. تطبیق نام، فرایند ارتباط دادن این اسامی (که لزوماً یکتا نیستند) با موجودیت‌های معادلشان در برنامه است. الگوریتم‌هایی که مشخص می‌کنند این شناسه‌ها در یک بخش خاص برنامه به چه جزئی اشاره می‌کنند، بخشی از تعریف زبان هستند.
میزان پیچیدگی این الگوریتم‌ها به پیچیدگی زبان بستگی دارد. برای مثال، فرایند تطبیق نام در معمولاً با استفاده از یک جدول نماد انجام می‌شود در حالی که در زبان این فرایند بسیار دشوارتر است و موارد زیر را دربرمی‌گیرد:
 
 
 
 
 در مختلف، تطبیق نام در زمان کامپایل یا زمان اجرا انجام می‌شود. حالت اول تطبیق نام ایستا و حالت دوم تطبیق نام پویا نام دارد.
یک تصور غلط رایج این است که پویا بودن نوع متغیرها معادل پویا بودن فرایند تطبیق نام است. برای مثال در زبان برنامه‌سازی ، نوع متغیرها به صورت پویا تعریف می‌شود اما تطبیق نام به شکل ایستا صورت می‌گیرد. با این حال ایستا بودن نوع متغیرها به معنای ایستا بودن فرایند تطبیق نام است.
تطبیق نام ایستا که در زمان کامپایل انجام می‌شود، جلوی استفاده از متغیرهایی که در دامنه نیستند را می‌گیرد و بنابراین از برخی خطاهای برنامه‌نویسی جلوگیری می‌کند. اما در زبان‌هایی که تطبیق نام پویا دارند این ایمنی فدای انعطاف‌پذیری بیشتر می‌شود. در این زبان‌ها به‌طور معمول می‌توان متغیرها را در یک دامنه مقداردهی و استفاده کرد.
 برای مثال، در زبان داریم:
 هر چند امروزه تکیه کردن بر تطبیق نام پویا توسط جامعه برنامه‌نویسان پایتون توصیه نمی‌شود. همچنین ممکن است این ویژگی در نسخه‌های بعدی پایتون حذف شود. 
 نمونه‌هایی از زبان‌هایی که از تطبیق نام ایستا استفاده می‌کنند شامل ، ، E, ، ، ، ، و می‌شود. همچنین ، ، ، ، و مثال‌هایی از زبان‌هایی هستند که از تطبیق نام پویا استفاده می‌کنند.
 پوشاندن زمانی رخ می‌دهد که برای موجودیت‌های متفاوت در دامنه‌های واژگانی دارای هم‌پوشانی از شناسه‌های یکسان استفاده شود. این عمل در سطح متغیرها با عنوان سایه انداختن بر متغیر شناخته می‌شود. شناسهٔ 'I (برای متغیر 'X) شناسهٔ I (برای متغیر X) را می‌پوشاند وقتی که دو شرط زیر برقرار باشند:
 
 در این صورت گفته می‌شود که متغیر درونی 'X بر متغیر بیرونی X سایه انداخته‌است.
 برای مثال در الگوی متداول زیر پارامتر بر متغیر محلی سایه انداخته‌است.
 در واقع نام در دامنهٔ بیرونی تعریف شده‌است. همچنین در تابع ، نام در دامنهٔ درونی تعریف شده‌است و متغیر محلی آن تابع است. از آن‌جایی که ابتدا در داخلی‌ترین دامنه یافت می‌شود، برای اینکه بازنویسی مقدار متغیر کلاس با پارامتر که به تابع پاس داده شده‌است با موفقیت انجام شود، فرایند تطبیق باید تفاوتی بین (ویژگی شیء) و (پارامتر تابع) قائل شود.
 پوشاندن نام می‌تواند باعث پیچیدگی‌هایی در سربار کردن تابع بشود، چرا که در بعضی از زبان‌ها از جمله سی‌پلاس‌پلاس سربار کردن در میان دامنه‌ها رخ نمی‌دهد، بنابراین نیاز است که همهٔ توابع سربار شده مجدداً تعریف شوند یا به صورت صریح در یک فضای نام داده شده وارد شوند.
 در زبان‌های برنامه‌نویسی با قواعد دامنه‌ای واژگانی که عمل بازتاب روی نام متغیرها را انجام نمی‌دهند، می‌توان برای آسان کردن تطبیق نام از تبدیل ⍺ (یا تغییر نام ⍺) استفاده کرد. به وسیلهٔ این فرایند می‌توان جایگزینی‌هایی را یافت که به ما کمک می‌کند از این که هیچ نام متغیری در دامنه‌اش نام دیگری را پنهان نمی‌کند اطمینان حاصل کنیم. اگر تغییر نام دهندهٔ ⍺ قوانین دامنه‌ای زبان را بفهمد، آن‌گاه می‌توان با تغییر نام ⍺ را آسان کرد.
 برای مثال به کد زیر توجه نمایید:
 در کد بالا، در تابع سازندهٔ کلاس Point، متغیرهای کلاسی x و y در سایهٔ متغیرهای محلی با اسم مشابه قرار گرفته‌اند. می‌توان با تغییر نام ⍺ به کد زیر رسید:
 در این کد جدید، هیچ پنهان‌سازی‌ای صورت نگرفته، بنابراین واضح است که کدام استفاده‌ها با کدام تعریف‌ها مطابقت دارند.
{"title": "تطبیق نام (زبان‌های برنامه‌نویسی)", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%AA%D8%B7%D8%A8%DB%8C%D9%82_%D9%86%D8%A7%D9%85_(%D8%B2%D8%A8%D8%A7%D9%86%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)&oldid=28824777", "language": "fa"}