рдХрд░рд╕рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ

рд╣реИрд▓реЛ рджреЛрд╕реНрддред


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╣рд░ рд╕рдореНрдорд╛рдирд┐рдд рдХреЛрдбрд░ рдЬрд▓реНрдж рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛, рдЬреЛрдВрд╕ рдкрд╛рд░реНрд╕рд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд▓рд┐рдЦрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирдИ рдирд╡реЛрдиреНрдореЗрд╖реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛рд░рд╛рд╕рд┐рдХ рдореЗрдВ рдЕрдкрдиреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред



рджреБрдирд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рд╣рд░ рд╕рд╛рд▓ рдирдИ рднрд╛рд╖рд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рд▓реЛрдЧреЛрдВ рдкрд░ рдЬреАрди рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдорд░ рдЬрд╛рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдирдИ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд╡рд╛рдЪрд╛рд░ рдЗрддрдиреЗ рдирдП рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рддрдирд╛ рдХрд┐ рдореМрдЬреВрджрд╛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ред


рдХрд╛рд░рд╕реЗрдирд┐рдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рд╣рдо рджреЛрдиреЛрдВ рдорд╛рдиреНрдпрддрд╛рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдереЗ, рдЬреИрд╕реЗ рдХрд┐ рдЬрдВрдЧ, рдЕрдЬрдЧрд░, рд╕реА ++, рд╡реБрд▓реНрдлрд░рд╛рдо рдФрд░ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирдореВрдиреЗ, рдЬреИрд╕реЗ рдбрдХреИрд╕, рдЧреНрд▓рд┐рдВрдХ, рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рдФрд░ рдЕрдиреНрдп, рдЗрддрдирд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдХрдо рдкреНрд░реЗрд░рд┐рдд рдирд╣реАрдВред


рддреЛ, рдЪрд▓рд┐рдП рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЖрдкрдХреЗ рд▓рд┐рдП рд▓рд╛рдП рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рддрд░реАрдХрд╛ рд╣реИред


рд╕рд╣реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕


, , , , ( ) .


:


  • mov, .
  • , strcpy, memmove, .

, :


  • cp, ln.
  • std::copy .

, , , , , , ...


, . . , . - , .


karasic :


42 => answer
foo(42) => answer

, . , .


: - -:



, :


42 => answer = 42

,


, , , , , . karasic , .


<typing:dynamic> //    

fn foo(a,b) //   
{
    a + b => c
    return c
}

fn bar(a:i32,b) //       
{   
    a + b => c
    return c
}

[typing:static] //     
fn fubar(a:i32,b:i32) -> i32 //   
{
    a + b => c : i32
    return c

    //    :
    // a + b => return
    // a + b
}

, - , , ( jit ). , . ( , ).


karasic . , . , , , , , , :




karasic , , , whitespace. , go, , , , , .


karasic !


    a + foo(b) => c // 
    a + foo(b) => c // 

, . . ,


try {
    foo();
}
catch (...) {}

, . . , . -- .



, ( ), karasic .


, try-catch


try {
    throw Exception(42);
} catch ex {
    print(ex.value)
    exit(0)
}

, result-


fn foo() -> result(i32) 
{
    return Exception(42)
}

karasic , , tryso, , , stack_overflow.


tryso {
    throw Exception(42)
}

tryso_explicit, , stack_overflow, .


tryso_explicit {
    throw Exception(42)
}

force_retry, , .


force_retry {
    throw Exception(42)
}


smart_try, , .


smart_try {
    throw casdcasd sdfsadf Exception(42) //     .
}

, shallow_throw(N), N .


shallow_throw(n) Exception(42)

, , - .



. , karasic, , , , - . , karasic O(1). karasic ( ) , , karasic .



, karasic , . , , karasic , . karasic , , .



, . , . .


karasic.



, , , . , , gpu.


, .


, , .


.


, karasic , -, lua, python . karasic .


python:


import python3:numpy as np

fn main() 
{
    np.arange([42,41,40]) => arr
    np.log10(arr)
}

:


import clang:string.h as cstring
import clang:stdlib.h as cstdlib

fn main() 
{
    raw_buffer(cstdlib.malloc(40),40) => buf0
    cstring.strcpy(buf0, "HelloWorld")

    println(buf0) // HelloWorld
}

, , , . , , , , , , .




karasic ,


RFC1149


import rfc1149

fn main() 
{
    rfc1149.datagramm("HelloFriend") => dgramm
    rfc1149.send_bird("-  .12.  ,   ,  17  20.00", dgramm)
}

RFC2795


import rfc2795

fn main() 
{
    rfc2795.monkey("Jonh") => jonh
    rfc2795.monkey("George") => george
    rfc2795.monkey("Stephen") => stephen

    rfc2795.monkey_group([jonh, george]) => jonh_and_george

    "" => sonnet    
    do  
    {
        jonh_and_george.make_sonnet(66) => sonnet
    } while(stephen.do_critic(sonnet) is false)

    println(sonnet)

    /*

    Tired with all these, for restful death I cry,
    As, to behold desert a beggar born,
    And needy nothing trimm'd in jollity,
    And purest faith unhappily forsworn,
    And guilded honour shamefully misplaced,
    And maiden virtue rudely strumpeted,
    And right perfection wrongfully disgraced,
    And strength by limping sway disabled,
    And art made tongue-tied by authority,
    And folly doctor-like controlling skill,
    And simple truth miscall'd simplicity,
    And captive good attending captain ill:

    Tired with all these, from these would I be gone,
    Save that, to die, I leave my love alone. 

    */
}

.



, , . IT . karasic , , , , karasic , . , karasic, Junior Karasic Developer, Middle Karasic Developer, , Senior Karasic Developer.


karasic . , !


, .



(рдЧ) рдХрд╛рд░рд╕рд┐рдХ рдЗрдВрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред


рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░реВрд╕рд┐рдпрди





UPD: рдкрд╛рда рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг


All Articles