گودل (زبان برنامهنویسی)
زبان برنامهنویسی گودل از نوع برنامهنویسی اعلانی است. این زبان یک زبان همه منظوره است که شیوههای برنامهنویسی آن به صورت برنامهنویسی منطقی است. وابستگی این زبان به تایپ بسیار کم است. نام گذاری ان به خاطر منطقدان بزرگ کورت گودل است.
آینده این زبان
گودل شامل ویژگیهای زیر میباشد:
- گودل از سیستم ماژولار استفاده میکند.
- دقت دلخواه در اعداد صحیح، گویا و ممیز شناور دارد.
- این زبان میتواند محدودیتها بر روی دامنه متناهی اعداد طبیعی و خطی را حل کند.
- در ضمن میتواند از عملیات روی مجموعههای متناهی پشتیبانی کند.
- قوائد محاسبات منعطف و عملیات هرس باعث عمومیت دادن ان به زبانهای برنامهنویسی همزمان منطقی میشود.
گودل یک فرامنطق است که امکانات پشتیبانی از فرابرنامهنویسی را فراهم میکند تا بتوان کارهای تجزیه و تحلیل، تحول، تدوین، تأیید و اشکال زدایی را در میان کارهای دیگر را انجام دهد.
نمونه کد
مدل گودل زیر، مقسوم علیه مشترک دو عدد را بدست میآورد. این کد برای نشان دادن کد گودل است نه این که به صورت بهینه مقسوم علیه مشترک را بدست آورد. خروجی CommonDivisor میگوید که اگر i و j صفر نباشد d مقسوم علیه آن دو است اگر مقدارش بین 1 و مینیمم مقدار i و j و i/j و j/i باشد. خروجی Gcd میگوید که d بزرگترین مقسوم علیه مشترک i و j است در صورتی که مقصوم علیه i و j باشد و eای وجود نداشته باشد که مقسوم علیه مشترک i و j باشد و از d بزرگتر باشد.
MODULE GCD. IMPORT Integers. PREDICATE Gcd: Integer * Integer * Integer. Gcd(i,j,d) <- CommonDivisor(i,j,d) & ~ SOME [e] (CommonDivisor(i,j,e) & e> d). PREDICATE CommonDivisor: Integer * Integer * Integer. CommonDivisor(i,j,d) <- IF (i = 0 \/ j = ۰) THEN d = Max(Abs(i),Abs(j)) ELSE ۱ =<d =<Min(Abs(i),Abs(j)) & i Mod d = ۰ & j Mod d = ۰.