Script.NET - Script.NET

Script.NET
Paradigmamajburiy, meta, stsenariy
TuzuvchiMicrosoft
Matnni yozishdinamik
Platforma.NET Framework
LitsenziyaOzod
Veb-saytwww.protsyk.com/ scriptdotnet
Ta'sirlangan
JavaScript

Script.NET yoki S # a metaprogramma skript funksiyasini ta'minlaydigan til Microsoft .NET ilovalar, ruxsat berish ish vaqti ga o'xshash maxsus funktsiyalarni bajarish VBA yilda Microsoft Office ilovalar. Script.NET sintaksisiga o'xshash JavaScript. Bu .NET dasturlarini sozlash imkonini beradigan sodda va samarali skript tili sifatida yaratilgan. Tilda ish vaqtining haqiqiy tarjimoni mavjud va u qo'shimcha xotirada yig'ilishlar yaratmasdan amalga oshiriladi.

Script.NET ochiq manbali loyihadir.

Metaprogramma xususiyatlari

Script.NET-da maxsus kotirovka operatori mavjud <[ dastur ]> qaytaradigan AST berilgan dastur. Bundan tashqari, joriy dasturning AST-ga. Bilan kirish mumkin prog ob'ekt.

Mana bir misol:

// MessageBox.Show ('Salom') uchun AST yarating; dasturast = <[ MessageBox.Ko'rsatish('Salom'); ]>;// Joriy dastur oxirida ushbu AST-ni qo'shingprog.AppendAst(ast);

The <[ ... ]> operator va prog ob'ektlar Script.NET-ga yangi skriptlarni yaratish yoki mavjud skriptlarni ish vaqtida o'zgartirish imkonini beradi.

Umumlashtirilgan ob'ektlar

Script.NET tarkibiga har qanday turdagi ob'ektlarni boshqarish uchun maxsus "meta" moslamalarni kiritadigan "Mutant ramka" deb nomlangan. U sinflar to'plamidan iborat bo'lib, uning ustiga "DataMutant" klassi joylashgan. Mutant ob'ektining bir necha tamoyillarini amalga oshiradi:

Ta'rif

Mutant - bu barcha xususiyatlarga ega bo'lishi mumkin bo'lgan maxsus ob'ekt (maydonlar, usullar va hk) va har qanday turga aylantirilishi mumkin (yoki har qanday turdagi ob'ektga tayinlangan). Bunday konversiyaning (yoki topshiriqning) semantikasi pragmatik jihatdan shartli hisoblanadi.

Maxsus operator mavjud := mutant yoki umumlashtirilgan topshiriq deb nomlanadi. Uning maqsadi DataMutant maydonlarining qiymatlarini har qanday turdagi ob'ektning tegishli maydonlariga berishdir.

Misol. MObject yaratilishi va ishlatilishi:

 // Ma'lumotlarning mutant ob'ekti yaratish mobj = [ Matn -> "Mutantdan salom" ]; // Qo'shimcha maydonlarni o'rnating mobj{{Yo'q a matn terish xatosi|.}}Yuqori = 0; mobj{{Yo'q a matn terish xatosi|.}}Chapda = 0; // Windows Form ob'ektining mos maydonlarini o'rnating // (Mutant topshiriq) shakl := mobj;

Misollar

Salom Dunyo

 MessageBox.Ko'rsatish('Salom Dunyo!');

Chiqish funktsiyasi bilan pufakchani saralash

a=[17, 0, 5, 3,1, 2, 55];uchun (men=0; men < a.Uzunlik; men=men+1) uchun (j=men+1; j <  a.Uzunlik; j=j+1)   agar (a[men] > a[j] )   {     temp = a[men];      a[men] = a[j];     a[j] = temp;   }s = 'Natijalar:';uchun (men=0; men < a.Uzunlik; men++)  s = s + ',' + a[men];MessageBox.Ko'rsatish(s);

RSS Reader

a = yangi XmlDocument();a.Yuklash('http://www.codeplex.com/scriptdotnet/Project/ProjectRss.aspx'); MessageBox.Ko'rsatish('CodePlex Script.NET RSS ::');har biriga (n yilda a.SelectNodes('/ rss / channel / item / title'))  MessageBox.Ko'rsatish(n.Ichki matn);

Yig'ma

Stack yordamida 20 ta element ishlatilgan Shartnoma bo'yicha loyihalash xususiyati

funktsiya Durang(element)[// 10 ta element bilan cheklash oldindan(men{{Yo'q a matn terish xatosi|.}}Graf < 10 );  post(); o'zgarmas();]{ // men mutatsiyaga uchragan ob'ekt,  // bu holda stack men.Durang(element);}funktsiya Pop()[// Bo'shliqni tekshiring hardik oldindan(men{{Yo'q a matn terish xatosi|.}}Graf > 0); post(); o'zgarmas();]{ qaytish men.Pop();}suyakka = yangi Yig'ma<|int|>();// Mutant hardikini yarating// 1. Funksiyalarni o'rnating, stekni bekor qiling {{Not typo |.}} Pushob'ekt=[Durang->Durang,PopCheck->Pop];// 2. Ob'ektni suratga olishob'ekt.Mutatsiya(suyakka);uchun (men=0; men<5; men++)  ob'ekt.Durang(men);Konsol.WriteLine((mag'lubiyat)ob'ekt.PopCheck());

Shuningdek qarang

  • L Sharp - .NET uchun Lispga o'xshash skript tili
  • Boo - .NET platformasi uchun Python Like tili
  • IronPython - shunga o'xshash .NET platformasi uchun Python dasturini amalga oshirish Jython.
  • Nemerle - .NET platformasi uchun yuqori darajadagi til.

Tashqi havolalar