Dasturlash tillarida yozish
Matn yozishning mohiyati
Ishlab chiquvchi o'zgaruvchilarga tayinlagan har qanday belgilar ma'lum bir ma'lumot turiga tegishli bo'lishi kerak: raqamli, string, mantiqiy, identifikatsiya, abstrakt va boshqalar.
Ma'lumotlar turi u bilan qanday harakatlarni amalga oshirish mumkinligini va bu o'zgaruvchilarda qanday ma'lumotlar qayd etilganligini aniqlaydi. Ushbu ajratish mashinaga ishlov beriladigan elektron materialni aniqlash uchun zarurdir. Masalan, raqamli ma'lumotlarga duch kelganda, tizim turli matematik operatsiyalarni bajarish uchun tuzilgan.
Yozish - bu dasturlash tillari kodifikatsiyadagi o'zgaruvchilarni qanday taniydi. Uning turi ma'lumotlar bilan qanday ishlashni aniqlaydi: ishlab chiquvchi turni qo'lda yozishi kerakmi yoki mashina buni o'zi bajaradi; mavjud axborot hajmidan foydalanishda erkinlik bormi va boshqa ko'p narsalar.
Dasturlash tillarining xilma-xilligi va individual xususiyatlari matn terish tizimlarini yaratishni taqozo etdi. Bu ishlab chiquvchilarga muayyan muammolarni hal qilish uchun ma'lum texnologiyalarni to'g'ri qo'llash imkoniyatini beradi.
Eng keng tarqalgan ma'lumotlar turlari:
- Int - butun son;
- string - ma'lumotlar turi "string";
- float — kasrli kasrli sonlar;
- belgi — belgi;
- bool - "to'g'ri" yoki "noto'g'ri" qiymatiga ega bo'lgan mantiqiy ma'lumotlar turi;
- ob'ekt - xususiyatlarni saqlaydigan ma'lumotlar turi.
Bu mavjud ma'lumotlar turlarining to'liq ro'yxatidan uzoqdir. Ular dasturlash tillarida turlicha qo'llaniladi.
Har bir dasturchi matn terishning o'ziga xos xususiyatlarini bilish qiymatini tushunmaydi va tan olmaydi. Biroq, bu mavzu kichik ahamiyatga ega emas, chunki u ishlab chiquvchilarning ishini soddalashtiradi va ularga noaniqliklarni bartaraf etish imkoniyatini beradi. Dasturlash tillarida turli ma'lumotlardan foydalaniladi. Ularni tushunish orqali ishlab chiquvchi kodlashni tezda tushunishi va kompilyator ishlab chiqarishi mumkin bo'lgan xatolarning oldini olishi mumkin.
Har bir dasturlash tili ma'lumotlarni terish bilan ishlashning o'ziga xos nozik tomonlariga ega. Masalan, Java -da ma'lumotlar turini ko'rsatish shart emas, chunki tilning o'zi uni aniqlaydi va keyin uni kerakli signallarga aylantiradi. Java kuchli terilgan tildir. Shuning uchun, agar siz ma'lumotlar turi ma'lumotlarini ko'rsatmasangiz, kod bajarilmaydi.
Har qanday mahorat darajasidagi ishlab chiquvchi ma'lumotlarni yozish usulining asoslarini bilgan holda mos dasturlash tilini tanlashi mumkin.
Shuni ta'kidlash kerakki, matn terish tamoyillarini bilish ishlab chiquvchining dasturiy ta'minot bilan o'zaro munosabatini belgilaydi.
Dasturlash tillarini yozish
Odatda, dasturlash tillari terilgan va yozilmagan deb tasniflanadi.
Tiplanmagan tillarga, masalan, Forth kiradi. Unda barcha ma'lumotlar ixtiyoriy uzunlikdagi bit zanjirlari sifatida qayd etiladi. Forth bilan ishlash ishlab chiquvchilar uchun qiyinroq, chunki kodni o'qiyotganda ma'lumotlar turi har doim ham aniq emas. Shuning uchun unga sharh yozish tavsiya etiladi.
Tiplanmagan dasturlash tillari juda ko'p afzalliklarga ega. Ular har qanday ma'lumotlar bilan harakatlarni amalga oshirishga imkon beradi. Ushbu kod samarali deb hisoblanadi.
O'sish va kamaytirish: dasturlashda foydalanish, mumkin bo'lgan muammolar
Keling, terilgan tillarning asosiy xususiyatlarini ko'rib chiqaylik.
Statik va dinamik yozish
Ushbu turdagi terishlar kompilyator qayta ishlanadigan o'zgaruvchilar turini hisoblash va xatolarni qidirish bosqichida farqlanadi. Bu quyidagi variantlardan biri bo'lishi mumkin:
- kompilyatsiya bosqichi - avval kod mashina tiliga tarjima qilinadi, so'ngra dastur ishga tushirish uchun tayyorlanadi;
- bajarilish bosqichi - kod dastur ishga tushirilgan paytdan boshlab bajariladi.
Statik ma'lumotlarni yozish kompilyatsiya paytida o'zgaruvchining turini o'rnatadi, dinamik yozish esa dasturni bajarish paytida turini o'rnatadi.
Statik tarzda yozilgan dasturlash tili o‘zgaruvchini tekshiradi va unga keyinchalik o‘zgartirib bo‘lmaydigan turni tayinlaydi. Ushbu o'zgaruvchi mavjud bo'lgan barcha kodlar tayinlangan ma'lumotlar turiga yo'naltirilgan harakatlarni o'z ichiga olishi kerak.
Agar koddagi o'zgaruvchining turi bajarilayotgan operatsiyaga mos kelmasa, dastur ishga tushmaydi. Bu statik yozishning muhim afzalligi. Dastur bajarilishidan oldin xatolar aniqlanadi.
Keling, ma'lumotlarni yozishga misol keltiraylik: ishlab chiquvchi o'zgaruvchini avval raqamli tipda, keyin esa satr turida qo'shgan. Bunday holda dastur ishga tushmaydi:
yosh = 27 - ishlab chiquvchi yosh o'zgaruvchisiga 27 qiymatini berdi.
yoshi = "yosh" - xato, chunki statik yozishda ma'lumotlar turini o'zgartirishga ruxsat berilmaydi.
Statik tarzda terilgan tilning afzalliklari orasida ma'lumotlar turini va uning mosligini bir necha marta tekshirishning hojati yo'q. Shunga ko'ra, dasturlar tezroq ishlaydi. Bu dasturlash jarayonini sezilarli darajada tezlashtiradi.
Dinamik yozish, masalan, Python-da, ish vaqtida ma'lumotlar turlarini tekshiradi. Koddagi bir xil o'zgaruvchiga turli xil ma'lumotlar turlari tayinlanishi mumkin. Agar ishlab chiquvchilar o'zgaruvchiga avval raqamli, keyin esa satr turini tayinlagan bo'lsa, dastur ishlaydi. Masalan:
yosh = 27 - dasturchi o'zgaruvchiga 27 qiymatini belgilaydi Bu raqamli ma'lumotlar turi.
yosh = "yosh" - yaxshi. O'zgaruvchi allaqachon satr turi sifatida qabul qilingan.
Dinamik yozish statik terishga qaraganda ancha moslashuvchan, chunki ishlab chiquvchi dasturni bajarishda qabul qiladigan ma'lumotlar turlariga moslasha oladigan algoritm yaratishi mumkin. Shunday qilib, dinamik ravishda terilgan dasturlash tillarining asosiy afzalliklaridan biri shundaki, ular ko'p funktsiyali dasturlarni yozishga imkon beradi.
Dinamik yozishning asosiy afzalligi shundaki, bu tilni yangi boshlanuvchi dasturchi o'rganish juda oson. Bu yangi boshlanuvchilar uchun odatiy bo'lgan xato qilish qo'rquvini yo'q qiladi.
Statik yozishning afzalliklari:
- O'zgaruvchining turi faqat kompilyatsiya vaqtida tekshiriladi. Bu ishlab chiquvchilarga quyidagi afzalliklarni beradi: dastur, masalan, raqamni satr va boshqa noto'g'ri harakatlar bilan ko'paytirishga harakat qilyaptimi yoki yo'qligini doimiy ravishda kuzatib borishning hojati yo'q.
- Amalga oshirish tezligi. Dinamik tarzda yozilgan dasturlash tillari statik terilgan tillarga qaraganda sekinroq.
- Ko'pincha xatolar kompilyatsiya bosqichida aniqlanishi mumkin.
- IDE (Integrated Development Environment) dan foydalangan holda dasturchilar noto'g'ri ma'lumotlar turlarini filtrlash orqali dasturlarni samarali va tez ishlab chiqishlari mumkin.
Dinamik yozishning asosiy afzalliklari:
- Ko'p qirrali to'plamlarni yaratish oson. Bu vazifa tez-tez uchramaydi, lekin dinamik yozish uni eng samarali hal qilishga yordam beradi.
- Umumlashtirish algoritmlarini tuzish qulay. Masalan, massivni saralash. Bundan tashqari, u faqat raqamli o'zgaruvchilar bilan emas, balki satrlar va haqiqiy ma'lumotlar bilan ham bajariladi.
- O'zlashtirish oson. Bunday dasturlash tillari yangi boshlanuvchilar uchun eng mos deb hisoblanadi.
Kuchli va zaif yozish
Zaif terilgan dasturlash tillari mavjud. Ular har xil turdagi o'zgaruvchilarni aralashtirish qobiliyatiga ega. Kod qisqaroq, chunki tilning o'zi ma'lumotlarni o'zgartirishni amalga oshiradi. Biroq, dasturning o'zini qanday tutishi har doim ham aniq emas. Aytaylik, JavaScript-da quyidagi kod yozilishi mumkin:
5 + '6'; // '56'
4 * '3'; // 12
2 + rost;// 3
noto'g'ri - 4;// - 4
Kuchli yozish har xil turdagi o'zgaruvchilarni aralashtirishni oldini oladi. Agar ishlab chiquvchi unga raqamli turni tayinlagan bo'lsa, masalan, kichik harfni qo'shish endi mumkin bo'lmaydi.
foo = "x"
foo = foo + 5
Traceback (eng oxirgi qo'ng'iroq):
Fayl «<pyshell#3>», 1-qator, ?
foo = foo + 5
TypeError: "str" va "int" obyektlarini birlashtirib bo'lmaydi.
O'zgaruvchilarni kuchli terish ishonchliroq, chunki dasturchi barcha operatsiyalarni qo'lda yozadi, ya'ni u kod qanday ishlashining barcha tafsilotlarini tushunadi.
Kuchli yozishning afzalliklari:
- Aniqlik - noto'g'ri ish qilsangiz, mashina xato qiladi.
- Samaradorlik - qat'iy terish bilan barcha o'zgarishlar iloji boricha shaffof tarzda belgilanadi. Shuning uchun dasturchi kodning barcha eng sekin va qimmat bo'limlarini biladi.
- Dasturning barcha nozik tomonlarini bilish . Ishlab chiquvchi uni qo'lda yozadi va har bir operatsiyaning nozik tomonlarini tushunadi.
- Aniqlik - matn terishning ushbu shakli bilan dasturchi qanday ma'lumotlarni o'zgartirayotganini, shuningdek, noaniqliklar qanchalik ehtimoli borligini yaxshi biladi.
Zaif yozishning afzalliklari:
- Aralashtirilgan ma'lumotlar turlari bilan ishlash qulayligi. Masalan, butun sonlar va haqiqiy sonlar.
- Muayyan vazifani bajarishga e'tibor qarating.
- Kodning qisqaligi.
Aniq va yashirin yozish
Statik yoki dinamik, kuchli yoki kuchsiz bo'lishdan tashqari, dasturlash tillari aniq yoki yashirin yozish xususiyatlariga ko'ra tasniflanadi. Bu ma'lumotlar turlarini kodda e'lon qilish kerakligi bilan belgilanadi.
Aniq yozishning asosiy xususiyati shundaki, ishlab chiquvchi darhol hisoblangan ma'lumotlar turlarini va dasturni bajarish paytida qaytarilgan qiymatlarni belgilaydi.
Demak, C dasturlash tilida oʻzgaruvchi qaysi turga mansubligini koʻrsatgan holda yoziladi: int a = 7.
Ishlab chiquvchi dastur arxitekturasini chuqur bilishi kerak. Koddagi o'zgaruvchilar turlarini e'lon qilish juda ko'p vaqtni oladi. Bunday holda, ma'lum bir o'zgaruvchining qiymatini eslab qolishning hojati yo'q, chunki u allaqachon qayd etilgan.
Ishlab chiquvchilar bilvosita kiritilgan tillarda ma'lumotlar turini aniqlamaydilar. Kodni o'zgartirganda kompilyator shunday qiladi.
Shunday qilib, Python tili avtomatik ravishda o'zgaruvchining qiymatini butun son sifatida belgilaydi: x = 7.
To'g'ridan-to'g'ri yoziladigan tilda kodlash aniq terishli tilga qaraganda qisqaroq. Bundan tashqari, u kirish ma'lumotlaridagi o'zgarishlarga qarshilik bilan tavsiflanadi.
Bir qator tillar, agar ishlab chiquvchi buni qilish kerak bo'lsa, o'zgaruvchining turini ko'rsatish imkoniyatini beradi. Bundan tashqari, kompilyator ma'lumotlar turini aniq terishga ega bo'lgan tilda ham aniqlash uchun sozlanishi mumkin.
Aniq yozishning afzalliklari:
- Har bir funktsiya imzoga ega (int add(int, int)), bu uning aniq nima qilishini tezda tushunish imkonini beradi.
- Ishlab chiquvchi dastlab qaysi qiymatlar ma'lum turdagi o'zgaruvchiga mos kelishini yozadi. Ularni eslab qolishning hojati yo'q.
Yashirin yozishning afzalliklari:
- Qisqa kod . Masalan, int add( int x, int y) o'rniga def add(x, y) ni tanlang.
- Tahrirlarga qarshilik . Agar funktsiyadagi vaqtinchalik o'zgaruvchi kirish argumenti bilan bir xil turdagi bo'lsa, ikkinchisini tahrirlashda vaqtinchalik o'zgaruvchining turini o'zgartirish kerak bo'ladi.
Tursiz dasturlash tillarining afzalliklari va kamchiliklari
Tiplanmagan dasturlash tillari, terilganlaridan farqli o'laroq, ixtiyoriy uzunlikdagi bitlar zanjiri sifatida ifodalangan har xil turdagi ma'lumotlar ustida har qanday operatsiyani bajaradi. Bu past darajadagi (Forth, Pascal, Rust) va ezoterik (Brainfuck, HQ9, Piet) dasturlash tillari uchun xosdir. Tiplanmagan tillar kichik turlarga bo'linmaydi. Bir qator kamchiliklarga qaramay, matn terishning ushbu yo'nalishi shubhasiz afzalliklarga ega. Ular orasida:
- Ishlab chiquvchi kodlarni juda past darajada yozish qobiliyatiga ega. Kompilyator xato yaratmaydi yoki ma'lumotlar turini tekshirishni amalga oshirmaydi. Har xil turdagi o'zgaruvchilar ustida har qanday amallarni bajarish mumkin.
- Kod yuqori amaliy samaradorlikni ko'rsatadi.
- Kod shaffof. Agar dasturlash tili ma'lum bo'lsa, u holda har qanday kod dasturchiga tushunarli.
Kamchiliklari:
- Murakkablik . Ko'pincha ro'yxatlar yoki tuzilmalar kabi murakkab qiymatlarni ifodalash kerak. Bu ancha mehnat talab qiladigan jarayon.
- Tekshiruvlar yo'q . Hatto eng nomaqbul harakatlar ham normal hisoblanadi. Masalan, belgidan massivga ko'rsatgichni ayirish. Ushbu harakatni keltirib chiqaradigan xatolar nozik bo'lishi mumkin.
- Past mavhumlik . Turli xil murakkablikdagi ma'lumotlar turlari bilan ishlash farq qilmaydi, bu ishlab chiquvchi uchun ma'lum qiyinchiliklarga olib keladi.
Matn yozishning rivojlanishga ta'siri
Matn yozish jarayonlari dasturchilar ishiga bevosita ta'sir qiladi:
- Qattiq terish dasturlash jarayoniga ijodiy yondashish imkoniyatiga cheklovlar qo'yadi. Bu aniq va oldindan aytib bo'ladigan kodlash.
- Yozishning erkin shakli ijodiy g'oyalarga ega bo'lgan ishlab chiquvchilar uchun javob beradi. Bunday holda, siz juda ehtiyot bo'lishingiz kerak, chunki xatolar ehtimoli katta.
- Statik kodlashni ko'p mehnat talab qiladigan jarayonga aylantiradi, chunki u asosan qo'lda yoziladi.
- Dinamik kodning qisqa va oson o'qilishini ta'minlaydi.
- Tilda yozilgan yordamchi dasturlar statik yozishda tezroq ishlaydi. Dinamik versiyada ma'lumotlar turini tekshirish dasturni ishga tushirish vaqtida sodir bo'ladi. Bu ish jarayonini sekinlashtiradi. Dinamik til varianti kamdan-kam hollarda statikdan tezroq bo'lishi mumkin.
Dasturning tezligiga turli omillar ta'sir qiladi. Ular orasida matn terish va uning dasturlash tillarida bajaradigan funktsiyalari muhim rol o'ynaydi.
Foydalanilgan manba:gb.ru