La programación funcional y las arquitecturas multicore: estado del arte
Contenido principal del artículo
Resumen
Descargas
Detalles del artículo
DECLARACIÓN DE ORIGINALIDAD DE ARTÍCULO PRESENTADO
Por medio del presente documento, certifico(amos) que el artículo que se presenta para posible publicación en la revista institucional INGENIO MAGNO del Centro de Investigaciones de Ingeniería Alberto Magno CIIAM de la Universidad Santo Tomás, seccional Tunja, es de mi (nuestra) entera autoría, siendo su contenido producto de mi (nuestra) directa contribución intelectual y aporte al conocimiento.
Todos los datos y referencias a publicaciones hechas están debidamente identificados con su respectiva nota bibliográfica y en las citas que se destacan como tal. De requerir alguna clase de ajuste o corrección, comunicaré(emos) de tal procedimiento con antelación a los responsables de la revista.
Por lo anteriormente expresado, declaro(amos) que el material presentado en su totalidad se encuentra conforme a la legislación aplicable en materia de propiedad intelectual e industrial de ser el caso, y por lo tanto, me(nos) hago (hacemos) absolutamente responsable(s) de cualquier reclamación relacionada a esta.
En caso que el artículo presentado sea publicado, manifiesto(amos) que cedo(emos) plenamente a la Universidad Santo Tomás, seccional Tunja, los derechos de reproducción del mismo.
Citas
Al Zain, A., Trinder, P., Aswad, M., Michaelson, G., Hammond, K. y Berthold, J. (2009). Low-pain, high-gain multicore programming in Haskell. Paper presented at the DAMP’09, Savannah, Georgia, USA.
Aswad, M., Thinder, P. W. y Loidl, H. (2012). Architecture aware parallel programming in glasgow parallel Haskell (GPH). Procedia Computer Science, 9, 1807-1816. Doi: 10.1016/j.procs.2012.04.199
Bailes, P. y Kemp, C. (2004). Obstacles to a totally functional programming style. Paper presented at the 2004 Australian Software Engineering Conference.
Bergstrom, L., Rainey, M., Reppy, J., Shaw,A. y Fluet, M. (2010). Lazy tree splitting. Paper presented at the International Conference on Functional Programming.
Berthold, J., Marlow, S., Hammond, K. y Al Zain, A. (2009). Comparing and optimising parallel Haskell implementations for multicore machines. Paper presented at the 2009 International Conference on Parallel Processing Workshops.
Blelloch, G. E. (1996). Programming parallel algorithms. Communications of the ACM, 39(3), 13. Doi: 10.1145/227234.227246
Bousdira, W., Gava, F., Gesbert, L., Loulergue, F. y Petiot, G. (2010). Functional parallel programming with revised bulk synchronous parallel ML. Paper presented at the Networking and Computing (ICNC), 2010 First International Conference on.
Cerný, D. y Josef, D. (2014). Functional programming languages in computer simulation of electronics circuits. 2014 International Conference on Computational Science and Computational Intelligence, 229-235. Doi: 10.1109/ CSCI.2014.46
Collins, G. y Doug, B. (2011). The snap framework: a web toolkit for Haskell. Recuperado de http://static. googleusercontent.com/media/research.google.com/ en//pubs/archive/37267.pdf
Commercial Users of Functional Programming (CUFP) (2014a). Functional Programming at Verizon OnCue. Recuperado de http://cufp.org./2014/timothy-perrett-functional-programming-at-verizon-oncue.html
Commercial Users of Functional Programming (CUFP) (2014b). Haskell in the Misson Control Domain. Recuperado de http://cufp.org./2014/michael-oswald-haskell-in-the-misson-control-domain.html
Commercial Users of Functional Programming (CUFP) (2014c). Haskell tools for satellite operations. Recuperado de http://cufp.org./2014/bjrn-buckwalter-haskell-tools-for-satellite-operations.html
Chakravarty, M., Leshchinskiy. R., Peyton, S., Keller, G. y Marlow, S. (2007). Data parallel Haskell: a status report. Paper presented at the Workshop on Declarative Aspects of Multicore Programming.
Choppella, V., Kumar, H., Manjula, P. y Viswanath, K. (2012). From high-school algebra to computing through functional programming. Paper presented at the Technology for Education (T4E), 2012 IEEE Fourth International Conference.
Damjanovic, V. y Dragan, D. (2010). Functional programming way to interact with software attacks and vulnerabilities. Third International Conference of Software Testing, Verification, and Validation Workshops, 388- 393. doi: 10.1109/ICSTW.2010.53
Diaz, J., Muñoz-Caro, C. y Niño, A. (2012). A survey of parallel programming models and tools in the multi and many-core era. IEEE Transactions on Parallel and Distributed Systems, 23(8).
Dung, P. y Hansen, M. (2011). From functional programming to multicore parallelism: A case study based on Presburger Arithmetic. Paper presented at the Nordic Workshop on Programming Theory.
Fenwick, M., S,esanker, C., Schiller, M. R., Ellis, H. J., Vyas, J. y Grik, M. R. (2012). An open-source sandbox for increasing the accessibility of functional programming to the bioinformatics and scientific communities. Paper presented at the Ninth International Conference on Information Technology- New Generations. IEEE computer Society.
Gibbons, J. (2015). Functional programming for domain-specific languages. Recuperado de http://www.cs.ox. ac.uk/jeremy.gibbons/publications/fp4dsls.pdf
Glaser, H. y Henderson, P. (1991) Functional programming. Software Engineer’s Reference Handbook. Butterworth, 35/1-35/6.
González, F. (1998). Programación funcional: conceptos y perspectivas. Ingeniería e Investigación, 40, 65-71.
Hansen, M. y Rischel, H. (2013). Functional programming using F#. Cambridge: Cambridge University Press.
Henderson, P. (1986). Functional programming, formal specification, and rapid prototyping. IEEE Transactions on Software Engineering, SE-I2(2), 10.
Hinsen, K. (2009). The promises of Functional Programming. Computing in Science & Engineering, 86-90. Doi: 10.1109/MCSE.2009.129
Hudak, P. (1989). Conception, evolution, and application of functional programming languages. ACM Computing Surveys, 21(3), 359-411.
Hughes, J. (1990). Why functional programming matters. Recuperado de https://www.cs.kent.ac.uk/people/staff/ dat/miranda/whyfp90.pdf
Jones, S., Leshchinskiy, R., Keller, G. y Chakravarty, M. M. (2008). Harnessing the multicores: nested data parallelism in Haskell. Paper presented at the FSTTCS.
Karczmarczuk, L. (1999). Scientific computation and functional programming. Computing in Science and Engineering Magazine, 9.
Läufer, K. y George, K. (2009). The promises of typed, pure, and lazy functional programming: Part II. Recuperado de http://ecommons.luc.edu/cgi/ viewcontent.cgi?article=1022&context=cs_facpubs
Machado, R. (2013). An introduction to lambda calculus and functional programming. 2013 2nd Workshop-School on Theoretical Computer Science, 26-33. Doi: 10.1109/ WEIT.2013.40
Marlow, S. (2012). Parallel and concurrent programming in Haskell. Cambridge: Microsoft Research Ltd.
Meijer, E. (2014). The curse of the excluded middle. Communications of de ACM, 12(4), 50-55.
Muranushi, T. (2012). Paraiso: an automated tuning framework for explicit solvers of partial differential equations. Computational Science & Discovery, 5, 1-40. Doi: 10.1088/1749-4699/5/1/015003
Nelson, B., Archer, J. y Rushton, N. (2014). Easel: purely functional game programming. Paper presented at the SERP 2014.
Nelson, B. y Rushton, N. (2013). Fully automatic parallel programming. Paper presented at the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA).
OCaml.org. (2015). Companies using OCaml. Recuperado de http://ocaml.org/learn/companies.html
Ortiz, S. (2012). Computing trends lead to new programming languages. Computer, 45(7).
Pankratius, V., Schmidt, F. y Garreton, G. (2012). Combining functional and imperative programming for multicore software: An empirical study evaluating Scala and Java. Paper presented at the 34th International Conference on Software Engineering (ICSE).
Perry, A. (2007). System level design with Rosetta. San Francisco: Morgan Kaufmann.
Phan, A.-D. y Hansen, M. (2014). An approach to multicore parallelism using functional programming: A case study based on Presburger Arithmetic. Journal of Logical and Algebraic Methods in Programming, 84(1), 1-17. Doi: 10.1016/j.jlamp.2014.07.002
Reck, F. y Fischer, S. (2009). Towards a parallel search for solutions of non-deterministic computations. Paper presented at the 39th Annual Meeting of the German Informatics Society.
Ren, S. y Nogiec, J. (2008). Developing concurrent applications on emerging multicore platforms. Paper presented at the International Conference on Complex, Intelligent and Software Intensive Systems (CISIS).
Rivoire, S. (2010). A breadth-first course in multicore and manycore programming. Proceedings of the 41st ACM technical symposium on Computer Science education, 214-218. Doi: 10.1145/1734263.1734339
Sivaramakrishnan, K. C. Z., L ; Jagannathan, S. (2014). MultiMLton: Amulticore-aware runtime for standard ML. Journal of Functional Programming, 24(6), 1-62. Doi: 10.1017/S0956796814000161
Slonneger, K. (1995). Formal syntax and semantics of programming languages: a loboratory-based approach. Reading, Massachusetts: Addison-Wesley.
Subramaniam, V. (2014). Functional Programming in Java- Harnessing the Power of Java 8 Lambda Expressions. Dallas, Texas: The Pragmatic Programmers
Thiry, L. y Hassenforder, M. (2013). Surfing with fun. Paper presented at the 2013 International Symposium of Theoretical Aspects of Software Engineering.
Tran, N.-L., Skhiri, S., Lesuisse, A. y Zimányi, E. (2012). AROM: processing big data with data flow graphs and functional pogramming. IEEE 4th International Conference on Cloud Computing Technology and Science, 875-882. Doi: 10.1109/CloudCom.2012.6427487
Vara, A. (2008). Formalizando el proceso de depuraciónen programación funcional paralela y perezosa (tesis de doctorado). Madrid: Universidad Complutense de Madrid.
Veldema, R. y Philippsen, M. (2010). Safe and familiar multi-core programming by means of a hybrid functional and imperative language. Recuperado de http://link. springer.com/chapter/10.1007%2F978-3-642 13374- 9_11#page-2
Vichare, A. (2013). Algorithms, the lambda calculus and programming - An intuitive approach. Resonance, 18(4), 345-367.
Vinoski, S. (2012). The Nitrogen Erlang Web Framework. The Functional Web, 4.
Voellmy, A., Wang, J., Hudak, P. y Yamamoto, K. (2014). Mio: a high-performance multicore IO manager for GHC. Recuperado de http://haskell.cs.yale.edu/wp-content/uploads/2013/08/hask035-voellmy.pdf
Wadler, P. (2001). Monads for functional programming. Computing science. Glasgow: Universidad de Glasgow.
Wampler, D. (2011a). Functional programming for Java developers. Estados Unidos: O’Reilly.
Wampler, D. (2011b). Scala web frameworks: looking beyond lift. The Functional Web, 8.
Winter, V. (2014). Bricklayer: an authentic introduction to the functional programming language SML. Paper presented at the TFPIE 2014.