AErlang at Work

  • Rocco De Nicola
  • Tan Duong
  • Omar Inverso
  • Catia Trubiani
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10139)


AErlang is an extension of the Erlang programming language which is enriched with attribute-based communication. In AErlang, the Erlang send and receive constructs are extended to permit partner selection by relying on predicates over set of attributes. AErlang avoids the limitations of the Erlang point-to-point communication making it possible to model some of the sophisticated interaction features often observed in modern systems, such as anonymity and adaptation. By using our prototype extension, we show how the extended communication pattern can capture non-trivial process interaction in a natural and intuitive way. We also sketch a modelling technique aimed at automatically verifying AErlang systems, and discuss how it can be used to check some key properties of the considered case study.


Model Checker Stable Match Preference List Current Partner Communication Primitive 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



We thank Franco Mazzanti from ISTI-CNR, Pisa for providing valuable insights on modelling in UML and for supporting us in using the UMC framework.


  1. 1.
    Sommerville, I., Cliff, D., Calinescu, R., Keen, J., Kelly, T., Kwiatkowska, M., Mcdermid, J., Paige, R.: Large-scale complex it systems. Commun. ACM 55(7), 71–77 (2012)CrossRefGoogle Scholar
  2. 2.
    Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989)CrossRefGoogle Scholar
  3. 3.
    Hu, Z., Hughes, J., Wang, M.: How functional programming mattered. Nat. Sci. Rev. 2(3), 349–370 (2015)CrossRefGoogle Scholar
  4. 4.
    Blau, S., Rooth, J., Axell, J., Hellstrand, F., Buhrgard, M., Westin, T., Wicklund, G.: AXD 301: a new generation ATM switching system. Comput. Netw. 31(6), 559–582 (1999)CrossRefGoogle Scholar
  5. 5.
    Armstrong, J.: Erlang. Commun. ACM 53(9), 68–75 (2010)CrossRefGoogle Scholar
  6. 6.
    Thompson, S., Cesarini, F.: Erlang programming: a concurrent approach to software development (2009)Google Scholar
  7. 7.
    Abd Alrahman, Y., De Nicola, R., Loreti, M.: On the power of attribute-based communication. In: Albert, E., Lanese, I. (eds.) FORTE 2016. LNCS, vol. 9688, pp. 1–18. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-39570-8_1 CrossRefGoogle Scholar
  8. 8.
    De Nicola, R., Duong, T., Inverso, O., Trubiani, C.:
  9. 9.
    Gale, D., Shapley, L.S.: College admissions and the stability of marriage. Am. Math. Mon. 69(1), 9–15 (1962)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Abd Alrahman, Y., Nicola, R., Loreti, M.: Programming of CAS systems by relying on attribute-based communication. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 539–553. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-47166-2_38 CrossRefGoogle Scholar
  11. 11.
    Iwama, K., Miyazaki, S.: A survey of the stable marriage problem and its variants. In: Proceedings of the International Conference on Informatics Education and Research for Knowledge-Circulating Society (ICKS 2008), pp. 131–136. IEEE Computer Society (2008)Google Scholar
  12. 12.
    Aknine, S., Pinson, S., Shakun, M.F.: An extended multi-agent negotiation protocol. Auton. Agents Multi-Agent Syst. 8(1), 5–45 (2004)CrossRefGoogle Scholar
  13. 13.
    ter Beek, M.H., Fantechi, A., Gnesi, S., Mazzanti, F.: A state/event-based model-checking approach for the analysis of abstract system properties. Sci. Comput. Program. 76(2), 119–135 (2011)CrossRefzbMATHGoogle Scholar
  14. 14.
    Guo, Q., Derrick, J., Benac Earle, C., Fredlund, L.Å.: Model-checking Erlang – a comparison between EtomCRL2 and McErlang. In: Bottaci, L., Fraser, G. (eds.) TAIC PART 2010. LNCS, vol. 6303, pp. 23–38. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-15585-7_5 CrossRefGoogle Scholar
  15. 15.
    D’Osualdo, E., Kochems, J., Ong, C.-H.L.: Automatic verification of Erlang-style concurrency. In: Logozzo, F., Fähndrich, M. (eds.) SAS 2013. LNCS, vol. 7935, pp. 454–476. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-38856-9_24 CrossRefGoogle Scholar
  16. 16.
    Arts, T., Earle, C.B., Derrick, J.: Development of a verified erlang program for resource locking. Int. J. Softw. Tools Technol. Transf. 5(2–3), 205–220 (2004)CrossRefGoogle Scholar
  17. 17.
    Fredlund, L., Svensson, H.: McErlang: a model checker for a distributed functional programming language. In: Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP 2007), October 2007Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Rocco De Nicola
    • 1
  • Tan Duong
    • 2
  • Omar Inverso
    • 2
  • Catia Trubiani
    • 2
  1. 1.IMT - Institute for Advanced StudiesLuccaItaly
  2. 2.Gran Sasso Science InstituteL’AquilaItaly

Personalised recommendations