زبان پردازش داده ها(IPL)

زبان پردازش اطلاعات یک زبان برنامه‌نویسی می‌باشد که در حدود سال ۱۹۵۶ توسط آلن نیوول، کلیف شاو و هربرت الکساندر سیمون درشرکت رند و دانشگاه کارنگی ملون ساخته شد. نیوول وظیفه language specifier-application programmer، شاو وظیفه برنامه‌نویس و سیمون وظیفه application programmer-user را بر عهده داشتند.
برای این زبان ویژگی‌هایی در نظر گرفته شده بود تا به برنامه کمک کند که مشکلات ساده را حل کند مثل یک لیست، مدیریت حافظه، نوع دادهs, توابع بازگشتی، رویه بعنوان ارگومان‌ها، ژنراتورها و چند وظیفه‌ای بدون قبضه‌ای. IPL مفهوم پردازش لیست را اختراع کرد اگرچه در سبک یک زبان اسمبلی بود.
نگاهی به IPL
یک کامپیوتر IPL دارای:
مجموعه‌ای از نمادها است. همه نمادها آدرس‌ها و نام سلول‌ها هستند. بر خلاف نمادها در زبان‌های بعدی نمادها شامل کاراکترهایی از اعداد می‌باشند و نوشته می‌شوند: H1, A29, 9-7, 9-100
سلول‌های اسمی که با یک حرف شروع می‌شوند منطقه‌ای و آدرس مطلق هستند
سلول‌های اسمی که با -۹ شروع می‌شوند محلی هستند و در داخل زمینه لیست مستقل معنی دار می‌باشند، یک لیست ۱–۹ به یک لیست ۱–۹ دیگر وابسته نیست.
نمادهای دیگر (بطور مثال تعداد خالصpure numbers) داخلی هستند.
مجموعه‌ای از سلول‌هااست. لیست‌ها از چندیدن سلول با منابع متقابل ساخته شده‌اند. سلول‌ها دارای چندین فیلد اند:
،a 3 بیت فیلد زمانی برای ساخت کد استفاده می‌شوند که سلول‌ها به عنوان دستورالعمل استفاده شده‌اند و استفاده نمی‌شوند زمانی که سلول‌ها داده‌ها هستند.
Q،a 3 بیت با ارزش فیلد زمانی برای منبع غیر مستقیم استفاده می‌شوند که سلول‌ها به عنوان دستورالعمل استفاده شده‌اند و استفاده نمی‌شوند زمانی که سلول‌ها داده‌ها هستند.
SYMBیک نماد است که در سلول به عنوان ارزش استفاده می‌شود
مجموعه‌ای از پردازش‌های اولیه می‌باشند که در زبان‌های جدید توابع اولیه نامیده می‌شوند.
ساختار داده‌ای IPL لیست است، اما این لیست‌ها بسیار پیچیده‌تر از لیست‌ها در بسیاری از زبان‌های دیگر هستند. یک لیست یک سری نمادهای متصل پیوسته را شامل می‌شود، همان‌طور که انتظار داریم یکسری تعاریف لیست که متصل شده‌اند به لیست‌ها بصورت تک تابع همچون ویژگی‌های متناوبی مثل اسم و ارزش.IPL اصولی را فراهم می‌کند برای دسترسی و تغییر ویژگی‌های اسم و ارزش. به لیست‌های توصیفی نام‌های محلی داده می‌شود (از ۱ تا ۹). بنابراین یک لیست L1 که دارای نمادهای S4 و S5 است نامیده می‌شود و با توجه به ارزش V1 نسبت به صفت A1 شرح داده می‌شود و V2 نسبت به A1 و بصورت زیر ذخیره می‌شود. ۰ نشان دهنده پایان یک لیست، سلول‌هایی که ۱۰۰ و ۱۰۱ و … نامیده می‌شوند به صورت خودکار تولید علامت داخلی هستند که مقادیر بی‌ربط هستند. این سلول‌ها می‌توانند در سراسر حافظه پراکنده باشند؛ فقط L1 است که با استفاده از یک نام منطقه‌ای که باید در سطح جهانی شناخته شده نیاز به اقامت در یک محل خاص دارد.
+ IPL-V لیست ساختار
+ مثال
نام
SYMB
لینک
L1
9-1
100
100
S4
101
101
S5
0
9-1
0
200
200
A1
201
201
V1
202
202
A2
203
203
V2
0
IPL یک زبان اسمبلی برای دستکاری لیست است. آن چند تا سلول دارد که به عنوان ثبت خاص مورد استفاده قرار می‌گیرد، فرضا H1 شمارنده برنامه است فیلد SYMB از H1 نام دستورالعمل فعلی است. اگرچه، H1 به عنوان یک لیست تفسیر است. لینک H1 در شرایط مدرن، یک اشاره گر به پشته تماس است برای مثال زیرروال می‌خواهد تا SYMB از H1 را در این پشته قرار دهد.
H2 یک ایست خالی است. روش‌هایی که نیاز به تخصیص حافظه برای خالی کردن H2 دارد. روش که با حافظه به پایان می‌رسند با قرار دادن در H2. در ورود به یک تابع، لیستی از پارامترهای به H0 داده می‌شود. در خروج نتایج باید در H0 بازگردادنده می‌شود. بسیاری از روش‌ها بازمی‌گرداند یک نتیجه بولی که موفقیت یا شکست را نشان می‌دهد؛ که در H5 قرار می‌گیرد. ده سلول W0 تاW1 برای ذخیره‌سازی‌های کاری دولتی محفوظ هستند. روش‌ها «از نظر اخلاقی موظف» (به قول مقاله CACM) به ذخیره و بازیابی ارزش‌های این سلول‌ها هستند
هشت دستورالعمل وجود دارد، بر اساس ارزش‌های P، پاسخ زیرروال، گذاشتن /برداشتن S به H0، گذاشتن /برداشتن نماد در S به لیست متصل به S، کچی کردن مقادیر در S، انشعاب شرطی. در این دستورالعمل‌ها، S هدف است. S هم ارزش فیلد SYMB است اگر Q = ۰ باشد. یمبل‌های سلول نامیده می‌شوند به وسیله SYMB اگر Q=۱ باشد، یا سمبل‌های درون سلول نامیده می‌شوند توسط سمبل‌های درون سلول بوسیله SYMB اگر Q=۲ باشد. در تمام موارد، اما انشعاب شرطی، فیلدLINK از سلول می‌گوید که کدام آموزش برای عمل بعدی باید اجرا شود.
IPL دارای یک کتابخانه از ۱۵۰ عملیات پایه است. این خدمات عبارتند از عملیات ماننده:
علامت متن برای برابری
پیدا کردن، تنظیم، یا پاک کردن یک ویژگی از یک لیست
قرار دادن نماد بعدی در یک لیست. درج نماد در یک لیست. پاک کردن یا کپی یک لیست کامل.
عملیات‌های ریاضی (بر روی نام نماد).
دستکاری نمادها؛ به عنوان مثال، تست اگر نماد نشان دهنده یک عدد صحیح، یا یک نماد است.
I / O عملیات
«ژنراتور»، که به تکرارکننده و فیلتر در برنامه‌نویسی تابعی مطابقت دارد. به عنوان مثال، یک ژنراتور ممکن است یک لیست از اعداد را قبول و یک لیست را از روی مربع‌هایش تولید کند. ژنراتور می‌تواند توابع مناسب طراحی شده را قبول کند - به شدت، آدرس کد از توابع مناسب طراحی می‌شوند - به عنوان آرگومان.
تاریخچه
IPL در ابتدا برای اینکه نشان دهد که قضایای در مبادی ریاضیات با تلاش بی‌وقفه برتراند راسل و آلفرد نورث وایت‌هد با دست ثابت شده است، در واقع می‌تواند با محاسبه ثابت شوند. با توجه به زندگینامه سیمون «روش‌های زندگی من»، این نرم‌افزار در اصل برای اولین بار توسط شبیه‌سازی دست توسعه داده شد، استفاده از کودکان خود به عنوان عناصر محاسباتی، در حالی که کارت‌ها را به عنوان ثبات‌ها یی که شامل متغیرهای حالت از برنامه است می‌نویسند و نگه می‌دارند.
IPL به اجرای چند برنامه در اوایل هوش مصنوعی، همچنین با نویسندگان مشابه مورد استفاده قرار گرفت: منطق نظریه‌پرداز (۱۹۵۶)، حل‌کننده مشکل‌های عمومی (۱۹۵۷)، و برنامه شطرنج کامپیوتر خود
چندین نسخه از IPL ساخته شد: IPL-I (هرگز اجرا نشد)، IPL-II (1957 برای JOHNNIAC)، IPL-III (وجود اختصار)،
IPL-IV،)IPL-V برای آی بی‌ام ۶۵۰، آی بی‌ام ۷۰۴، آی بی‌ام ۷۰۹۰، و بسیاری دیگر. به طور گسترده‌ای استفاده می‌شود)
IPL-VI.
با این حال لیسپ بجای این زبان، که به مراتب ویژگی‌های قوی‌تری داشت، دستورها ساده‌تر، و به نفع garbage collection، به صورت خودکار جایگزین شد.
لیسپ