AmbientTalk

Vikipediya, ochiq ensiklopediya

 

AmbientTalk
Paradigmalari object-oriented (prototype-based), Concurrent, Event-driven, Reflective
Muallifi Tom Van Cutsem, Stijn Mostinckx, Jessie Dedecker, Wolfgang De Meuter
Tuzilgan yili 2006
Operatsion tizim Platform-independent
Litsenziya MIT License
Fayl kengaytmalari .at
Vebsayt http://soft.vub.ac.be/amop
Bunga asos boʻlgan tillar
Smalltalk, Self, Scheme, E, ABCL
Buning asosida tuzilgan tillar
ECMAScript Harmony

AmbientTalk - bu Vrije Universiteit Brussel, Belgiyadagi Dasturlash texnologiyasi laboratoriyasida ishlab chiqilgan eksperimental ob'ektga yoʻnaltirilgan taqsimlangan dasturlash tili. Bu til, birinchi navbatda, mobil maxsus tarmoqlarda oʻrnatilgan dasturlarni yozishga qaratilgan.

AmbientTalk uzluksiz ulanish va kichik infratuzilmaga ega boʻlgan yuqori oʻzgaruvchan tarmoqlarda ishlashi kerak boʻlgan dasturiy taʼminotni yaratishni osonlashtirish uchun yangi til xususiyatlari yoki dasturlash abstraksiyalari bilan tajriba oʻtkazish uchun tajriba platformasi sifatida xizmat qilish uchun moʻljallangan[1]. U Java da amalga oshirilgan boʻlib, u turli platformalarda, jumladan, Androidda ham talqin qilish imkonini beradi. Tarjimon standart kutubxonasi simbioz deb ataladigan Java va AmbientTalk obyektlari oʻrtasida uzluksiz interfeysni ham taʼminlaydi.

Futures va voqea-loop parallelligini qoʻllab-quvvatlashni oʻz ichiga olgan tilning parallellik xususiyatlari aktyor modeliga asoslangan va asosan E dasturlash tilidan foydalanilgan. Tilning ob'ektga yoʻnaltirilgan xususiyatlari Smalltalk (yaʼni bloklarni yopish, kalit soʻzli xabarlar) va Self (prototipga asoslangan dasturlash, xususiyatlar, delegatsiya) kabi tillarda oʻz ifodasini topadi.

Salom Dunyo[tahrir | manbasini tahrirlash]

system.println("Salom dunyo");

"Salom, dunyo!" dastur tilda unchalik axamiyatga ega emas. Biroq, uning tarqatilgan versiyasini koʻrib chiqing:

/* Define types that could be discovered on the network */
deftype Greeter;

def makeGreeter(myName) {
  /* Spawn an actor */
  actor: {
    /* Actors have a separate namespace, include the language futures in it */
    import /.at.lang.futures;

    /* A method that could be called by other greeters */
    def getName(){myName};

    /* Export this actor on the network */
    export: self as: Greeter;
    
    /* Main logic: if we discover another Greeter ... */
    whenever: Greeter discovered: {|other|
      /* Asynchronously get their name, and greet them */
      when: other<-getName()@FutureMessage becomes: {|name|
        system.println("Hello " + name + " from " + myName);
      };
    };
  };
};

/* Spawn 2 actors that will greet each other */
makeGreeter("Alice");
makeGreeter("Bob");

Manbalar[tahrir | manbasini tahrirlash]

  1. Dedecker J., Van Cutsem T., Mostinckx S., D'Hondt T., De Meuter W. Ambient-oriented Programming in AmbientTalk. In “Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP), Dave Thomas (Ed.), Lecture Notes in Computer Science Vol. 4067, pp. 230-254, Springer-Verlag.”, 2006

Havolalar[tahrir | manbasini tahrirlash]