زبان برنامه‌نویسی مدارهای مجتمع با کاربرد خاص

از ویکی‌پدیا، دانشنامهٔ آزاد
ASIC
نویسنده(های)
اصلی
Dave Visti
توسعه‌دهنده(ها)80/20 Software[۱]
انتشار ابتداییbefore 1993[۲]
انتشار نهایی
۵٫۰۰
۱۹۹۴؛ ۳۰ سال پیش (۱۹۹۴-خطا: زمان نامعتبر}})
نوشته‌شده با اسمبلی, توربو سی
سیستم‌عاملMS-DOS
گونهBASIC
پروانهنرم‌افزار مشروط

زبان برنامه‌نویسی مدارهای مجتمع با کاربرد خاص (به انگلیسی: Application-specific integrated circuit programming language) یا به اختصار زبان برنامه‌نویسی ای‌سیک (به انگلیسی: ASIC programming language)، یک کامپایلر و محیط توسعه یکپارچه برای زیر مجموعه ای از زبان برنامه‌نویسی بیسیک است. این نرم‌افزار برای MS-DOS و سیستم‌های سازگار به عنوان نرم‌افزار مشروط منتشر شد. توسط Dave Visti با نرم‌افزار ۸۰/۲۰ نوشته شده، یکی از معدود کامپایلرهای BASIC بود که به‌طور قانونی برای دانلود از بی‌بی‌اس در دسترس بود. ASIC اجازه کامپایل یک فایل EXE یا COM را می‌دهد. یک فایل COM برای برنامه Hello world تعداد ۳۶۰ بایت دارد.[۳]

ASIC یا همون زبان برنامه‌نویسی مدارهای مجتمع با کاربرد خاص، پشتیبانی کمی از عملگرهای منطقی، ساختارهای کنترلی،[۴] و محاسبات ممیز شناور دارد. این کمبودها منجر به شعاری شوخ طبعانه شد که، "ASIC: تقریباً مثل بیسیک است!"[۵][۶]

امکانات[ویرایش]

زبان برنامه‌نویسی مدارهای مجتمع با کاربرد خاص (ASIC) در مقایسه با کد دستور العمل نمادین همه منظوره مبتدیان (BASIC)های هم نسل خودش ضعف‌های زیادی دارد (به شدت ضعف دارد). ویژگی‌های ASIC به گونه‌ای انتخاب شده‌اند که یک برنامه به راحتی و مستقیماً به زبان ماشین کامپایل شود؛ بنابراین، بسیاری از ساختارهای زبان ASIC معادل ساختارهای زبان اسمبلی هستند.

اصطلاحات[ویرایش]

ASIC عملگر توان ^ ندارد.

ASIC عملگرهای بولی (AND ، OR ، NOT و …) ندارد.

ورودی و خروجی[ویرایش]

آرگومان‌های PRINT باید متغیر یا دقیق باشند.

PRINT به کاربر اجازه استفاده از عبارات ترکیبی به عنوان آرگومان‌های خود نمی‌دهد و همچنین اجازه استفاده از رشته‌های پیوند شده با ; یا + را هم نمی‌دهد.

اگر دستور PRINT با ; یا , نوشته شده باشد، دستور PRINT بعدی در موقعیتی که این دستور متوقف شده، ادامه می‌دهد، درست مثل اینکه آرگومان آن به آرگومان دستور PRINT قبلی اضافه شده‌است.

LOCATE row, column :

مکان نما متن را به موقعیت (column ، row)، که در آن ۰ ≤ column و ۰ ≤ row است، حرکت می‌دهد. موقعیت (۰، ۰) گوشه بالا سمت چپ می‌باشد.

گرافیک[ویرایش]

PSET (row,column),color

روشن کردن پیکسل رنگی در موقعیت (column ، row)، که در آن ۰ ≤ column و ۰ ≤ row . موقعیت (۰، ۰) گوشه بالا سمت چپ می‌باشد.

ساختارهای کنترلی[ویرایش]

تصمیم‌ها[ویرایش]

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

پس از THEN، ممکن است دنباله ای از عبارت‌ها با ELSE یا ENDIF محدود شده باشد. مثال:

IF X < 0 THEN
  PRINT "Negative"
ELSE
  PRINT "Non-negative"
ENDIF

برخلاف سایر BASICها، دستورها را نمی‌توان بین THEN و انتهای خط قرار داد.

یک IF شرطی اگر می‌تواند پرش شرطی را انجام دهد. در این مورد، پس از THEN ممکن است یک برچسب Label وجود داشته باشد.

حلقه زدن[ویرایش]

در FOR ، بعد از TO ممکن است فقط یک عدد - دقیق یا متغیر - وجود داشته باشد اما یک عبارت ترکیبی نمی تواند باشد. STEP در ASIC وجود ندارد.

شاخه زدن یا انشعاب[ویرایش]

در یک عبارت GOTO ، برچسب یا (label) باید با یک (دو نقطه) : دنبال شود.

زیر برنامه ها[ویرایش]

در یک عبارت GOSUB ، برچسب یا (label) باید با (دو نقطه) : استفاده شود.

BAS2ASI[ویرایش]

این ابزار برای تبدیل برنامه های GW-BASIC به شکل ASIC نسخه 5.0 است که البته برخی ویژگی های GW-BASIC را پشتیبانی نمی کند. مثال ها:


STEP در حلقه for تبدیل نشده است.

برنامه

10 FOR i=10 TO 1 STEP -1 
20 PRINT i
30 NEXT i

تبدیل به

	REM 10 FOR i=10 TO 1 STEP -1 
	FOR I@ = 10 TO 1 
		ASIC0@ = -1 -1 
		I@ = I@ + ASIC0@ 
		
		REM 20 PRINT i
		PRINT I@ 
		
		REM 30 NEXT i		REM 30 NEXT i		3:  Syntax error

عملگر توان ^ تبدیل نشده است.

و برنامه

10 a=2
20 b=a^10
30 PRINT b

تبدیل می شود به

	REM 10 a=2
L10: 
	A@ = 2 
	
	REM 20 b=a^10
	2:  Syntax error

	REM 30 PRINT b	REM 30 PRINT b	3:  Syntax error


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

منابع[ویرایش]

  1. IBRARY: Library for the ASIC compiler. Current Version: 3.1...David A. Visti, Catalog - Updated :February 1, 1996, Charon Software
  2. ASIC 4.0 - Download
  3. ASIC, Area code magic with AC Hunter (computer program) (On Disk) (evaluation), by George Campbell, COMPUTE! ISSUE 126 / FEBRUARY 1991 / PAGE 86
  4. در ASIC 3.01 (1991)، کتابچه راهنمای FOR...NEXT, WHILE...WEND و IF...ENDIF را فهرست می‌کند، اما هیچ عبارات سوئیچ، و هیچ توابع یا رویه ای با پارامترها یا متغیرهای محلی یا لوکال وجود ندارد، و همچنین فقط GOSUBدر زیر برنامه‌ها در دسترس نیست. برنامه‌های نمونه به جای WHILE از Goto استفاده می‌کنند.
  5. ASIC کار دیوید ویستی است و کامپایلر او کد "تقریبا بیسیک" را می‌گیرد و آن را به یک فایل اجرایی بسیار کوچک کامپایل می‌کند. بایگانی‌شده در نوامبر ۴, ۲۰۱۵ توسط Wayback Machine, بخش برنامه‌نویس‌ها: TIPI: یک زبان برنامه‌نویسی کوچک برای Small Comp، نوشته کنت پترسون
  6. ASIC, مکان مجیک کد با AC Hunter (برنامه کامپیوتری) (بر روی دیسک) (ارزیابی)، توسط جورج کمپبل، محاسبه شده! شماره ۱۲۶ / فوریه ۱۹۹۱ / صفحه 86