Ma'lumotlar tarkibi - Data structure
Yilda Kompyuter fanlari, a ma'lumotlar tuzilishi ma'lumotlarni tashkil qilish, boshqarish va saqlash formatini yaratishga imkon beradi samarali kirish va o'zgartirish.[1][2][3] Aniqrog'i, ma'lumotlar tuzilishi bu to'plamdir ma'lumotlar qiymatlari, ular orasidagi munosabatlar va ma'lumotlarga qo'llanilishi mumkin bo'lgan funktsiyalar yoki operatsiyalar.[4]
Mundarija
1.Foydalanish
2.Amalga oshirish
3.Misollar
4.Tilni qo'llab-quvvatlash
5.Shuningdek qarang
6.Adabiyotlar
7.Bibliografiya
8.Qo'shimcha o'qish
9.Tashqi havolalar
Foydalanish
Ma'lumotlar tuzilmalari asos bo'lib xizmat qiladi mavhum ma'lumotlar turlari (ADT). ADT ma'lumotlar turining mantiqiy shaklini belgilaydi. Ma'lumotlar tarkibi ma'lumotlar turining fizik shaklini amalga oshiradi.[5]
Ma'lumotlar tuzilmalarining har xil turlari har xil turdagi dasturlarga mos keladi, ba'zilari esa aniq vazifalar uchun juda ixtisoslashgan. Masalan, relyatsion ma'lumotlar bazalari odatda foydalanish B daraxti ma'lumot olish uchun indekslar,[6] esa kompilyator dasturlardan odatda foydalaniladi xash jadvallar identifikatorlarni qidirish.[7]
Ma'lumotlar tuzilmalari katta hajmdagi ma'lumotlardan foydalanish uchun katta hajmdagi ma'lumotlarni samarali boshqarish vositasini taqdim etadi ma'lumotlar bazalari va Internetni indeksatsiya qilish bo'yicha xizmatlar. Odatda, samarali ma'lumotlar tuzilmalari samarali loyihalashtirishning kalitidir algoritmlar. Ba'zi rasmiy dizayn usullari va dasturlash tillari dasturiy ta'minotni loyihalashda asosiy tashkil etuvchi omil sifatida algoritmlarni emas, balki ma'lumotlar tuzilmalarini ta'kidlash. Ma'lumotlar tuzilmalari ikkalasida ham saqlangan ma'lumotlarni saqlash va olishni tashkil qilish uchun ishlatilishi mumkin asosiy xotira va ikkilamchi xotira.[8]
Amalga oshirish
Ma'lumotlar tuzilmalari odatda a qobiliyatiga asoslanadi kompyuter a tomonidan ko'rsatilgan xotirani istalgan joyidan olish va saqlash uchun ko'rsatgich- a ni ifodalovchi bit ip xotira manzili, o'zi xotirada saqlanishi va dastur tomonidan boshqarilishi mumkin. Shunday qilib, qator va yozuv ma'lumotlar tuzilmalari ma'lumotlar elementlari manzillarini hisoblash bilan asoslanadi arifmetik amallar, esa bog'langan ma'lumotlar tuzilmalari ma'lumotlar tarkibidagi manzillarni strukturaning o'zida saqlashga asoslangan.
Ma'lumotlar strukturasini amalga oshirish odatda to'plamini yozishni talab qiladi protseduralar ushbu tuzilmaning misollarini yaratadigan va boshqaradigan. Ma'lumotlar strukturasining samaradorligini ushbu operatsiyalardan alohida tahlil qilish mumkin emas. Ushbu kuzatish an nazariy tushunchasini rag'batlantiradi mavhum ma'lumotlar turi, bilvosita unda bajarilishi mumkin bo'lgan operatsiyalar bilan aniqlanadigan ma'lumotlar tuzilishi va ushbu operatsiyalarning matematik xususiyatlari (ularning maydoni va vaqt xarajatlari bilan birga).[9]
Misollar
Asosiy maqola: Ma'lumotlar tuzilmalari ro'yxati
Odatda oddiyroq asosda qurilgan ma'lumotlar tuzilmalarining ko'p turlari mavjud ibtidoiy ma'lumotlar turlari:[10]
An qator - bu ma'lum bir tartibdagi bir qator elementlar, odatda barchasi bir xil (tilga qarab, alohida elementlar yoki barchasi bir xil turga majburlanishi mumkin yoki deyarli har qanday turdagi bo'lishi mumkin). Elementlarga qaysi element zarurligini ko'rsatish uchun butun sonli indeks yordamida kirish mumkin. Oddiy dasturlar massiv elementlari uchun tutashgan xotira so'zlarini ajratadi (lekin bu har doim ham zarurat emas). Massivlar sobit uzunlikda yoki o'lchamlarini o'zgartirishi mumkin.
A bog'langan ro'yxat (shuningdek, faqat chaqirilgan ro'yxat) - bu har qanday tugunning o'zi qiymatga ega bo'lgan va bog'langan ro'yxatdagi keyingi tugunga ishora qiluvchi har qanday turdagi ma'lumotlar elementlarining chiziqli to'plamidir. Bog'langan ro'yxatning massivdan asosiy ustunligi shundaki, qiymatlar har doim samarali tarzda kiritilishi va ro'yxatning qolgan qismini boshqa joyga ko'chirmasdan olib tashlanishi mumkin. Kabi ba'zi boshqa operatsiyalar tasodifiy kirish ma'lum bir elementga nisbatan, ammo ro'yxatlarda massivlarga qaraganda sekinroq.
A yozuv (shuningdek, deyiladi panjara yoki tuzilmaviy) an yig'ilgan ma'lumotlar tuzilishi. Yozuv - bu boshqa qiymatlarni o'z ichiga olgan qiymat, odatda belgilangan son va ketma-ketlikda va odatda nomlar bilan indekslanadi. Yozuvlarning elementlari odatda chaqiriladi dalalar yoki a'zolar.
A birlashma bir qator ruxsat berilgan ibtidoiy turlardan qaysi biri o'z misolida saqlanishi mumkinligini aniqlaydigan ma'lumotlar tuzilmasi, masalan. suzmoq yoki uzun tamsayı. A bilan qarama-qarshi yozuv, unda suzuvchi bo'lishi mumkin va butun son; holbuki birlashmada bir vaqtning o'zida bitta qiymat mavjud. Eng keng a'zoning ma'lumot turini saqlash uchun etarli joy ajratilgan.
A belgilangan birlashma (shuningdek, deyiladi variant, variantli yozuv, kamsitilgan birlashma, yoki uyushmagan birlashma) kengaytirilgan turdagi xavfsizlik uchun uning joriy turini ko'rsatadigan qo'shimcha maydonni o'z ichiga oladi.
An ob'ekt bu ma'lumotlar maydonlarini o'z ichiga olgan ma'lumotlar tuzilmasi, masalan, yozuvlar kabi, har xil usullari ma'lumotlar tarkibida ishlaydigan. Ob'ekt bu taksonomiyadan sinfning xotiradagi nusxasi. Kontekstida ob'ektga yo'naltirilgan dasturlash, yozuvlar sifatida tanilgan oddiy eski ma'lumotlar tuzilmalari ularni narsalardan farqlash.[11]
Bunga qo'chimcha, grafikalar va ikkilik daraxtlar boshqa keng tarqalgan ishlatiladigan ma'lumotlar tuzilmalari.
Tilni qo'llab-quvvatlash
Ko'pchilik assambleya tillari va ba'zilari past darajadagi tillar, kabi BCPL (Asosiy birlashtirilgan dasturlash tili), ma'lumotlar tuzilmalari uchun o'rnatilgan yordam yo'q. Boshqa tomondan, ko'pchilik yuqori darajadagi dasturlash tillari va ba'zi bir yuqori darajadagi yig'ilish tillari, masalan MASM, yozuvlar va massivlar kabi ba'zi ma'lumotlar tuzilmalari uchun maxsus sintaksis yoki boshqa o'rnatilgan yordamga ega bo'ling. Masalan, C (BCPLning to'g'ridan-to'g'ri avlodi) va Paskal tillarni qo'llab-quvvatlash tuzilmalar va vektorlarga qo'shimcha ravishda yozuvlar (bir o'lchovli) massivlar) va ko'p o'lchovli massivlar.[12][13]
Ko'pgina dasturlash tillari ba'zi bir xususiyatlarga ega kutubxona ma'lumotlar tuzilishini amalga oshirishni turli dasturlar tomonidan qayta ishlatilishiga imkon beradigan mexanizm. Zamonaviy tillar odatda eng keng tarqalgan ma'lumotlar tuzilmalarini amalga oshiradigan standart kutubxonalar bilan ta'minlanadi. Bunga misollar C ++ Standart shablon kutubxonasi, Java Collections Framework, va Microsoft .NET Framework.
Zamonaviy tillar ham umuman qo'llab-quvvatlaydi modulli dasturlash, orasidagi ajratish interfeys kutubxona moduli va uni amalga oshirish. Ba'zilar beradi shaffof bo'lmagan ma'lumotlar turlari mijozlarga dastur tafsilotlarini yashirishga imkon beradi. Ob'ektga yo'naltirilgan dasturlash tillari, kabi C ++, Javava Kichik munozarasi, odatda foydalaning sinflar shu maqsadda.
Ko'pgina ma'lum ma'lumotlar tuzilmalari mavjud bir vaqtda bir nechta hisoblash zanjirlariga bir vaqtning o'zida ma'lumotlar strukturasining bitta aniq nusxasiga kirishga imkon beradigan versiyalar.
Ma'lumot turi - Data type
Python 3: standart turdagi ierarxiya
Yilda Kompyuter fanlari va kompyuter dasturlash, a ma'lumotlar turi yoki oddiygina turi ning atributidir ma'lumotlar aytadigan kompilyator yoki tarjimon dasturchi ma'lumotlardan qanday foydalanishni niyat qilganligi. Ko'pgina dasturlash tillari ma'lumotlar bazasining asosiy turlarini qo'llab-quvvatlaydi tamsayı raqamlar (har xil o'lchamdagi), suzuvchi nuqta raqamlar (taxminiy haqiqiy sonlar), belgilar va Mantiqiy moddalar. Ma'lumot turi an qiymatlarini cheklaydi ifodamasalan, o'zgaruvchi yoki funktsiya olishi mumkin. Ushbu ma'lumotlar turi ma'lumotlar ustida bajarilishi mumkin bo'lgan operatsiyalarni, ma'lumotlarning ma'nosini va ushbu turdagi qiymatlarni saqlash usulini belgilaydi. Ma'lumotlar turi an qiymatlari to'plamini beradi ifoda (ya'ni o'zgaruvchan, funktsiya va boshqalar) uning qiymatlarini qabul qilishi mumkin.[1][2]
Mundarija
1.Kontseptsiya
2.Ta'rif
3.Ma'lumot turlarining sinflari
3.1. Ma'lumotlarning ibtidoiy turlari
3.1.1. Mashina ma'lumotlari turlari
3.1.2. Mantiqiy turi
3.1.3. Ro'yxatlar
3.1.4. Raqamli turlari
3.2. Kompozit turlari
3.2.1. Satr va matn turlari
3.3. Ma'lumotlarning mavhum turlari
3.4. Boshqa turlari
3.4.1. Ko'rsatkichlar va ma'lumotnomalar
3.4.2. Funktsiya turlari
3.4.3. Meta turlari
3.4.4. Yordamchi dastur turlari
4. Turli tizimlar
5. Shuningdek qarang
6. Adabiyotlar
7. Qo'shimcha o'qish
8. Tashqi havolalar
Kontseptsiya
Ma'lumot turlari ularni aniqlash, amalga oshirish va ulardan foydalanishning turli usullarini taklif qiladigan tip tizimlarida qo'llaniladi. Turli xil tizimlar turli darajalarni ta'minlaydi turdagi xavfsizlik.
Deyarli barcha dasturlash tillari ma'lumotlar turi tushunchasini aniq o'z ichiga oladi, ammo har xil tillarda turli xil atamalar qo'llanilishi mumkin.
Ma'lumotlarning umumiy turlariga quyidagilar kiradi:
Butun son.
Suzuvchi nuqta raqam.
Belgilar.
Ip.
Mantiqiy.
Masalan, Java dasturlash tili, turi int ning to'plamini ifodalaydi 32-bit butun sonlar -2,147,483,648 dan 2,147,483,647 gacha bo'lgan qiymatlari, shuningdek qo'shish, ayirish va ko'paytirish kabi butun sonlarda bajarilishi mumkin bo'lgan amallar. Boshqa tomondan, rang uchta bo'lishi mumkin bayt qizil, yashil va ko'k ranglarning har birini va rang nomini ifodalovchi qatorni belgilaydi.
Ko'pgina dasturlash tillari, shuningdek, dasturchiga qo'shimcha ma'lumot turlarini aniqlashga imkon beradi, odatda boshqa turdagi bir nechta elementlarni birlashtirib va yangi ma'lumotlar turining amaldagi operatsiyalarini belgilaydi. Masalan, dasturchi yangi ma'lumotlar turini yaratishi mumkin "murakkab raqam"bu haqiqiy va xayoliy qismlarni o'z ichiga oladi. Ma'lumot turi, shuningdek, a-dagi ma'lumotlarni izohlash uchun qo'yilgan cheklovni anglatadi tizim turi, ning vakili, talqini va tuzilishini tavsiflovchi qiymatlar yoki ob'ektlar kompyuter xotirasida saqlanadi. Tip tizimi tekshirish uchun ma'lumotlar turi ma'lumotlaridan foydalanadi kompyuter dasturlarining to'g'riligi ma'lumotlarga kiradigan yoki ularni boshqaradigan.
Statistik ma'lumotlarning aksariyat turlari kompyuter dasturlarida taqqoslanadigan turlarga ega va aksincha, quyidagi jadvalda ko'rsatilgan:
Statistika Dasturlash
haqiqiy qadrli (interval shkalasi) suzuvchi nuqta
haqiqiy qadrli (nisbat ko'lami)
ma'lumotlarni hisoblash (odatda salbiy bo'lmagan) tamsayı
ikkilik ma'lumotlar Mantiqiy
toifadagi ma'lumotlar sanab o'tilgan turi
tasodifiy vektor ro'yxat yoki qator
tasodifiy matritsa ikki o'lchovli qator
tasodifiy daraxt daraxt
Ta'rif
(Parnas, Shore & Weiss 1976 yil) adabiyotda ishlatilgan, ba'zan yashirin ravishda qo'llaniladigan "turdagi" beshta ta'rifni aniqladi. Xulq-atvorni o'z ichiga olgan turlar yanada yaqinroq ob'ektga yo'naltirilgan modellari, holbuki a tizimli dasturlash model kodni o'z ichiga olmaydi va chaqiriladi oddiy eski ma'lumotlar tuzilmalari.
Besh tur:
Sintaktik
Turi shunchaki sintaktik bilan bog'langan yorliq o'zgaruvchan qachon e'lon qilinadi. Bunday turdagi ta'riflar hech qanday ma'lumot bermaydi semantik turlarga ma'no.[tushuntirish kerak]
Vakillik
Turi ibtidoiy turlarning - ko'pincha mashina turlarining tarkibi bo'yicha aniqlanadi.
Vakillik va o'zini tutish
Turi uning vakili va to'plami sifatida aniqlanadi operatorlar ushbu vakolatxonalarni manipulyatsiya qilish.
Qiymat maydoni
Tur - bu o'zgaruvchiga ega bo'lishi mumkin bo'lgan qiymatlar to'plami. Bunday ta'riflar haqida gapirishga imkon beradi (ajratish) kasaba uyushmalari yoki Kartezian mahsulotlari turlari.
Qiymat maydoni va xulq-atvori
Tur - bu o'zgaruvchiga ega bo'lishi mumkin bo'lgan qiymatlar to'plami va funktsiyalari ushbu qiymatlarga tegishli bo'lishi mumkin.
Vakillik nuqtai nazaridan ta'rif ko'pincha imperativ tillarda bajarilgan ALGOL va Paskalkabi qiymat maydoni va xulq-atvori bo'yicha ta'rif yuqori darajadagi tillarda ishlatilgan Simula va CLU.
Ma'lumot turlarining sinflari
Ma'lumotlarning ibtidoiy turlari
Ma'lumotlarning ibtidoiy turlari odatda tilni amalga oshirish uchun o'rnatilgan yoki asosiy bo'lgan turlardir.
Mashina ma'lumotlari turlari
Raqamli elektronikaga asoslangan kompyuterlardagi barcha ma'lumotlar quyidagicha ifodalanadi bitlar (0 va 1 alternativalari) eng past darajada. Ma'lumotlarning eng kichik adreslanadigan birligi odatda a deb nomlangan bitlar guruhidir bayt (odatda oktet, bu 8 bit). Tomonidan qayta ishlangan birlik mashina kodi ko'rsatmalar a deb nomlanadi so'z (2011 yil holatiga ko'ra, odatda 32 yoki 64 bit). Ko'pgina ko'rsatmalar so'zni a deb talqin qiladi ikkilik raqam, shunday qilib, 32 bitli so'z 0 dan 0 gacha bo'lgan raqamlarga imzo qo'yilmagan tamsayı qiymatlarini ko'rsatishi mumkin yoki imzolangan tamsayı qiymatlari ga . Sababli ikkitasini to'ldiruvchi, mashina tili va mashina ko'p hollarda ushbu imzosiz va imzolangan ma'lumotlar turlarini ajratib turishga hojat yo'q.
Suzuvchi nuqta arifmetikasi uchun ishlatiladigan suzuvchi nuqta raqamlari bitdagi so'zlarning boshqacha talqinini qo'llaydi. Qarang Suzuvchi nuqta arifmetikasi tafsilotlar uchun.
Mashina ma'lumotlarining turlari bo'lishi kerak ta'sirlangan yoki mavjud bo'lgan tizimlar yoki past darajadagi dasturlash tillari, apparat ustidan nozik nazoratni amalga oshirish. The C dasturlash tiliMasalan, turli xil kenglikdagi tamsayı turlarini etkazib beradi qisqa va uzoq. Agar maqsadli platformada tegishli mahalliy tur mavjud bo'lmasa, kompilyator ularni mavjud bo'lgan turlardan foydalanib ularni kodga ajratadi. Masalan, agar 16 bitli platformada 32 bitli tamsayı so'ralsa, kompilyator uni indamay ikkita ikkita 16 bitli sonlar qatori sifatida ko'rib chiqadi.
Yuqori darajadagi dasturlashda mashinaning ma'lumotlar turlari ko'pincha yashirin yoki mavhum ta'sir qiladigan bo'lsa, kodni kamroq portativ qiladigan dastur tafsilotlari sifatida. Masalan, umumiy raqamli turi ma'lum bir bit kengligi o'rniga berilgan bo'lishi mumkin.
Mantiqiy turi
The Mantiqiy turi qadriyatlarni ifodalaydi to'g'ri va yolg'on. Faqat ikkita qiymat bo'lishi mumkin bo'lsa-da, samaradorlik sababli ular kamdan-kam hollarda bitta ikkilik raqam sifatida amalga oshiriladi. Ko'pgina dasturlash tillarida aniq mantiqiy tip mavjud emas, buning o'rniga (masalan) 0 ni noto'g'ri va boshqa qiymatlarni haqiqiy deb izohlaydilar, mantiqiy ma'lumotlar tilning mashina tiliga qanday talqin qilinishini mantiqiy tuzilishini anglatadi. Bu holda mantiqiy 0 mantiqqa to'g'ri kelmaydi. Haqiqat har doim nolga teng emas, ayniqsa, mantiqiy 1 deb nomlanadi.
Ro'yxatlar
The sanab o'tilgan turi taqqoslash va tayinlash mumkin bo'lgan, lekin kompyuter xotirasida aniq bir aniq tasavvurga ega bo'lishi shart bo'lmagan alohida qiymatlarga ega; kompilyatorlar va tarjimonlar ularni o'zboshimchalik bilan namoyish etishlari mumkin. Masalan, o'yin kartalarining pastki qismidagi to'rtta kostyum to'rtta sanoqchi bo'lishi mumkin KLUB, DIAMOND, YURAK, SPADE, nomlangan turga tegishli kostyum. Agar o'zgaruvchi bo'lsa V ega deb e'lon qilinadi kostyum uning ma'lumot turi sifatida unga to'rtta qiymatdan birini tayinlash mumkin. Ba'zi dasturlar dasturchilarga sanoq qiymatlariga butun son qiymatlarini berishga yoki hatto ularni butun sonlarga teng ekvivalent sifatida ko'rib chiqishga imkon beradi.
Raqamli turlari
Kabi:
The tamsayı ma'lumotlar turlari yoki "kasr bo'lmagan raqamlar". Salbiy qiymatlarni o'z ichiga olish qobiliyatiga ko'ra sub-typed bo'lishi mumkin (masalan. imzosiz C va C ++ da). Bundan tashqari, oz miqdordagi oldindan belgilangan kichik tiplarga ega bo'lishi mumkin (masalan qisqa va uzoq C / C ++ da); yoki foydalanuvchilarga 1..12 (masalan: Paskal/Ada).
Suzuvchi nuqta ma'lumotlar turlari, odatda qiymatlarni yuqori aniqlikdagi kasr qiymatlari sifatida ifodalaydi (ratsional sonlar, matematik jihatdan), lekin ba'zida chalg'ituvchi tarzda real deb nomlanadi (matematikani uyg'otuvchi) haqiqiy raqamlar). Odatda ularning maksimal qiymatlari va aniqligi bo'yicha oldindan belgilangan chegaralar mavjud. Odatda shaklda ichki saqlanadi a × 2b (qayerda a va b tamsayılar), lekin tanish ko'rinishda ko'rsatiladi o‘nli kasr shakl.
Ruxsat etilgan nuqta ma'lumotlar turlari pul qiymatlarini ifodalash uchun qulaydir. Ular ko'pincha ichki sifatida butun son sifatida amalga oshiriladi va bu oldindan belgilangan chegaralarga olib keladi.
Bignum yoki o'zboshimchalik bilan aniqlik raqamli turlarda oldindan belgilangan chegaralar yo'q. Ular ibtidoiy turlar emas va samaradorlik sababli kamdan-kam qo'llaniladi.
Kompozit turlari
Kompozit turlari bir nechta ibtidoiy turdan kelib chiqqan. Bu bir necha usul bilan amalga oshirilishi mumkin. Ularni birlashtirish usullari deyiladi ma'lumotlar tuzilmalari. Ibtidoiy turni birikma turiga kiritish umuman yangi turga olib keladi, masalan. butun sonli massiv ning boshqa turi tamsayı.
An qator (shuningdek, vektor, ro'yxat, yoki ketma-ketlik) bir qator elementlarni saqlaydi va beradi tasodifiy kirish individual elementlarga. Massiv elementlari odatda bir xil turdagi bo'lishi talab qilinadi (lekin hamma sharoitlarda emas). Massivlar sobit uzunlikda yoki kengaytirilishi mumkin. Massivdagi ko'rsatkichlar odatda tamsayılar bo'lishi talab qilinadi (agar bo'lmasa, bu bo'shashishni an haqida gapirish mumkin assotsiativ qator) ma'lum bir diapazondan (agar bu diapazondagi barcha ko'rsatkichlar elementlarga to'g'ri kelmasa, u a bo'lishi mumkin siyrak qator).
Yozib olish (shuningdek, tuple yoki struct deb ham ataladi) Yozuvlar eng sodda qatorga kiradi ma'lumotlar tuzilmalari. Yozuv - bu boshqa qiymatlarni o'z ichiga olgan qiymat, odatda belgilangan son va ketma-ketlikda va odatda nomlar bilan indekslanadi. Yozuvlarning elementlari odatda chaqiriladi dalalar yoki a'zolar.
Ittifoq. Birlashma turi ta'rifi bir qator ruxsat berilgan ibtidoiy turlardan qaysi biri o'z misolida saqlanishi mumkinligini aniqlaydi, masalan. "suzuvchi yoki uzun tamsayı". A bilan qarama-qarshi yozuv, unda suzuvchi bo'lishi mumkin va butun son; holbuki, birlashmada bir vaqtning o'zida bitta turga ruxsat beriladi.
A belgilangan birlashma (shuningdek, a variant, variant yozuv, diskriminatsiyalangan birlashma yoki ajratilgan birlashma) kengaytirilgan turdagi xavfsizlik uchun uning joriy turini ko'rsatadigan qo'shimcha maydonni o'z ichiga oladi.
A o'rnatilgan bu mavhum ma'lumotlar tarkibi ba'zi bir qadriyatlarni, hech qanday aniqliksiz saqlashi mumkin buyurtmava takrorlanadigan qiymatlar yo'q. Qadriyatlar to'plamlardan olinmaydi, aksincha, "in" yoki "not" mantiqiy ma'nosini olish uchun a'zolik qiymati tekshiriladi.
An ob'ekt yozuvlar kabi bir qator ma'lumotlar maydonlarini, shuningdek ularga kirish yoki o'zgartirish uchun bir qator subproutinalarni o'z ichiga oladi usullari.
Ko'pchilik mumkin, ammo ular yuqorida keltirilgan o'zgarishlarga va birikmalarga moyil. Masalan a bog'langan ro'yxat massiv bilan bir xil ma'lumotlarni saqlashi mumkin, ammo beradi ketma-ket kirish tasodifiy emas va yozuvlar asosida tuzilgan dinamik xotira; munozarali ravishda turdan ko'ra ma'lumotlar tuzilishi o'z-o'zidan, shuningdek, bu keng tarqalgan va aniqdir, chunki uni kompozitsion turlar muhokamasiga kiritish mumkin.
Satr va matn turlari
Kabi:
A belgi, bu ba'zilarning xati bo'lishi mumkin alifbo, raqam, bo'sh joy, tinish belgisi va boshqalar.
A mag'lubiyat, bu belgilar ketma-ketligi. Satrlar odatda so'zlarni va matnlarni ifodalash uchun ishlatiladi, ammo juda ahamiyatsiz bo'lgan barcha holatlarda matn belgilar qatoridan ko'proq narsani o'z ichiga oladi.
Belgilar va mag'lubiyat turlari kabi belgilar to'plamidagi belgilar ketma-ketligini saqlashi mumkin ASCII. Ko'pgina belgilar to'plamiga quyidagilar kiradi raqamlar, kabi raqamli qatorga ega bo'lish mumkin "1234". Biroq, ko'plab tillar bularni raqamli qiymatga tegishli boshqa turga tegishli deb hisoblashadi 1234.
Belgilar va satr turlari talab qilinadigan "kenglik" belgisiga ko'ra har xil kichik tiplarga ega bo'lishi mumkin. Asl 7-bitli keng ASCII cheklangan deb topildi va 8 va 16-bitli to'plamlar bilan almashtirildi, ular lotin bo'lmagan alifbolarni turli xil kodlashi mumkin (masalan, Ibroniycha va Xitoy) va boshqa belgilar. Iplar bir xil dasturlash tilida bo'lsa ham, mos keladigan yoki aniq o'lchamdagi bo'lishi mumkin. Ular, shuningdek, ularning maksimal kattaligi bo'yicha subtiplangan bo'lishi mumkin.
Izoh: satrlar barcha tillarda ibtidoiy ma'lumotlar turi emas. Yilda CMasalan, ular qator belgilaridan tuzilgan.
Ma'lumotlarning mavhum turlari
Ma'lumotlarning aniq namoyish etilishiga mos kelmaydigan har qanday ma'lumotlar turi an mavhum ma'lumotlar turi. Buning o'rniga rasmiy spetsifikatsiya ma'lumotlar turiga asoslangan operatsiyalar uni tavsiflash uchun ishlatiladi. Har qanday amalga oshirish spetsifikatsiya berilgan qoidalarni bajarishi kerak. Ma'lumotlarning mavhum turlari rasmiy ravishda qo'llaniladi semantik va dastur tekshirish va, kamroq qat'iy ravishda dizayn.
Tekshiruvdan tashqari spetsifikatsiya darhol dasturga aylantirilishi mumkin. The OBJ dasturlash tillari oilasi, masalan, ushbu parametr asosida tenglamalar spetsifikatsiya uchun va qayta yozish ularni boshqarish uchun. Algebraik spetsifikatsiya[3] 1980 yilda CS-da tadqiqotning muhim mavzusi va o'sha paytdagi mavhum ma'lumotlar turlari uchun deyarli sinonim edi. Bu matematik asosga ega Umumjahon algebra.[4] Spetsifikatsiya tili faqat tenglamalardan tashqari boshqa formulalarga ruxsat berish orqali yanada aniqroq bo'lishi mumkin.
Odatiy misol - ning ierarxiyasi ro'yxat, sumka va o'rnatilgan ma'lumotlar turlari. Ushbu barcha ma'lumotlar turlari uchta operatsiya bilan e'lon qilinishi mumkin: bekor, bo'sh konteyner quradigan, bitta, bitta elementdan konteyner quradigan va qo'shib qo'ying, bir xil turdagi ikkita konteynerni birlashtiradi. Uchta ma'lumot turi uchun to'liq spetsifikatsiyani quyidagi operatsiyalar bo'yicha quyidagi qoidalar bilan ta'minlash mumkin:
- null chap va o'ng neytral: append (null, A) = A, append (A, null) = A
- ro'yxat uchun qo'shimchalar assotsiativ hisoblanadi: append (append (A, B), C) = append (A, append (B, C)).
- sumkalar kommutativlikni oshiradi: append (B, A) = append (A, B).
- nihoyat, to'plam ham idempotent: ilova (A, A) = A
Ma'lumotlarga kirish ehtimol aniqlanishi mumkin, masalan. a a'zo ushbu konteynerlar uchun funktsiya:
- a'zo (X, bitta (Y)) = tenglik (X, Y)
- a'zo (X, null) = noto'g'ri
- a'zo (X, qo'shimchalar (A, B)) = yoki (a'zo (X, A), a'zo (X, B))
Boshqa turlari
Turlari yuqorida bayon qilingan asosiy turlarga asoslanishi yoki undan kelib chiqishi mumkin. Ba'zi tillarda, masalan, C, funktsiyalari ularning turidan kelib chiqqan turga ega qaytish qiymati.
Ko'rsatkichlar va ma'lumotnomalar
Asosiy maqola: Ma'lumotnoma (informatika)
Kompozitsiyasiz, olingan asosiy tur bu ko'rsatgich, qiymati to'g'ridan-to'g'ri boshqa joyda saqlangan boshqa qiymatga tegishli (yoki "ishora qiladi") ma'lumotlar turi kompyuter xotirasi undan foydalanib manzil. Bu ibtidoiy turdagi ma'lumotnoma. (Kundalik ma'noda, kitobdagi sahifa raqamini boshqasiga taalluqli ma'lumotlar parchasi deb hisoblash mumkin). Ko'rsatkichlar ko'pincha butun songa o'xshash formatda saqlanadi; ammo, qiymati hech qachon yaroqli xotira manzili bo'lmagan ko'rsatgichni o'chirishga yoki "qidirishga" urinish dasturning ishdan chiqishiga olib keladi. Ushbu potentsial muammoni yaxshilash uchun ko'rsatgichlar ular ko'rsatadigan ma'lumotlar turiga alohida tur sifatida qaraladi, hatto asosiy vakolatxonalar bir xil bo'lsa ham.
Funktsiya turlari
Asosiy maqola: Funktsiya turi
Funksiyalarga ham tur berilishi mumkin bo'lsa-da, ushbu maqola sozlamalarida ularning turi ma'lumotlar turi hisoblanmaydi. Bu erda ma'lumotlar farqli o'laroq qaraladi algoritmlar. Dasturlashda funktsiyalar keyingisi bilan chambarchas bog'liqdir. Ammo markaziy sabab ma'lumotlarni umumiy ishlash algoritmlar bo'lishi mumkin ma'lumotlar sifatida namoyish etilgan, masalan. matnli tavsif va ikkilik dasturlar, ma'lumotlar va funktsiyalarning kontrasti o'z chegaralariga ega. Aksincha, funktsiyalar uchun ishlatilishi mumkin ma'lumotlarni kodlashham. Ko'pchilik zamonaviy tipdagi tizimlar funktsiya turlariga jiddiy e'tibor qarating va ko'plab zamonaviy tillar funktsiyalarni quyidagicha tushuntiradi birinchi darajali fuqarolar.
Mavzudan funktsiyalarni kontseptual ravishda chiqarib tashlash, tegishli sohalarda kam uchraydi. Mantiqni taxmin qilish masalan, amal qilishga ruxsat bermaydi miqdoriy ko'rsatkichlar funktsiya va predikat nomlari to'g'risida.
Meta turlari
Asosiy maqola: Metaclass
Ba'zi dasturlash tillari ma'lumotlar turini ma'lumotlar sifatida ifodalaydi, ularga imkon beradi introspection turi va aks ettirish. Aksincha, yuqori tartib tipdagi tizimlar, boshqa turlardan turlarni yaratishga va ularni funktsiyalar orqali o'tkazishga imkon berganda, ular qiymatlar kabi, odatda bazadan qochishadi hisoblash ular bo'yicha qarorlar.
Do'stlaringiz bilan baham: |