Lenguaje de Programación F Sharp

F#
Información sobre la plantilla
Parte de la familia .NET, Multiparadigma
Lenguajes.png
Lenguajes de programación
CreadorMicrosoft Research
DesarrolladorMicrosoft
Diseñado porMicrosoft Research
Modelo de desarrolloRAD (Rapid Application Development)
LicenciaApache 2.0
Sitio web
http://research.microsoft.com/fsharp/fsharp.aspx

Lenguaje de Programación F Sharp (F#, pronunciado F Sharp). Es un lenguaje de programación multiparadigma, para la plataforma .NET, que incluye la programación funcional y las disciplinas imperativa] y [orientada a objetos. Es una variante del lenguaje de programación ML y es compatible con la implementación Objective Caml. F# fue inicialmente desarrollado por Don Syme de Microsoft Research, pero actualmente está siendo desarrollado por la División de Desarrolladores de Microsoft y ha sido distribuido como un lenguaje totalmente soportado en la plataforma .NET y Visual Studio 2010.

Características del lenguaje

F# es un lenguaje fuertemente tipado que utiliza inferencia de tipos por lo que los tipos no necesitan estar declarados explícitamente por el programador; estos serán deducidos por el compilador durante el proceso de compilación. No obstante, F# también permite la declaración explícita de tipos de datos. Por ser un lenguaje .NET, F# soporta los objetos y tipos de .NET. F# permite programar de una manera que se asemeja más a como pensamos.

Por ejemplo: en la cafetería para pedir un café, nosotros generalmente no le decimos al mesero exactamente los pasos para hacer el café, sólo pedimos un café con ciertas características. Esto permite que tengamos menos espacio para cometer errores, porque simplemente escribimos menos código.

F# combina a su vez la programación orientada a objetos con la funcional, proporcionando la reducción en el número de líneas de código, demandando por tanto, un mayor nivel de abstracción, siendo el lenguaje más compacto de los ofrecidos en .Net. Incorpora entre sus novedades, la posibilidad de escribir código con tuplas y funciones para simplificar el código, lo que facilita la creación de programas con complicados cálculos matemáticos. Con respecto a la programación en paralelo F# muestra particularidades propias del lenguaje que facilitan a su vez la programación asíncrona, haciéndola similar a la programación lineal más habitual. Interesante característica es la relativa a las unidades de medida, permitiendo anotar su punto flotante del código con unidades, como por ejemplo, metros y segundos.

F# tiene un perfil de rendimiento parecido a C#. Sin embargo, tiene un perfil del rendimiento mucho mejor que otros lenguajes sucintos comparables, en especial los lenguajes dinámicos y de scripting. Y, al igual que muchos de los lenguajes dinámicos, F# incluye herramientas que permiten explorar los datos escribiendo fragmentos de programa y ejecutándolos de forma interactiva.

F# admite las construcciones de programación funcional, tales como:

  • Funciones como valores, lo que permite la manipulación flexible de las funciones.
  • Composición y canalización de funciones, lo que permite el encadenamiento de funciones para crear otras nuevas y simplificar la codificación de operaciones sucesivas con datos.
  • Inferencia de tipos, lo que reduce la necesidad de llamar explícitamente a los tipos, sin sacrificar la seguridad de tipos.
  • Generalización automática, lo que promueve la reutilización de código facilitando la escritura de código que funciona con diversos tipos diferentes sin ningún esfuerzo adicional.
  • Compatibilidad con la coincidencia de modelos, lo que simplifica el código condicional complejo, y las uniones discriminadas, que se optimizan para su uso con la coincidencia de modelos.
  • Tipos de colección para trabajar con datos inmutables, incluidos tipos de lista y secuencia.
  • Expresiones lambda, que son importantes para numerosas construcciones de programación funcional.
  • Aplicación parcial de argumentos de función, lo que permite crear implícitamente nuevas funciones a partir de funciones existentes.
  • Expresiones de código delimitadas, una característica que permite manipular las expresiones de F# mediante programación.

Lenguaje de programación multiparadigma

Un lenguaje de programación multiparadigma es el que soporta más de un paradigma de programación. Permite crear programas usando más de un estilo de programación. Al diseñar lenguajes con esta característica se persigue como objetivo permitir a los programadores utilizar el mejor paradigma para cada trabajo, admitiendo que ninguno resuelve todos los problemas de la forma más fácil y eficiente posible.

Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central unívocamente trata de resolver uno o varios problemas claramente delimitados. Entre los tipos de paradigmas de programación más comunes encontramos el Imperativo o por Procedimientos, el Funcional, el Lógico, el Declarativo y el Orientado a Objetos.

Lenguaje de programación ML

ML es un lenguaje de programación de propósito general de la familia de los lenguajes de programación funcional desarrollado finales de los años 1970.

Lenguaje de programación objetive caml

El lenguaje Objective CAML, también llamado Ocaml u O'Caml, es un lenguaje de programación avanzado de la familia de los lenguajes ML. Ocaml admite los paradigmas de programación imperativa, programación funcional y programación orientada a objetos.

Microsoft research

Microsoft Research (MSR) es una división de Microsoft, creada en 1991 para investigar los diversos temas de ciencia de equipo y problemas. Actualmente emplea a personas altamente reconocidas, a expertos en informática, física y matemáticas.

Fuentes