موضوع مقاله: جی (زبان برنامه‌نویسی) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # جی (زبان برنامه‌نویسی) | مقدمه: برای پرهیز از مشکل تکرار کاراکتر مخصوص APL، جی فقط به مجموعه کاراکترهای اسکی پایه‌ای نیازمند است. | ## بخش 1: جی (زبان برنامه‌نویسی) | علاوه بر این، برای حفظ تجزیه و سادگی زبان و برای جبران کمی تنوع کاراکترهای اسکی، بسیاری از کاراکترهایی که در زبان‌های دیگر نیازمند آن هستند که در تعادل نگه داشته شوند (مثل "" `` or <>) در جی به صورت یک نشانه در نظر گرفته می‌شوند. جی یک زبان برنامه‌نویسی آرایه‌ای بسیار مختصر است که اغلب برای برنامه‌نویسی‌های ریاضیاتی و آماری مناسب است؛ مخصوصاً هنگامی که بحث عملیات روی ماتریس باشد. مانند زبان‌های FP/FL، جی از برنامه‌نویسی سطح تابع (که همچنین با نام برنامه‌نویسی تابعی سطح بالا شناخته شده) از ویژگی‌های برنامه‌نویسی نهان پشتیبانی می‌کند. (توجه داشته باشید که برنامه‌نویسی سطح تابع با برنامه‌نویسی تابعی یکسان نیست) برخلاف بسیاری از زبان‌هایی که شیئ گرایی را پشتیبانی می‌کنند، طرح فضای نام سلسله مراتب منعطف جی (جایی که اسامی در یک محل مشخص موجودند) می‌تواند به‌طور مؤثر به عنوان یک چهارچوب برای هر نوع برنامه‌نویسی شیئ گرا مبتنی بر کلاس و نمونه اولیه مورد استفاده قرار گیرد. جی یک زبان برنامه‌نویسی فون نیومن نیست، هر چند می‌تواند از سبک برنامه‌نویسی فون نیومن استفاده کرد. جی قبلاً یک نرم‌افزار منبع بسته بود، اگر چه رایگان و قابل دسترس برای ویندوز و لینوکس بود ولی از مارچ سال ۲۰۱۱، تحت مجوز پروانه عمومی همگانی گنو قرار گرفت. مثال‌ها جی اجازه ترکیب تابع و سبک نقطه آزاد را می‌دهد؛ بنابراین برنامه‌های آن می‌تواند بسیار مختصر و مفید باشند و ابهام داشته باشند. برنامهٔ سلام دنیا در جی عبارت است از: '!Hello, world' این پیاده‌سازی از سلام دنیا یک استفاده سنتی از جی را منعکس می‌کند – برنامه‌ها وارد یک عنصر جی می‌شوند و نتایج عبارات نمایش داده می‌شوند. از آن جا که اسکی عموماً overstrikeها را در یک روش وابسته به ماشین پشتیبانی نمی‌کند و یک نماد تقسیم را شامل نمی‌شود، جی از % برای نمایش تقسیم به عنوان یک تقریب یا یادآور استفاده می‌کند. | ## بخش 2: جی (زبان برنامه‌نویسی) | آنچه در زیر آمده یک برنامه جی برای محاسبه میانگین لیستی از اعداد است: #%/+:=avg avg 1 2 3 4 ۲٫۵ علامت # تعداد عناصر یک آرایه را می‌شمارد. برای مثال ۱ ۰ ۱ ۰ ۱ ۱ ۰ ۰ یک لیست از هشت بیت است؛ و قواعد جداکننده جی که با آن‌ها مانند یک کلمه ساده رفتار می‌کند، از لیست‌هایی با طول دلخواه پشتیبانی می‌شود. rotate ۱ ۰ ۰ ۱ ۱ ۱ ۱ ۱ ۱ ۰ ۱ توجه کنید که جی همچنین از آرایه‌های مراتب بالاتر بیت‌ها نیز پشتیبانی می‌کند. انواع دیگر داده عددی شامل اعداد صحیح، اعداد اعشاری، اعداد مختلط، اعداد صحیح بزرگ و کسر گویا است. مانند بیت‌ها این انواع نیز می‌توانند در لیست‌ها یا آرایه‌های چند بعدی دلخواه قرار بگیرند. اعداد صحیح نیز می‌توانند با استفاده از #:verb به لیست‌هایی از بیت‌ها تبدیل شوند. لیست حروف نیز همچنین با استفاده از قرار دادن چند حروف در کوتیشن مانند 'abcdefg' پشتیبانی می‌شود. عملیات عددی و منطقی روی حروف تعریف نشده‌اند، اما عملیات‌های مجموعه‌ای (مانند چرخش) تعریف شده‌اند. (اگر سمت چپ عملگر> آرگومانی وجود داشته باشد، یک عملگر «کوچک‌تر از» خواهد بود ) این مشابه عملگر& در سی (بدون هیچ آرگومان سمت چپ) می‌شود. | ## بخش 3: جی (زبان برنامه‌نویسی) | از دیدگاه یک برنامه‌نویس جی ،> داده را در یک جعبه قرار می‌دهد و به برنامه‌نویس اجازه می‌دهد تا با یک آرایه از جعبه‌ها کار کند. (می‌توان آن را با جعبه‌های دیگر سر هم کرد، و/ یا نسخه‌های دیگر از روی یک جعبه ساخته شود ). داده‌های نمایش داده شده در جعبه به وسیله جی به گونه‌ای مشابه مدل‌هایی که برخی از مفسرهای SQL جدول نتایج عبارت انتخاب را می‌چیند، است. <۱ ۰ ۰ ۱ ۰ + + |۱ ۰ ۰ ۱ ۰| + + تنها نوع مجموعه ارائه شده در جی آرایه چند بعدی است. بسیاری از الگوریتم‌ها می‌توانند با استفاده از عملگرهایی روی این آرایه‌ها تشریح شوند. برای مثال با لیست ۱٫۰ ۰٫۰ ۱٫۰ ۰٫۰ توسط بیشتر عملگرها دقیقاً مشابه لیست ۱ ۰ ۱ ۰ رفتار می‌شود. جی هم چنین از آرایه‌های عددی خلوت هنگامی که مقادیر غیر صفر و اندیس‌های آن‌ها وجود داشته باشد، پشتیبانی می‌کند. یک شبه نوع دیگر مرتبط با نام که به جای مقدار مشخص می‌شود، یک فایل نگاشت شده در حافظه است. | ## جمع‌بندی | مستندات مستندسازی جی برخلاف بیش تر زبان‌های برنامه سازی دیگر، به صورت یک فرهنگ لغت با معانی که در جی به عنوان نام، فعل، قید، حرف ربط و غیره مشخص می‌شوند، سازماندهی شده‌است.