C# dasturlash tilining tashkil etuvchilari, til alfaviti va leksemasi.
C# dasturlash tilining tashkil etuvchilari - bu murakkab ob'ektni bosqichma-bosqich qurish uchun ishlatiladigan dizayn naqshidir. U murakkab ob'ektning qurilishini uning tasviridan ajratib turadi, shunda bir xil qurilish jarayoni turli xil tasvirlarni yaratishi mumkin. Quruvchilar, ayniqsa, ko'p sonli konfiguratsiyalar yoki ixtiyoriy xususiyatlarga ega bo'lgan ob'ektlar bilan ishlashda foydalidir.
Mana C# da quruvchi naqshining asosiy misoli:
using System;
// Product class
class Pizza
{
public string Dough { get; set; }
public string Sauce { get; set; }
public string Topping { get; set; }
public void Display()
{
Console.WriteLine($"Dough: {Dough}");
Console.WriteLine($"Sauce: {Sauce}");
Console.WriteLine($"Topping: {Topping}");
}
}
// Abstract builder class
abstract class PizzaBuilder
{
protected Pizza pizza = new Pizza();
public abstract void BuildDough();
public abstract void BuildSauce();
public abstract void BuildTopping();
public Pizza GetPizza()
{
return pizza;
}
}
// Concrete builder classes
class HawaiianPizzaBuilder : PizzaBuilder
{
public override void BuildDough()
{
pizza.Dough = "Cross";
}
public override void BuildSauce()
{
pizza.Sauce = "Mild";
}
public override void BuildTopping()
{
pizza.Topping = "Ham and Pineapple";
}
}
class SpicyPizzaBuilder : PizzaBuilder
{
public override void BuildDough()
{
pizza.Dough = "Pan";
}
public override void BuildSauce()
{
pizza.Sauce = "Hot";
}
public override void BuildTopping()
{
pizza.Topping = "Pepperoni and Jalapeno";
}
}
// Director class
class PizzaDirector
{
private PizzaBuilder pizzaBuilder;
public PizzaDirector(PizzaBuilder builder)
{
pizzaBuilder = builder;
}
public void ConstructPizza()
{
pizzaBuilder.BuildDough();
pizzaBuilder.BuildSauce();
pizzaBuilder.BuildTopping();
}
}
// Client code
class Program
{
static void Main(string[] args)
{
PizzaBuilder hawaiianPizzaBuilder = new HawaiianPizzaBuilder();
PizzaBuilder spicyPizzaBuilder = new SpicyPizzaBuilder();
PizzaDirector director = new PizzaDirector(hawaiianPizzaBuilder);
director.ConstructPizza();
Pizza hawaiianPizza = hawaiianPizzaBuilder.GetPizza();
Console.WriteLine("Hawaiian Pizza:");
hawaiianPizza.Display();
director = new PizzaDirector(spicyPizzaBuilder);
director.ConstructPizza();
Pizza spicyPizza = spicyPizzaBuilder.GetPizza();
Console.WriteLine("\nSpicy Pizza:");
spicyPizza.Display();
}
}
Ushbu misolda pizza mahsulot sinfidir. PizzaBuilder - bu mahsulotning turli qismlarini yaratish usullarini taqdim etadigan mavhum quruvchilar sinfidir. HawaiianPizzaBuilder va SpicyPizzaBuilder beton ishlab chiqaruvchi sinflar bo'lib, ular ma'lum turdagi pitssalarni yaratish uchun PizzaBuilder dasturini qo'llaydi. PizzaDirector qurilish jarayonini boshqarish uchun javobgardir. Nihoyat, mijoz kodi har xil turdagi pitssalarni yaratish uchun quruvchi naqshidan qanday foydalanishni ko'rsatadi.
C# tilidagi alifbo:
C# tilidagi alifbo quyidagi belgilardan iborat:
Harflar: A-Z, a-z
Raqamlar: 0-9
Maxsus belgilar:
Arifmetik operatorlar: +, -, *, /, %
Belgilash operatorlari: =, +=, -=, *=, /=, %=
Taqqoslash operatorlari: ==, !=, <, >, <=, >=
Mantiqiy operatorlar: &&, ||, !
Bitli operatorlar: &, |, ^, ~, <<, >>
Boshqa operatorlar: ?, :, ., ,, ;, (), [], {}, <>, #
Boshqa belgilar: $, _, @
Bo'shliqlar: bo'sh joy, tab, yangi qator
C# tilidagi leksemalar:
C# tilida leksema tildagi eng kichik maʼno birligidir. U identifikatorlar, kalit so'zlar, harflar, operatorlar va tinish belgilarini o'z ichiga oladi. C# tilidagi leksemalarning bir nechta misollari:
Identifikatorlar:
O'zgaruvchilar, usullar, sinflar va boshqalar kabi turli xil dastur elementlariga berilgan nomlar.
Misol: int count;, void CalculateTotal();
Kalit so‘zlar:
C# tilida oldindan belgilangan ma'nolarga ega zahiralangan so'zlar.
Misollar: class, int, string, if, else, for, while, return, va hokazo.
Harf:
Ruxsat etilgan qiymatlarni ifodalovchi konstantalar.
Misollar: 123 (butun sonli harf), 3.14 (suzuvchi nuqtali harf), 'a' (belgi harfi), "Salom" (satr harfi), haqiqiy yoki noto'g'ri (mantiqiy harflar) va boshqalar.
Operatorlar:
Operandlar ustida amallarni bajarish uchun foydalaniladigan belgilar.
Misollar: +, -, *, / (arifmetik operatorlar), ==, !=, <, > (taqqoslash operatorlari), &&, ||, ! (mantiqiy operatorlar) va boshqalar.
Tinish belgilari:
Sintaksis va struktura uchun ishlatiladigan belgilar.
Misollar: ; (nuqtali vergul), , (vergul), (, ) (qavslar), {, } (jingalak qavslar), [, ] (kvadrat qavslar) va boshqalar.
Izohlar:
Kodga tushuntirish yozuvlarini qo'shish uchun ishlatiladi.
Misollar: // Bu bir qatorli sharh, /* Bu ko'p qatorli sharh */
Preprotsessor ko'rsatmalari:
Kompilyator uchun ko'rsatmalar.
Misollar: #define, #if, #else, #endif va boshqalar.
C# tilining alifbosi va leksemalarini tushunish C# dasturlarini samarali yozish, tushunish va tuzatish uchun asosdir.
Xulosa
Xulosa qilib aytganda, C# tilining yaratilishi va evolyutsiyasi uning asoschilari, xususan, Anders Xeylsberg va uning Microsoftdagi jamoasining istiqbolli sa'y-harakatlari bilan shakllangan. Ko'pincha C# tilining bosh me'mori hisoblangan Anders Xeylsberg tilning sintaksisi, semantikasi va xususiyatlarini aniqlashda hal qiluvchi rol o'ynadi. Uning tilni loyihalash bo‘yicha katta tajribasi Turbo Paskal va Delphi kabi loyihalar ustida ishlashdan olingan tushunchalar bilan birgalikda C# ning rivojlanishi uchun mustahkam poydevor bo‘ldi.
Hejlsberg bilan bir qatorda iste'dodli muhandislar va til dizaynerlari guruhi C# ni amalga oshirish uchun hamkorlik qildi. Ularning dasturiy ta'minotni ishlab chiqish, kompilyator texnologiyasi va dasturlash tili nazariyasi bo'yicha umumiy tajribasi tilning soddaligi, o'qilishi va mustahkamligini birinchi o'ringa qo'yadigan dizayn tamoyillariga hissa qo'shdi.
C# tilining ta'sis tamoyillari tarqatilgan hisoblash va veb-xizmatlarning paydo bo'layotgan landshafti uchun zamonaviy, komponentlarga asoslangan dasturiy ta'minotni yaratishda ishlab chiquvchilar duch keladigan muammolarni hal qilishga qaratilgan. C++, Java va Visual Basic kabi mavjud tillarning kuchli tomonlarini birlashtirib, axlat yig'ish, delegatlar va xususiyatlar kabi innovatsion xususiyatlarni joriy qilish orqali C# keng doiradagi dastur domenlari uchun mos keladigan ko'p qirrali va kuchli til sifatida paydo bo'ldi.
Bundan tashqari, C# tilini umumiy til infratuzilmasi (CLI) asosida yaratish qarori platformaning mustaqilligi va oʻzaro ishlashini taʼminlab, ishlab chiquvchilarga bir nechta operatsion tizimlar va qurilmalarni muammosiz yoʻnaltirish imkonini berdi.
Anders Xeylsberg boshchiligidagi C# tili asoschilari dasturlash tillari landshaftida o‘chmas iz qoldirdi. O'zlarining qarashlari, tajribalari va hamkorlikdagi sa'y-harakatlari tufayli ular butun dunyo bo'ylab ishlab chiquvchilarga turli xil hisoblash muhitlari uchun murakkab, ishonchli va kengaytiriladigan dasturiy echimlarni yaratish imkoniyatini berishda davom etadigan tilni yaratdilar.
Foydalanilgan adabiyotlar
https://uz.wikipedia.org
https://e-library.namdu.uz
https://uzbekdevs.uz
https://www.texnoman.uz
https://docs.dot-net.uz
|