А++ — қисқартмаси абстраксия+ҳавола+синтез деган маънони билдиради. Бу АРС асосидаги дастурлаш асосида яратилган минималистик дастурлаш тилининг номи сифатида ишлатилади. АРСга асосланган дастурлаш асосан АРСдан олинган кодларни исталган тилда дастурлашда қўллашдан иборат бўлган дастурлаш номи билан номланган. АРС — бу „Ламбда ҳисобининг“ абстракцияси бўлиб, унинг учта асосий функсиясини олади ва уларга умумий маъно беради. Шу билан учта асосий дастурлаш парадигмалари учун асос бўлиб хизмат қилади. Асосий парадигмалар қуйидагилардан иборат: функсионал дастурлаш, обектга ё'налтирилган дастурлаш ва императив дастурлаш.

А++
Файл:А++ лого.пнг
Парадигмалари Функсионал дастурлаш
Обектга ё'налтирилган дастурлаш
Императив дастурлаш
Мантиқий дастурлаш
Тузилган йили 1988 (38 йил аввал) (1988)
Лицензия ГНУ Генерал Публиc Лиcенсе
Файл кенгайтмалари .., .+, .а, .м[1]
Бунга асос бўлган тиллар
Ламбда ҳисоби
Бунинг асосида тузилган тиллар
К

Ушбу мақоладаги техник матнлар 2004-йилда нашр этилган А++ китоби[2] 1-нашрининг онлайн версиясидан олинган.  Дунёдаги энг кичик дастурлаш тили А++ китобининг 2-нашри (292 бет) 2018-йилда чоп этилган[3].

А++ бу дастурлашга қизиққан одамларга дастурлаш „санъатининг муҳим жиҳатларини“ иложи борича тез ва самарали тушунишга ёрдам бериш учун яратилган дастурлаш тили ҳам ҳисобланади.

Тарихи

А++ Георг П. Лоcзеwски ва Лангендаги Булл'с Софтwаре-Ҳаус компаниясида дастурий таъминот ишлаб чиқарувчиси Бритаин Ҳамм томонидан 1996—2002-йилларда ўрганиш воситаси сифатида ишлаб чиқилган[4]. А++ амалий масалаларни ечишда фойдаланиладиган дастурлаш тили эмас.

А++ нинг ривожланиши Алонзо Чурчнинг „Ламбда ҳисоби“ га асосланган ва Гуй Л. Стеэленинг дастурлаш тили схемаси таъсирида яратилган.[5]

А++ реал ҳаёт ишлатиладиган бошқа тилларда қўлланиши мумкин бўлган. Дастурлашнинг асосий моҳияти ва дастурлаш кодлари билан танишиш учун самарали восита бўлиши учун мўлжалланган.

Таълимга йўналтирилган дастурлаш тиллари

Таълим дастурлаш тили бу дастурлаш тили бўлиб, у асосан ўрганиш воситаси сифатида ишлаб чиқилган бўлиб, у реал амалий дастурларини ёзиш воситасида ишлатилмайди.

А++, Паскал, Счема ва Логоларни таълим дастурлаш тили туркумига мансуб деб ҳисоблаш мумкин[6].

Нашрлар

Файл:Умумий дастурлаш схемаси.пнг
А++ дастурлаш тилини бошқа дастурлаш тиллари билан синхронизацияси

Биринчи нашр этилган ҳужжатлар немис тилида 2003-йил январ ойида „Программиэрунг пур --- Программиэрен фундаментал унд оҳне Грензен“ („Аралашмаган дастурлаш“) сарлавҳаси билан пайдо бўлди (919-бет)ИСБН 978-3-87820-108-3[7].

2005-йилда инглиз тилидаги А++ китобига „Дунёдаги энг кичик дастурлаш тили А++ --- таълим тили (242 бет)“ сарлавҳаси билан мақола китилди.ИСБН 978-3-87820-116-8.

А++ ҳақида дунёдаги энг кичик дастурлаш тили китобида таништирилган. Китоб 2004-йил октябр ойида Германиянинг Дармштадт шаҳрида ИСБН: 3-87820-116-8 остида нашр этилган.

Китобнинг 2-нашри 2018-йил апрел ойида Германиянинг Гамбург шаҳридаги тредитион ГмбҲ нашриёти томонидан нашр этилган.

Китобга киритилган ўзгартиришлар

Китоб 2018-йил апрел ойида Германиянинг Гамбург шаҳрида ГмҳҲ нашриёти томонидан тўлдирилган ва қайта нашр этилган[8].

Мақсади

А++ бу C++ тилига ўхшаш тил бўлиб, унинг таржимони Счеме, Жава, C, C++ ва Пйтҳон тилларида мавжуд. А++ дастурлаш тиллари билан бир-бирини тўлдириб ишлашини ва дастурлаш бўйича бошланғич тайёргарлик учун идеал муҳитни таклиф этади.

Қатъий тамойиллар

  • АРС (асосий операциялар)
    • Абстракция
    • + Маълумот
    • + Синтез
  • Лексик доираси
  • Ёпиш

Дастур қуйидаги парадигмаларни қўллаб-қувватлайди:

  • Функсионал дастурлаш, (тўғридан-тўғри қўллаб-қувватланади)
    • (баҳоланадиган ибораларни ёзиш),
  • Обектга йўналтирилган дастурлаш (тўғридан-тўғри қўллаб-қувватланади)
    • (обектларга хабарлар юбориш),
  • Императив дастурлаш (тўғридан-тўғри қўллаб-қувватланади)
    • (бажарилиши керак бўлган баёнотларни ёзиш), шу жумладан тузилмали дастурлаш.
  • Мантиқий дастурлаш (билвосита қўллаб-қувватланади)
    • (қоидаларга асосланган дастурлаш)

Асосий хусусиятлари

  • Мантиқий абстракциялар
    • (тўғри, нотўғри, агар, йўқ, ва, ёки),
  • Рақамли абстракциялар
    • (табиий сонлар, нол, суcc, пред, қўшиш, суб, мулт),
  • Реляцион абстракциялар,
    • (эқуалп, гтп, лтп, геп)
  • Рекурсия,
  • Рўйхатларни яратиш ва қайта ишлаш
    • (cонс, cар, cдр, нил, нуллп, ленгтҳ, олиб ташлаш, нтҳ, ассоc),
  • Юқори тартибли функсиялар
    • (тузатиш, карри, харита, мапc, мап2, филтрлаш, жойлашишни аниқлаш),
  • Операторларни созлаш
    • (аъзо, иттифоқ, қўшимча),
  • Итератив бошқарув тузилиши
    • ('wҳилеъ).

А++ билан иловаларни ишлаб чиқиш

А++ нинг мақсади реал дунё эҳтиёжларига мўлжалланган иловалар ёзиш учун дастурлаш тили сифатида фойдаланилмайди. Шунга қарамай, А++ да оддий ҳисобни ва кутубхонани бошқариш тизимининг обектга йўналтирилган иловалари каби оддий амалий дастурларни ёзиш мумкин.

Реал амалий дастурларини ёзиш учун АРС++ тили тақдим этилади. АРС++ кенгайтмаси: АРС плус Счеме плус Эхтенсионс.

Манбалар

  1. ↑ „А+ Референcе: Аппендих: Қуиcк Референcе“. 2020-йил 24-февралда асл нусхадан архивланган. Қаралди: 2020-йил 6-феврал.
  2. ↑ Герог П. Лоcзеwски. „А++ - Тҳе Смаллест Программинг Лангуаге ин тҳе Wорлд (1ст эдитион)“. СТМВ - С. Тоэче-Миттлер Верлаг. 2021-йил 26-февралда асл нусхадан архивланган. Қаралди: 2018-йил 14-июл.
  3. ↑ Георг П. Лоcзеwски. „А++ - Тҳе Смаллест Программинг Лангуаге ин тҳе Wорлд (2нд аугментед эдитион)“. тредитион ГмбҲ. Қаралди: 2018-йил 14-июл.
  4. ↑ „Оригин оф А++“. Қаралди: 2018-йил 14-июл.
  5. ↑ „Ламбда Cалcулус & А++“ (2003-йил 24-июл). Қаралди: 15-09-2022.
  6. ↑ „А++ -- Интродуcтион“ (2019-йил). Қаралди: 2022-йил 15-сентябр.
  7. ↑ Георг П. Лоcзеwски. „Программиэрунг пур --- Программиэрен фундаментал унд оҳне Грензен' ('Ундилутед Программинг')“. 2019-йил 20-февралда асл нусхадан архивланган. Қаралди: 2018-йил 14-июл.
  8. ↑ „Ҳоме оф А++“ (2018-йил). Қаралди: 2022-йил 15-сентябр.

Ҳаволалар