{"id":6851,"date":"2019-11-27T08:18:51","date_gmt":"2019-11-27T07:18:51","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=6851"},"modified":"2019-11-28T08:19:29","modified_gmt":"2019-11-28T07:19:29","slug":"i1m2019-de-la-matematica-a-la-maquina","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2019-de-la-matematica-a-la-maquina\/","title":{"rendered":"I1M2019: De la matem\u00e1tica a la m\u00e1quina"},"content":{"rendered":"<p>En la segunda parte de la clase de hoy del curso de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-19\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> se ha comentado c\u00f3mo los se pueden representar los conceptos matem\u00e1ticos en los ordenadores.<\/p>\n<p>Para ello se ha visto c\u00f3mo la definici\u00f3n de factorial se puede definir en distintos paradigmas desde la matem\u00e1tica al c\u00f3digo m\u00e1quina. Las definiciones consideradas han sido<\/p>\n<ul>\n<li>En matem\u00e1ticas<\/li>\n<\/ul>\n<pre lang=\"text\"> \n     n\nn! = \u220f k \n    k=1\n<\/pre>\n<ul>\n<li>En programaci\u00f3n funcional (Haskell).<\/li>\n<\/ul>\n<pre lang=\"haskell\">\nfactorial :: Int -> Int\nfactorial n = product [1..n]\n<\/pre>\n<ul>\n<li>En programaci\u00f3n imperativa (C).<\/li>\n<\/ul>\n<pre lang=\"c\"> \nint factorial(int n)\n{\n    int ret = 1;\n\n    while (n > 1)\n    {\n        ret *= n;\n        n--;\n    }\n\n    return ret;\n}\n<\/pre>\n<ul>\n<li>En ensamblador.<\/li>\n<\/ul>\n<pre lang=\"asm\"> \nfactorial:\n    mov rdi, 1\n\n  .loop:\n    cmp rax, 1\n    jle .done\n\n    imul rdi, rax\n    dec rax\n\n    jmp .loop\n\n  .done:\n    ret\n<\/pre>\n<ul>\n<li>En c\u00f3digo m\u00e1quina.<\/li>\n<\/ul>\n<pre lang=\"text\"> \n48 bf 01 00 00 00 00 00 00 00 48 3d 01 00 00 00 7e 0c 48 0f af f8 48 ff\nc8 e9 ec ff ff ff c3\n<\/pre>\n<p>La exposici\u00f3n se ha basado en el art\u00edculo <a href=\"http:\/\/briansteffens.com\/2017\/02\/20\/from-math-to-machine.html\">From math to machine: translating a function to machine code<\/a> de Brian Steffens.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En la segunda parte de la clase de hoy del curso de Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas se ha comentado c\u00f3mo los se pueden representar los conceptos matem\u00e1ticos en los ordenadores. Para ello se ha visto c\u00f3mo la definici\u00f3n de factorial se puede definir en distintos paradigmas desde la matem\u00e1tica al c\u00f3digo m\u00e1quina&#8230;.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[331],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/6851"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=6851"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/6851\/revisions"}],"predecessor-version":[{"id":6852,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/6851\/revisions\/6852"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=6851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=6851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=6851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}