Cobra | |
---|---|
clase de idioma |
multi- paradigma : orientado a objetos |
Apareció en | 2006 |
Autor | Chuck Esterbrook |
extensión de archivo | .cobra |
Liberar | 0.9.6 ( 23 de diciembre de 2013 ) |
sistema de tipos | inferencia de tipos estática , estricta , dinámica |
Implementaciones principales | .NET Framework , Mono |
sido influenciado | Python , Eiffel , C# , Objective-C , D |
Licencia | MIT |
Sitio web | cobra-language.com |
Cobra es un lenguaje de programación orientado a objetos de alto nivel y propósito general. Diseñado por Chuck Esterbrookpara plataformas .NET y Mono . La sintaxis del lenguaje se basa en la sintaxis de Python , usando sangría para resaltar sintácticamente bloques de código. El lenguaje admite escritura tanto estática como dinámica , soporte de programación por contrato y pruebas unitarias integradas . Tiene la capacidad de utilizar expresiones lambda , cierres , expresiones de lista y generadores . Cobra permite un desarrollo rápido y un alto rendimiento [1] .
La implementación del lenguaje Cobra es de código abierto , lanzado bajo la licencia MIT el 29 de febrero de 2008, lo que permite el uso y la modificación gratuitos del código.
Cobra proporciona un mecanismo para documentar el código DocString.
class Utils shared def countChars ( s as String , c as char ) as int """ Devuelve el número de caracteres c en la cadena s. """ count = 0 for ch in s if ch == c count += 1 return countLe permite verificar la corrección de una clase, propiedad o método en particular del código fuente del programa.
class Utils shared def countChars ( s as String , c as char ) as int """ Devuelve el número de caracteres c en string s """ test assert Utils . countChars ( '' , c 'x' ) == 0 afirmar Utils . countChars ( 'x' , c 'x' ) == 1 afirmar Utils . countChars ( 'X' , c 'x' ) == 0 afirmar Utils . countChars ( ' ! ! ' , c '!' ) == 2 recuento de cuerpos = 0 for ch in s if ch == c recuento += 1 return recuentoProporciona una entrada válida al componente llamado, lo que ayuda a detectar errores antes, cuando son más fáciles de diagnosticar.
clase Cliente var _contactos como Lista < de Contacto > obtener contactos de var def addContact ( contacto como Contacto ) requiere que el contacto no esté en . contacto contacto . nombre de contacto . el cliente es nulo asegurar el contacto . cliente == esto . contactos _ contar == edad . contactos _ conteo + 1 contacto corporal . cliente = este _contactos . agregar ( contacto )Evita errores de puntero nulo en tiempo de ejecución en muchos casos. En Cobra, se puede pasar nulo si se permite un tipo anulable: un solo sufijo de signo de interrogación (?).
class Foo def bar ( s as String ? ) if s # igual que "if s is not nil" print Utils . contarCaracteres ( s , c 'x' )Cobra ha sido influenciado por muchos lenguajes de programación:
Hola mundo ejemplo:
class Hello def main print '¡Hola, mundo!'Ejemplo de generador de números de Fibonacci:
clase Fib def computar ( contar como int ) como Lista < de int > es lista compartida = Lista < de int > () a , b = 0 , 1 para i en la lista de conteo . agregar ( b ) a , b = b , a + b lista de retorno class Programa def main i = 1 para n en Fib . calcular ( 10 ) imprimir '[i]. [n]' yo += 1Ejemplo de clase:
persona de clase var _nombre como cadena var _edad como int cue init ( nombre como Cadena , edad como int ) _nombre , _edad = nombre , edad def toString as String is override return 'Mi nombre es [_name] y tengo [_age] años'
Lenguajes de programación | |
---|---|
|
.RED | |
---|---|
Implementaciones | |
Arquitectura | |
Infraestructura | |
Idiomas de Microsoft | |
Otros idiomas | |
Fundamentos de Windows | |
Componentes | |
comparaciones |
|
Tecnologías futuras | |
Recursos informativos |