برنامهنویسی غیرساختیافته
برنامهنویسی غیر ساخت یافته قدیمیترین پارادایم برنامهنویسی است که قادر به نوشتن الگوریتم برنامهٔ تورینگ کامل است. این برنامهنویسی بعداً با برنامهنویسی تابعی و سپس برنامهنویسی شی گرا ادامه یافت و هر دو این برنامهها به عنوان برنامهنویسی ساخت یافته در نظر گرفته شدند. برنامهنویسی غیر ساخت یافته به خاطر تولید کدهایی که به سختی قابل خواندن بودند (اسپاگتی کد) به شدت مورد نکوهش قرار گرفت و گاهی یک روش بد برای نوشتن پروژههای بزرگ در نظر گرفته شد. اما این نوع برنامهنویسی برای آزادیای که به برنامهنویسان میدهد تحسین شدهاست و با این مقایسه شدهاست که موزارت چگونه موسیقی را نوشتهاست. هر دو زبانهای برنامهنویسی سطح بالا و سطح پایین وجود دارند که به عنوان زبانهای برنامهنویسی غیر ساخت یافتهاستفاده میشوند.
ویژگیها و مفاهیم معمولی
مفاهیم اساسی
یک برنامه در یک زبان غیر ساخت یافته معمولاً شامل دستورهای متوالی منظم است یا جملهها معمولاً هر کدام در یک خط نوشته شدهاند. خطها معمولاً شمارهگذاری شدهاند یا ممکن است که بر چسب داشته باشند. این خاصیت اجازه میدهد که جریان اجرایی برنامه بتواند به هر خط برنامه بپرد. برنامهنویسی غیرساخت یافته مفهوم جریان کنترل اساسی را همانند حلقهها، انشعابات و پرشها معرفی میکند. هرچند که هیچ مفهوم رویه ای در الگوی غیرساخت یافته وجود ندارد، اجازهٔ استفاده از زیرروالها را داریم. برعکس یک رویه، یک زیرروال ممکن است چندین نقطهٔ ورود و خروج داشته باشد و یک پرش مستقیم به زیرروال یا خارج از زیر روال (از نظر فرض علمی) اجازه داده میشود. این انعطاف باعث میشود مفهومی که coroutine (دستور العمل اتصال مجموعهای از ورودیها به مجموعهای از خروجیها) نام داد در اینجا معنی پیدا کند. هیچ مفهومی در مورد متغیرهای محلی در زبانهای برنامهنویسی غیر ساخت یافته (هر چند برای برنامههای اسمبلی رجیسترهای همه منظوره ممکن است همین منظور را پس از ذخیره کردن در ورودی برآورده کنند)، اما برچسبها و متغیرها میتوانند اثر خود را در قسمت محدودی از برنامه بگذارند (برای مثال، تعدادی خط). این معنی را میتوان دریافت که هیچ تغییر متنی هنگام صدا زدن یک زیرروال رخ نمیدهد. پس همه متغیرها ممکن است که مقدار قبلی خود را از فراخوانی قبلی نگه دارند که باعث سخت شدن روش بازگشتی میشود. اما در بعضی نمونههای بازگشتی (که هیچ حالت زیر روالی پس از فراخوانی توابع بازگشتی احتیاج نمیشود) ممکن است. اگر متغیرها به زیر روال بازگشتی اختصاص داده شوند در ورودی زیر روال صریحاً پاک میشوند (یا دوباره با مقدار اصلی خود مقدار دهی میشوند). عمق تو در تو بودن ممکن است محدود به یک یا دو بار باشد.
نوع و گونهٔ داده
زبانهای غیر ساخت یافته اجازه استفاده از نوعهای دادهای اساسی را مثل شمارهها، رشتهها و آرایهها (تعدادی دادهٔ همنوع) میدهند. معرفی آرایهها در زبانهای غیر ساخت یافته یک مرحلهٔ رو به جلو قابل توجه است. فرایند ساخت جریان داده با وجود فقدان نوع دادهای ساختار ممکن است.