Til avlodlarini dasturlash - Programming language generations

Dasturlash tillari bir necha tasniflangan dasturlash tili avlodlari. Tarixiy jihatdan ushbu tasnif dasturlash uslublarining kuchayib borayotganligini ko'rsatish uchun ishlatilgan. Keyinchalik yozuvchilar ma'nolarni bir oz o'zgartirdilar, chunki ilgari muhim deb ko'rilgan farqlar hozirgi amaliyot uchun ahamiyatsiz bo'lib qoldi.

Avlodlar

Birinchi avlod (1GL)

Misollar: mashina darajasida dasturlash tillari

Dastlabki dasturlash tili (1GL) bu a mashina darajasida dasturlash tili.[1]

Birinchi avlod (dasturlash) tili (1GL) - bu dasturlash uchun ishlatiladigan mashina darajasidagi tillar bo'lgan dasturlash tillarining guruhlanishi birinchi avlod kompyuterlari. Dastlab, yo'q tarjimon ishlatilgan kompilyatsiya qilish yoki yig'moq birinchi avlod tili. Dasturlashning birinchi avlod ko'rsatmalari old panel kompyuter tizimining kalitlari.

1GL-dagi ko'rsatmalar yaratilgan ikkilik raqamlar, 1s va 0s bilan ifodalangan. Bu tilni mashinani tushunishga moslashtiradi, ammo uni inson dasturchisi tomonidan talqin qilish va o'rganish ancha qiyinlashadi.

Ikkinchi avlod (2GL)

Misollar: assambleya tillari

Ikkinchi avlod dasturlash tili (2GL) - bu toifalarga ajratishning avlodlar uchun usuli assambleya tillari.[1][2][3]

Uchinchi avlod (3GL)

Misollar: C, C ++, C #, Java, ASOSIY, Paskal, Fortran, ALGOL, COBOL

3GL mashinadan ancha mustaqil va dasturchilarga qulayroqdir. Bu ma'lumotlarning umumiy turlarini qo'llab-quvvatlashni takomillashtirish va tushunchalarni kompyuterga emas, balki dasturchiga yoqadigan tarzda ifodalash kabi xususiyatlarni o'z ichiga oladi. Uchinchi avlod tili kompyuterga muhim bo'lmagan tafsilotlarni o'z zimmasiga olish orqali ikkinchi avlod tiliga nisbatan yaxshilanadi. 3GLlar avvalgi avlod tillariga qaraganda mavhumroq va shuning uchun birinchi va ikkinchi avlod hamkasblariga qaraganda yuqori darajadagi tillar sifatida qaralishi mumkin. Birinchi marta 1950-yillarning oxirlarida, Fortran, ALGOL va COBOL erta 3GL-larning namunalari.

Bugungi kunda eng mashhur umumiy maqsadli tillar C, C ++, C #, Java, ASOSIY va Paskal, shuningdek, uchinchi avlod tillari, garchi bu tillarning har birini boshqa zamonaviy xususiyatlarga ko'ra boshqa toifalarga bo'lish mumkin. Ko'pgina 3GL-lar qo'llab-quvvatlanadi tizimli dasturlash. Ko'pchilik qo'llab-quvvatlaydi ob'ektga yo'naltirilgan dasturlash. Bu kabi xususiyatlar ko'pincha 3GL emas, balki tilni tavsiflash uchun ishlatiladi.

To'rtinchi avlod (4GL)

Misollar: SQL, Unix Shell, Oracle hisobotlari, R

4GL tillari juda aniq yo'nalishga ixtisoslashgan dasturlash domenlari.[4][5] 4GL tillari qo'llab-quvvatlashni o'z ichiga olishi mumkin ma'lumotlar bazasi boshqaruv, hisobot yaratish, matematik optimallashtirish, GUI rivojlanishi, yoki veb-ishlab chiqish.

Beshinchi avlod (5GL)

Misollar: OPS5, Merkuriy

Beshinchi avlod dasturlash tili (5GL) har qanday dasturlash tili dan foydalanishni emas, balki dasturga berilgan cheklovlardan foydalangan holda muammolarni echishga asoslangan algoritm dasturchi tomonidan yozilgan.[6] Ko'pchilik cheklovga asoslangan va mantiqiy dasturlash tillar va boshqalar deklarativ tillar beshinchi avlod tillari.

Esa to'rtinchi avlod dasturlash tillari ma'lum dasturlarni tuzish uchun mo'ljallangan, beshinchi avlod tillari kompyuterni ma'lum bir muammoni dasturchisiz hal qilishga majbur qilish uchun mo'ljallangan. Shunday qilib, foydalanuvchi faqat qanday muammolarni hal qilish kerakligi va qanday shartlarni bajarish kerakligi haqida tashvishlanib, ularni hal qilish uchun odatiy yoki algoritmni qanday amalga oshirishni o'ylamasligi kerak. Beshinchi avlod tillari asosan sun'iy intellekt tadqiqot. OPS5 va Merkuriy beshinchi avlod tillarining namunalari,[7] shundayki ICAD, ustiga qurilgan Lisp. KL-ONE bog'liq g'oyaning namunasidir, a ramka tili.

Tarix

"Birinchi avlod" va "ikkinchi avlod" dasturlash tili atamalari "uchinchi avlod" atamasi paydo bo'lishidan oldin ishlatilmagan; dasturlash tillarining dastlabki to'plamlarida ushbu uchta atamaning hech biri eslatilmagan. Uchinchi avlod kompyuter texnologiyalarining joriy qilinishi dasturlash tillarining yangi avlodini yaratish bilan bir vaqtga to'g'ri keldi. Mashinalarda ushbu avlodlar almashinuvi marketingi bir nechta muhim o'zgarishlar bilan bog'liq edi yuqori daraja Quyida muhokama qilingan dasturlash tillari, yuqori darajadagi dasturlash tillari orasida ikkinchi / uchinchi avlod farqiga texnik tarkib beradigan, shuningdek, orqaga qaytish bilan nomlangan mashina kodi tillar kabi birinchi avlod va assambleya tillari kabi ikkinchi avlod.

Dastlab, barcha dasturlash tillari yig'ilishdan yuqori darajadagi "uchinchi avlod ", ammo keyinchalik" atamasi "to'rtinchi avlod "(keyin) yangisini farqlashga harakat qilish uchun kiritilgan deklarativ tillar (kabi Prolog va domenga xos tillar), ular yanada yuqori darajada ishlashni da'vo qilgan va foydalanuvchiga (masalan, tabiiy til darajasida) hatto asl, imperativ yuqori darajadagi tillarga qaraganda ancha yaqin bo'lgan domenda. Paskal, C, ALGOL, Fortran, ASOSIY, va boshqalar.

Yuqori avlod tillarini (avlod va undan keyingi avlodlarni) "avlodlar" tasnifi hech qachon to'liq aniq bo'lmagan va keyinchalik undan voz kechilgan bo'lishi mumkin, aniqroq tasniflashlar keng qo'llaniladigan bo'lib, masalan ob'ektga yo'naltirilgan, deklarativ va funktsional. C sabab bo'ldi C ++ va keyinroq Java va C #, Lisp ga YAQIN, Ada 2012 yilgacha va hatto COBOL dan COBOL 2002 yil, va o'sha "avlod" da ham yangi tillar paydo bo'ldi.

Shuningdek qarang

Adabiyotlar

  1. ^ a b "Kompyuter umidlari, avlod tillari"
  2. ^ Brukshear, J. Glenn. Informatika: umumiy nuqtai (11-nashr). Addison-Uesli. 240-241 betlar. ISBN  0-13-256903-5.
  3. ^ Vass, Peter. "Til avlodlarini dasturlash va paradigmalar dasturlash" (PDF). Arxivlandi asl nusxasi (PDF) 2020-01-29 kunlari.
  4. ^ Tizim fanlari bo'yicha 35-Gavayi xalqaro konferentsiyasi - 1002 Dastur muhandisligi uchun domenga xos tillar Arxivlandi 2011 yil 16-may, soat Orqaga qaytish mashinasi
  5. ^ Ari van Deursen.; Pol Klint; Joost Visser (1998). "Domenga xos tillar: izohli bibliografiya". Arxivlandi asl nusxasi 2009-02-02 da. Olingan 2009-03-15.
  6. ^ Dong, Jielin, ed. (2007). Tarmoq lug'ati. Saratoga, Kalif.: Javvin Technologies, Inc. p. 195. ISBN  9781602670006.
  7. ^ E. Balagurusami, Kompyuter asoslari, Mcgraw Hill Education (Hindiston), 2009 yil, ISBN  978-0070141605, p. 340