O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKASIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALRI UNIVERSITETI Tizimli Dasturlash Bajardi: Jahongir Dadayev Alisher o’g’li Rahbar: Sharipov Bahodir Oqilovich Guruh: 312-20 DIF Toshkent-2024 2 - AMALIY ISH Leksik tahlilchini loyihalashtirish (2 – Variant) Kirish: Leksik analizator vositalari - kiritilgan matnni qayta ishlash va undan ma'no chiqarish uchun foydalaniladigan dasturiy vositalar. Ular dasturiy ta'minotni ishlab chiqish jarayonining muhim qismidir, chunki ular inson tomonidan o'qiladigan kiritish matnini kompyuter dasturlari tomonidan oson tushuniladigan va qayta ishlanadigan shaklga aylantirishga yordam beradi. Leksik analizator vositalari kiritilgan matnni tokenlar deb ataladigan kichikroq bo'laklarga bo'lish va so'ngra ularning ma'nosini aniqlash uchun ushbu tokenlarni tahlil qilish orqali ishlaydi. Bu jarayon tokenlarni kiritilgan matnning sintaksisini belgilaydigan oldindan belgilangan naqshlar yoki qoidalar to'plamiga moslashtirishni o'z ichiga oladi. Leksik analizator vositalari dasturlash tillari uchun kompilyatorlar va tarjimonlarni ishlab chiqishda hamda matn ma'lumotlarini tahlil qilish va tahlil qilishni talab qiluvchi boshqa ilovalarda keng qo'llaniladi. Ular odatda juda moslashtirilgan bo'lib, ishlab chiquvchilarga kirish tilining leksik tuzilishini belgilaydigan qoidalar va muntazam iboralarni belgilashga imkon beradi. Leksik analizatorlardan foydalanish: Leksik analizator vositalaridan ba'zi keng tarqalgan foydalanish quyidagilarni o'z ichiga oladi: Kompilyator va tarjimonni ishlab chiqish: Leksik analizator vositalari ko'pincha dasturlash tillari uchun kompilyator va tarjimonlarni ishlab chiqishda qo'llaniladi. Matnni qayta ishlash: Leksik analizator vositalari qidiruv tizimlari, hujjatlarni boshqarish tizimlari va tabiiy tillarni qayta ishlash kabi turli xil matnlarni qayta ishlash ilovalari uchun ishlatilishi mumkin. Ma'lumotlarni tekshirish: Leksik analizator vositalaridan XML, JSON va CSV kabi turli formatlardagi ma'lumotlarni tekshirish va tahlil qilish uchun foydalanish mumkin. Xavfsizlik: Leksik analizator vositalari dasturiy ta'minotdagi xavfsizlik zaifliklarini aniqlash va oldini olish uchun ishlatilishi mumkin. Domenga xos tillar: Leksik analizator vositalaridan muayyan ilovalar yoki sohalar uchun domenga xos tillarni (DSL) ishlab chiqishda foydalanish mumkin. TOPSHIRIQ 2- Misol S satr, S1 va S2 so’zlar berilgan. Satrda barcha uchrashgan S1 so’zlarni S2 so’zlarga almashtirish dasturini tuzing. Code: public class StringReplacer { public static void main(String[] args) { // Berilgan satr String text = "Bugun havo juda yaxshi. Bugun mening kunim."; // Almashtirish kerak bo'lgan so'zlar String s1 = "Bugun"; String s2 = "Ertaga"; // Satrdagi barcha s1 so'zlarini s2 ga almashtirish String replacedText = text.replaceAll(s1, s2); // Natijani chiqarish System.out.println("Natija: " + replacedText); } } Result: Leksik tahlil uchun code: import java.util.*; public class LexicalAnalyzer { public static void main(String[] args) { // Leksik analiz qilinadigan matn String text = "Bu mening lexikal tahlilchi dasturim."; // Matndan so'zlar ro'yxati String[] words = text.split(" "); // Leksik tahlilchi jadvalini yaratish Map<String, Integer> lexicalTable = new HashMap<>(); // So'zlarni hisobga olish va leksik jadvalga joylash for (String word : words) { if (lexicalTable.containsKey(word)) { int count = lexicalTable.get(word); lexicalTable.put(word, count + 1); } else { lexicalTable.put(word, 1); } } // Natijalarni chiqarish System.out.println("Leksik tahlil natijalari:"); for (Map.Entry<String, Integer> entry : lexicalTable.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } } Result: Xulosa: Ushbu blog dasturiy ta'minotni ishlab chiqishda qo'llaniladigan ba'zi mashhur leksik analizator vositalari haqida umumiy ma'lumot beradi. Unda leksik analizator vositalarining o‘rni va qo‘llanilishi tavsiflanadi, kiritilgan matnni qayta ishlash va undan ma’no chiqarishda ularning ahamiyati yoritiladi. Flex, ANTLR, Pygments, JFlex va Schintilla kabi turli xil vositalar, jumladan, ularning xususiyatlari, afzalliklari va cheklovlari batafsil muhokama qilinadi. Bundan tashqari, biz kompilyator va tarjimonni ishlab chiqish uchun ishlatiladigan RASCAL vositasini muhokama qildik. Xulosa qilib aytganda, ushbu blog dasturiy ta'minotni ishlab chiqishda leksik analizator vositalarining ahamiyati va ular kiritilgan matnni samarali va aniq qayta ishlashni ta'minlashda qanchalik muhimligini ta'kidlaydi. Adabiyotlar: https://sci-hub.se/10.1145/997140.997147 https://caml.inria.fr/pub/docs/oreilly-book/pdf/chap11.pdf https://web.cs.hacettepe.edu.tr/~bbm301/lectures/lecture3_lex.pdf https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3770588 https://www.ijresm.com/Vol.2_2019/Vol2_Iss4_April19/IJRESM_V2_I4_8 4.pdf