اسمبلر سطح بالا: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
ویرایش به‌وسیلهٔ ابرابزار:
جزبدون خلاصۀ ویرایش
خط ۱:
{{بهبود ترجمه}}
 
'''اسمبلر سطح بالا''' {{به انگلیسی|High level assembler}} در [[رایانش|کامپیوتر]]، [[زبان اسمبلی|اسمبلرهایی]] برای [[زبان اسمبلی]] هستند که ویژگی‌های موجود در [[زبان برنامه‌نویسی سطح بالا|زبان‌های برنامه‌نویسی سطح بالا]] را در خود جای داده‌اند.
 
قدیمی‌ترین اسمبلر سطح بالا احتمالاً [[:en:Burroughs_MCP|ESPOL از کمپانی Burrough]] بود که در حدود سال ۱۹۶۰ معرفی شد و یک [[زبان برنامه‌نویسی#دستور(syntax)|دستور]] ALGOL مانند حول دستورالعمل‌های ماشینی با صراحت بیان شدهٔ B5000 ارائه داد. به دنبال آن PL360 توسط [[نیکلاوس ویرت|Niklaus Wirth]] در سال ۱۹۶۸ ارائه شد. او امکانات را بر روی یک [[:en:IBM System/360|IBM System/360]] که خود با آن آشنایی داشت تکرار کرد. از اسمبلر سطح بالا جدید تر می‌توان به [[TASM]] و [[NASM]] از [[بورلند]]، [[MASM]] از [[مایکروسافت]] و [[IBM High Level Assembler|HLASM]] از [[آی بی ام]] (برای سیستم‌های با معماری z)، اشاره کرد.{{مدرک|date=September 2016}}
 
اسمبلرهای سطح بالا معمولاً دستورالعمل‌هایی را ارائه می‌دهند که مستقیماً و [[تابع دوسویی|یک به یک]] به [[کد ماشین]] سطح پایین اسمبل می‌شوند و علاوه بر آن گزاره‌های کنترلی مانند IF , WHILE , REPEAT...UNTIL و FOR، عبارات ماکرو و سایر بهبودها را شامل می‌شوند. این امر اجازه استفاده از انتزاعات گزاره‌های کنترلی سطح بالا (high-level control statement abstractions) را در هر کجا که حداکثر سرعت یا حداقل فضا ضروری نیست، می‌دهد. دستورهای سطح پایین که مستقیماً به کد ماشین اسمبل می‌شوند می‌توانند برای تولید سریع‌ترین یا کوتاه‌ترین کد استفاده بشوند. نتیجه نهایی [[کد منبع]] اسمبلی است که ضمن حفظ کارایی ذاتی استفاده از زبان اسمبلی، بسیار خواناتر از کد استاندارد اسمبلی است.
 
اسمبلرهای سطح بالا معمولاً امکانات پنهان کردن اطلاعات و توانایی فراخوانی توابع و رویه‌ها را با استفاده از یک [[نحو]] سطح بالا فراهم می‌کنند (یعنی به عنوان مثال اسمبلر به‌طور خودکار کدی تولید می‌کند که خود پارامترها را روی [[پشته فراخوانی|پشته]] پوش کند، به جای اینکه برنامه‌نویس مجبور باشد کد لازم برای این کار را به صورت دستی بنویسد).
 
اسمبلر سطح بالا همچنین انتزاعات داده‌ای(data abstractions)ای را فراهم می‌کنند که به‌طور معمول در زبان‌های سطح بالا یافت می‌شود. به عنوان مثال می‌توان به [[ساختمان داده‌ها|ساختمان‌ها]]، اجتماع‌ها، [[کلاس (برنامه‌نویسی)|کلاس‌ها]] و مجموعه‌ها اشاره کرد. برخی از [[توربو اسمبلر|مونتاژرهای]] سطح بالا (به عنوان مثال، [[توربو اسمبلر|TASM]] و HLA) از [[برنامه‌نویسی شیءگرا|برنامه‌نویسی شی گرا]] پشتیبانی می‌کنند.
 
== منابع ==