زبان برنامهنویسی مدارهای مجتمع با کاربرد خاص
زبان برنامهنویسی مدارهای مجتمع با کاربرد خاص (به انگلیسی: Application-specific integrated circuit programming language) یا به اختصار زبان برنامهنویسی ایسیک (به انگلیسی: ASIC programming language)، یک کامپایلر و محیط توسعه یکپارچه برای زیر مجموعه ای از زبان برنامهنویسی بیسیک است. این نرمافزار برای MS-DOS و سیستمهای سازگار به عنوان نرمافزار مشروط منتشر شد. توسط Dave Visti با نرمافزار ۸۰/۲۰ نوشته شده، یکی از معدود کامپایلرهای BASIC بود که بهطور قانونی برای دانلود از بیبیاس در دسترس بود. ASIC اجازه کامپایل یک فایل EXE یا COM را میدهد. یک فایل COM برای برنامه Hello world تعداد ۳۶۰ بایت دارد.[۳]
نویسنده(های) اصلی | Dave Visti |
---|---|
توسعهدهنده(ها) | 80/20 Software[۱] |
انتشار اولیه | before 1993[۲] |
انتشار نهایی | ۵٫۰۰
/ ۱۹۹۴ |
نوشتهشده با | اسمبلی, توربو سی |
سیستمعامل | MS-DOS |
نوع | BASIC |
مجوز | نرمافزار مشروط |
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
جستارهای وابسته
ویرایشمنابع
ویرایش- ↑ IBRARY: Library for the ASIC compiler. Current Version: 3.1...David A. Visti, Catalog - Updated :February 1, 1996, Charon Software
- ↑ ASIC 4.0 - Download
- ↑ ASIC, Area code magic with AC Hunter (computer program) (On Disk) (evaluation), by George Campbell, COMPUTE! ISSUE 126 / FEBRUARY 1991 / PAGE 86
- ↑ در ASIC 3.01 (1991)، کتابچه راهنمای FOR...NEXT, WHILE...WEND و IF...ENDIF را فهرست میکند، اما هیچ عبارات سوئیچ، و هیچ توابع یا رویه ای با پارامترها یا متغیرهای محلی یا لوکال وجود ندارد، و همچنین فقط GOSUBدر زیر برنامهها در دسترس نیست. برنامههای نمونه به جای WHILE از Goto استفاده میکنند.
- ↑ ASIC کار دیوید ویستی است و کامپایلر او کد "تقریبا بیسیک" را میگیرد و آن را به یک فایل اجرایی بسیار کوچک کامپایل میکند. بایگانیشده در نوامبر ۴, ۲۰۱۵ توسط Wayback Machine, بخش برنامهنویسها: TIPI: یک زبان برنامهنویسی کوچک برای Small Comp، نوشته کنت پترسون
- ↑ ASIC, مکان مجیک کد با AC Hunter (برنامه کامپیوتری) (بر روی دیسک) (ارزیابی)، توسط جورج کمپبل، محاسبه شده! شماره ۱۲۶ / فوریه ۱۹۹۱ / صفحه 86