Uploaded by java2893

Jahongir Dadayev 2-Topshiriq

advertisement
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
Download