A++

**A++** — qisqartmasi **abstraksiya+havola+sintez** degan maʼnoni bildiradi. Bu ARS asosidagi dasturlash asosida yaratilgan minimalistik dasturlash tilining nomi sifatida ishlatiladi. ARSga asoslangan dasturlash asosan ARSdan olingan kodlarni istalgan tilda dasturlashda qoʻllashdan iborat boʻlgan dasturlash nomi bilan nomlangan. ARS — bu „Lambda hisobining“ abstraktsiyasi boʻlib, uning uchta asosiy funksiyasini oladi va ularga umumiy maʼno beradi. Shu bilan uchta asosiy dasturlash paradigmalari uchun asos boʻlib xizmat qiladi. Asosiy paradigmalar quyidagilardan iborat: funksional dasturlash, obyektga yo'naltirilgan dasturlash va imperativ dasturlash.

Ushbu maqoladagi texnik matnlar 2004-yilda nashr etilgan *A++ kitobi* 1-nashrining onlayn versiyasidan olingan.  *Dunyodagi eng kichik dasturlash tili A++* kitobining 2-nashri (292 bet) 2018-yilda chop etilgan.

A++ bu dasturlashga qiziqqan *odamlarga dasturlash „*sanʼatining muhim jihatlarini**“** iloji boricha tez va samarali *tushunishga* yordam berish uchun yaratilgan dasturlash tili ham hisoblanadi.

## Tarixi
A++ Georg P. Loczewski va Langendagi Bull's Software-Haus kompaniyasida dasturiy taʼminot ishlab chiqaruvchisi Britain Hamm tomonidan 1996—2002-yillarda oʻrganish vositasi sifatida ishlab chiqilgan. A++ amaliy masalalarni yechishda foydalaniladigan dasturlash tili emas.

A++ ning rivojlanishi Alonzo Churchning „Lambda hisobi“ ga asoslangan va Guy L. Steelening dasturlash tili sxemasi taʼsirida yaratilgan.

A++ real hayot ishlatiladigan boshqa tillarda qoʻllanishi mumkin boʻlgan. Dasturlashning asosiy mohiyati va dasturlash kodlari bilan tanishish uchun samarali vosita boʻlishi uchun moʻljallangan.

## Taʼlimga yoʻnaltirilgan dasturlash tillari
Taʼlim dasturlash tili bu dasturlash tili boʻlib, u asosan oʻrganish vositasi sifatida ishlab chiqilgan boʻlib, u real amaliy dasturlarini yozish vositasida ishlatilmaydi.

*A++, [[Paskal]], [[Schema]] va [[Logo]]larni* taʼlim dasturlash tili turkumiga mansub deb hisoblash mumkin.

## Nashrlar

Birinchi nashr etilgan hujjatlar nemis tilida 2003-yil yanvar oyida „Programmierung pur --- Programmieren fundamental und ohne Grenzen“ („Aralashmagan dasturlash“) sarlavhasi bilan paydo boʻldi (919-bet).

2005-yilda ingliz tilidagi A++ kitobiga „Dunyodagi eng kichik dasturlash tili A++ --- taʼlim tili (242 bet)“ sarlavhasi bilan maqola kitildi..

A++ haqida dunyodagi eng kichik dasturlash tili kitobida tanishtirilgan. Kitob 2004-yil oktyabr oyida Germaniyaning Darmshtadt shahrida ISBN: 3-87820-116-8 ostida nashr etilgan.

Kitobning 2-nashri 2018-yil aprel oyida *Germaniyaning Gamburg* shahridagi *tredition GmbH* nashriyoti tomonidan nashr etilgan.

### Kitobga kiritilgan oʻzgartirishlar
Kitob 2018-yil aprel oyida Germaniyaning Gamburg shahrida *[[GmhH nashriyoti]]* tomonidan toʻldirilgan va qayta nashr etilgan.

## Maqsadi
A++ bu C++ tiliga oʻxshash til boʻlib, uning tarjimoni Scheme, Java, C, C++ va Python tillarida mavjud. A++ dasturlash tillari bilan bir-birini toʻldirib ishlashini va dasturlash boʻyicha boshlangʻich tayyorgarlik uchun ideal muhitni taklif etadi.

## Qatʼiy tamoyillar

* **ARS** (asosiy operatsiyalar)
** *Abstraktsiya*
** *+ Maʼlumot*
** *+ Sintez*
* **Leksik doirasi**
* **Yopish**

## Dastur quyidagi paradigmalarni qoʻllab-quvvatlaydi:

* **Funksional dasturlash**, *(toʻgʻridan-toʻgʻri qoʻllab-quvvatlanadi)*
** (baholanadigan iboralarni yozish),
* **Obyektga yoʻnaltirilgan dasturlash** *(toʻgʻridan-toʻgʻri qoʻllab-quvvatlanadi)*
** (obyektlarga xabarlar yuborish),
* **Imperativ dasturlash** *(toʻgʻridan-toʻgʻri qoʻllab-quvvatlanadi)*
** (bajarilishi kerak boʻlgan bayonotlarni yozish), shu jumladan tuzilmali dasturlash.
* **Mantiqiy dasturlash** *(bilvosita qoʻllab-quvvatlanadi)*
** (qoidalarga asoslangan dasturlash)

## Asosiy xususiyatlari

* **Mantiqiy abstraktsiyalar**
** (toʻgʻri, notoʻgʻri, agar, yoʻq, va, yoki),
* **Raqamli abstraktsiyalar**
** (tabiiy sonlar, nol, succ, pred, qo‘shish, sub, mult),
* **Relyatsion abstraktsiyalar**,
** (equalp, gtp, ltp, gep)
* **Rekursiya**,
* **Roʻyxatlarni yaratish va qayta ishlash**
** (cons, car, cdr, nil, nullp, length, olib tashlash, nth, assoc),
* **Yuqori tartibli funksiyalar**
** (tuzatish, karri, xarita, mapc, map2, filtrlash, joylashishni aniqlash),
* **Operatorlarni sozlash**
** (aʼzo, ittifoq, qoʻshimcha),
* **Iterativ boshqaruv tuzilishi**
** ('whileʼ).

## A++ bilan ilovalarni ishlab chiqish
A++ ning maqsadi real dunyo ehtiyojlariga moʻljallangan ilovalar yozish uchun dasturlash tili sifatida foydalanilmaydi. Shunga qaramay, A++ da oddiy hisobni va kutubxonani boshqarish tizimining obyektga yoʻnaltirilgan ilovalari kabi oddiy amaliy dasturlarni yozish mumkin.

Real amaliy dasturlarini yozish uchun ARS++ tili taqdim etiladi. ARS++ kengaytmasi: *ARS plus Scheme plus Extensions*.

## Manbalar

## Havolalar

* A++ rasmiy veb-sayti
* A++ kitobi (onlayn nashr)
* ARS/ARS++ veb-sayti
* Lambda hisobi va A++