ç§ã¯ããã°ã©ãã³ã°ã奜ãã§ã¯ãããŸããã çµæãå¿
èŠã§ãã
ããã°ã©ãã³ã°ã®ãçµæããäžéã§ããããšã¯æããã§ãã ãã®åŸãã¡ã³ããã³ã¹ããšã©ãŒã®ä¿®æ£ãéçºãè¡ãããŸãããããã£ãŠããã§ã«èšè¿°ãããã³ãŒããåŠçããŸãã ãããã£ãŠãçµæã«ã¯ãåäœäžã®ããã°ã©ã ã ãã§ãªãããã®ãœãŒã¹ã³ãŒããå«ãŸããŸãããã®ã¡ã³ããã³ã¹ã¯ãããé«äŸ¡ã§ãé©åã§ã¯ãªãããåçŽã«ããã®ã³ãŒãã®ããã«ãããŸãã
ããããäž»ãªããšã¯ãããæ©èœãããšããããšã§ãã ãããŠãæ©ããã°æ©ãã»ã©è¯ãã
ã¢ã€ãã¢ãšçµæãåé¢ããã®ã¯ããã°ã©ãã³ã°ã ãã§ãããã®æ¬è³ªã¯ãæèã®æ瀺ãåé¡ã解決ããããžãã¯ãæ©æ¢°åŠçã§ã¢ã¯ã»ã¹å¯èœãªè¡šçŸã§ãã
ã ããããã«ã çŸä»£ã®ããã°ã©ãã³ã°èšèªã¯æèã®è¡šçŸã«å¹²æžãã解決ãããåé¡ã«é¢é£ãããèšèªç¿»èš³è
ããç解ãããããã«ã®ã¿å¿
èŠãšãããå€ãã®è©³çŽ°ãè² æ
ããŸãã ãŸããç¹ã«ã³ã³ãã€ã«ãããèšèªã®å€ãã¯éåžžã«åé·ã§ãããæ§æã«ã€ããŠãåé¡ã§ã¯ãããŸããã ãŸã第äžã«ãããã¯ããã説æãããã¹ããçšèªãã§ããèšèªçå®äœã«ã€ããŠã§ãã ãããã®ãšã³ãã£ãã£ïŒããšãã°ãé¢æ°ãå€æ°ãã¯ã©ã¹ãã¡ãœãããããã±ãŒãžãåå空éãäžè¬åããã³ãã¬ãŒãïŒã¯çãããŠç¹æ®ã§ããã人éã®ç解ãããæ©æ¢°è¡šçŸã®ããã«èšèšãããŠããŸãã 圌ãã¯æèã圌ãã®èšèªã«åŒ·å¶çã«ç¿»èš³ããŸãã ãã¡ããé£ããããšã§ã¯ãããŸããã ããããããã¯ç®åã®åé¡ã«ã¯åœãŠã¯ãŸããŸããã é©åãªèšèªãšã³ãã£ãã£ã®éžæãšããããžã®ç¿»èš³ã¯ãã¿ã¹ã¯ãã泚æãããããéäžåãäœäžããããã®çµæãéçºå¹çãäœäžãããŸãã ãããŠãç§ã¯ããªãã®æ¹æ³ã§çã£ãŠããŸãã ãã®ãããªã³ãŒããèªã¿åãããã»ã¹ã®æ¬è³ªãç解ããããšã¯ããã«é£ãããç¹ã«ããŒã éçºã«ãããŠçç£æ§ã«æãè¯ã圱é¿ãäžããããšã¯ãããŸããã
çŸä»£ã®ããã°ã©ãã³ã°èšèªã®åé¡ã¯ãããã°ã©ããŒã«èªåèªèº«ãé©å¿ãããã®ã§ã¯ãªããããã°ã©ããŒãæ©æ¢°ãŸãã¯ããããåºã¥ãçè«ã«é©å¿ãããããšã匷å¶ããããšã§ãã ãããŠãæ°åŠççè«ã¯å³å¯ã§ãããéã¯éã§ãããããã°ã©ããŒã®å©äŸ¿æ§ã¯äž»èŠ³çã§ãããšããäºå®ã¯ãè©ŠããŠã¯ãããªããšããæå³ã§ã¯ãããŸããã
o42aã®äž»ãªã¢ã€ãã¢ã¯ãããã°ã©ããŒã®äœæ¥ãèªååããããšã§ãã ãããŠããã¯ãèšèªãšã³ãã£ãã£ã®ã¿ã€ãããããããã¹ãŠã
çŽæ¥çœ®ãæããããšãã§ããåäžã®ãšã³ãã£ãã£ã«æ ¹æ¬çã«åæžããããšã«ãã£ãŠå®çŸãããŸãã ãã®ãããªãšã³ãã£ãã£ã®å¹ççãªãã·ã³è¡šçŸã®ã¿ã¹ã¯ã¯ãã³ã³ãã€ã©ã«å®å
šã«ãããŸãã
ã¢ã€ãã¢
ç§ã¯ããã«èšããªããã°ãªããŸããïŒãã®ãããªå®äœã¯ããã®æ®éæ§ã§åœ¹ã«ç«ããªãã¹ã€ã¹ã®ãã€ãã®ãããªãã®ã§ãã£ãŠã¯ãªããŸããã ãããããã®ãããªã¬ã³ã¬ïŒLispã®ãªã¹ããªã©ïŒãã奜ããªãã®ãæ§ç¯ããããšã¯ãåå§çãªã¬ã³ã¬ã§ã¯ãããŸããã
ããŸããŸãªããã°ã©ãã³ã°ãã©ãã€ã ã§ã¯ãäºãã«äºææ§ããªãããã«æããããšã³ãã£ãã£ãå€æ°ãããŸãã ããã§ã¯ãã©ããã£ãŠåœŒãã®å
±çãéæã§ããŸããïŒ
ãã®ã¢ã€ãã¢ã¯äœå¹Žãåã«ããããŒã°ããææ¡ãããŸããã è¿°èªèšç®ã®éæ³ã«å ããŠããã®äžã«ã¯å¥ã®é¡èãªç¹åŸŽããããŸããè¿°èªã®èšé²ãèŠããšããããåæã«éåžžã®é¢æ°ã®èšé²ã§ããããšãããããŸãã ãã®ããã«èãããšãæ¬è³ªã¯å€ãããªãã
ãã®èããã§ããã ãåºãé©çšãããã£ãã ç°ãªãããã°ã©ãã³ã°ãã©ãã€ã ã®ç°ãªãæŠå¿µã«ã¯ãèŠãã以äžã«å€ãã®å
±éç¹ããããšæããŸãããïŒ ãã®åé¡ã®äž»ãªãã®ã¯ãç¬æ䞻矩ãå°ãªãããšã§ãã
o42aã®2çªç®ã®ã¢ã€ãã¢ã¯ãèšèªã®ã»ãã³ãã£ã¯ã¹ãšæ§æãåé¢ããæ©èœã§ãã æ§æã¯ãèšèªãšã³ãã£ãã£ã«å¯Ÿå¿ããããã«1察1ã§ããå¿
èŠã¯ãããŸããã æ§æã¯ãããã°ã©ãã³ã°èšèªã§ã¯ãªããããã°ã©ã ã®ã»ãã³ãã£ã¯ã¹ãè¡šçŸããå¿
èŠããããŸãã èªã¿ããããååã«å³æ Œã§ãªããã°ãªããŸããã ããã°ã©ã ããã¹ããèšèªãšã³ãã£ãã£ã«åã蟌ãã®ã¯ãããã°ã©ãã§ã¯ãªãã³ã³ãã€ã©ã®ã¿ã¹ã¯ã§ãã
MVCãã©ãã€ã ããæ§æããã¥ãŒã«ãããã°ã©ã ãšã³ãã£ãã£ãã¢ãã«ã«ãããã§ããŸãã ãããŠãããªãã¯ããã
DSLãšåŒã¶ããšãã§ããŸãã
ããã§æ§æã䜿çšããŠèª¬æãéå§ããŸãã ãã®æãéèŠã§ãªãæ©èœãæ倧ã®æåŠãåŒãèµ·ãããšæããŸãã
æ§æã®åºæ¬
ç§ã¯ã人é¡ãçºæããæé«ã®æ§æã¯æžãèšèã ãšæ±ºããŸããã ãã®ãããèšèªã®æ§æãæžãèšèïŒãã¡ãããããã°ã©ãã³ã°ã§ç¢ºç«ãããäŒçµ±ã«ããã°è±èªïŒã«è¿ãã»ã©è¯ãã§ãã çµå±ããã³ãŒãã®èªã¿ãããããšããè¡šçŸã¯ãã®ãããªéžæã®çŽ å ãšãªããŸãããªããªããæžãããã¹ããŒãã¯èªã¿ãããããã«äœæãããåäŸã®é ããèªãããã«æããããŠããããã§ãã
o42aã«ã¯ããŒã¯ãŒãã¯ãããŸããã å¿
èŠãªãã®ãã¹ãŠã«ãã¢ã€ã³ã³ã䜿çšãããŸãã äžèŠãããã¯æããã決æã®ããã«æãããããããŸããã ãã ããèšèªã«ã¯æ¬è³ªã1ã€ãããªãããšãèæ
®ã«å
¥ããå¿
èŠãããããããåå ããæ§ææ§é ã¯ããã»ã©å€ããããŸããã ãã®ãããå€ãã®ãããžã¯å¿
èŠãããŸããã
åå
o42aã®ååã¯å€§æåãšå°æåãåºå¥ãããã¹ããŒã¹ã§åºåãããåèªãã©ãã³æ°åããã€ãã³ã§æ§æãããŸãã
Hello World Links 2- 3- 4 -90
åèªã®æåã¯ãUnicodeæåã§ãã è¡ã®è€æ°ã®ã¹ããŒã¹ã¯ã1ã€ã®ã¹ããŒã¹ãšåãæå³ã§ãã ã¹ããŒã¹ã¯ãæåãšéæåãæ°åãšéæ°åã®éã«ããå¿
èŠã¯ãããŸããã ååã¯æ°åãŸãã¯ãã€ãã³ã§å§ãŸã£ãŠã¯ãªããããã€ãã³ã§çµãã£ãŠã¯ãªããŸããã ãã€ãã³ã¯åäžã§ãªããã°ãªããŸããã ãã€ãã³ã®åã®ã¹ããŒã¹ã¯ãæžç®èšå·ãšåºå¥ããããã«çŠæ¢ãããŠããŸãã
ãããã£ãŠãäžèšã®ååã¯ç°ãªãæ¹æ³ã§èšè¿°ããããšãã§ããŸãã
Hello world links2-3-4 -90
ã³ã¡ã³ã
o42aãžã®ã³ã¡ã³ããçããã§ãã ãã«ãã¯åºåãæåãšããŠäœ¿çšãããŸãã ããã«ããããã¯å°æåãšãããã¯ã³ã¡ã³ãã®äž¡æ¹ã«äœ¿çšãããŸãã
è¡ã³ã¡ã³ãã¯ã2ã€ä»¥äžã®ãã«ãã§å§ãŸããŸãã
a + b ~~ The sum
è¡ã³ã¡ã³ãã¯ãè¡æ«ãŸãã¯2ã€ä»¥äžã®ãã«ãã§çµäºããŸãã
a +~~~plus~~~ b
ãããã¯ã³ã¡ã³ãã¯ã3ã€ä»¥äžã®ãã«ãã®æ°Žå¹³ç·ã§å§ãŸããçµãããŸãã 空çœä»¥å€ã®æåã¯ãè¡ãšåãè¡ã«ããã¹ãã§ã¯ãããŸããã
~~~~~~~~~~~~~~~~~~~~~~~~~~ Copyright (C) 2012 This file is part of o42a. ~~~~~~~~~~~~~~~~~~~~~~~~~~
ææžåã®ããã«ãMarkdownã䜿çšãããããšã«ãªã£ãŠããŸãã
æ¹è¡ãšã¢ã³ããŒã¹ã³ã¢
o42aã®ã¹ããŒãã¡ã³ãã¯æã«çµåã
ã ãã«ã³ããããªãªããã»ãã³ãã³ãæå笊ãçå笊ãªã©ã®ããŸããŸãªå¥èªç¹ã§åºåãããšãã§ããŸãã ãããã®æšèã«ã¯ããããç¬èªã®ç®çããããŸãã ãã ããããã«ã€ããŠã¯åŸã§èª¬æããŸãã è¡æ«ã®å¥èªç¹ããªãã·ã§ã³ã§ããããšãéèŠã§ã-ããªãªããæ³å®ãããŸãã åŒãŸãã¯åŠæ¹ã¯ãã¢ã³ããŒã¹ã³ã¢ã䜿çšããŠæ瀺çã«æ¬¡ã®è¡ã«ç§»åããå¿
èŠããããŸãã
Sum = _left operand + _right operand
ã¢ã³ããŒã¹ã³ã¢ã¯ãåã®è¡ã®æ«å°ŸãŸãã¯æ¬¡ã®è¡ã®å
é ã«é
眮ã§ããŸãã
ãŸããååèªäœã«ã¹ããŒã¹ãå«ãŸããŠããå¯èœæ§ããããããååãåºåãã«ã¯ã¢ã³ããŒã¹ã³ã¢ã䜿çšããå¿
èŠããããŸãã
Print error _nl ~~ "\n" ~~ (stderr C).
ãã®ä»
10é²æ°ïŒ
1 234 567
èšèªã«ã¯ãå®æ°ã16é²è¡šèšã®ãªãã©ã«ã¯ãããŸããã ãã ãããã¬ãŒãºããããŸãã®ã§ãããã¯åé¡ã§ã¯ãããŸããïŒè©³çŽ°ã¯åŸã§èª¬æããŸãïŒã
float '3,141 592 653 59'
æååã¯Cã®ããã«ãæ¥çããããŸãïŒ
"abc" "def" ~~ , : "abcdef"
ããã¯ã¹ã©ãã·ã¥ã䜿çšããã·ãŒã«ãã¯æ£åžžã§ãã Unicodeã³ãŒããã€ã³ãã¯åžžã«16é²æ°ã§èšè¿°ãããç¹å¥ãªæ¹æ³ã§ãšã¹ã±ãŒããããŸãã
"\t \42a\ \" \' \\ \r\n"
è€æ°è¡ããã¹ãã®ãµããŒãããããŸãã è€æ°è¡ããã¹ãã®ãšã¹ã±ãŒãã¯æ©èœããŸããã
"""""" """"""
ãªããžã§ã¯ã
ãªããžã§ã¯ãã¯o42aã®æ žå¿ã§ãã
ãªããžã§ã¯ãã¯ãå¥ã®ãªããžã§ã¯ãããç¶æ¿ããããšã«ããäœæãããŸãã ããããªããžã§ã¯ããäœæããå¯äžã®æ¹æ³ã§ãã
ãã¹ãŠã®ãªããžã§ã¯ãã¯ã
Void
ãªããžã§ã¯ãããçŽæ¥ãŸãã¯éæ¥çã«ç¶æ¿ãããŸãã誰ãããç¶æ¿ãããªãå¯äžã®ãªããžã§ã¯ãã§ãã
ãã£ãŒã«ããšç¶æ¿
ãªããžã§ã¯ãã«ã¯ãã£ãŒã«ãããããŸãã ãã£ãŒã«ãã¯ããã¹ããããååä»ããªããžã§ã¯ãã§ãã
次ã«ãã£ãŒã«ã宣èšã®äŸã瀺ããŸãã
Object := void ( Field := "Value" ~~ `Field` - `Object` `String`. )
ããã©ã«ãã§ã¯ããã£ãŒã«ãã«ã¯ãããªãã¯ã¹ã³ãŒãããããŸãã ãã ããå
éšïŒãã©ã€ããŒãïŒããã³ä¿è·ïŒä¿è·ïŒãšããŠå®£èšã§ããŸãã
o42aã®åŒã¯ãæ¢åã®ãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ããããæ°ãããªããžã§ã¯ããäœæããŸãã ä»ã®åŒã¯ãããŸããã ãããã£ãŠão42aã®ãã¹ãŠã®åŒã¯ãªããžã§ã¯ããžã®åç
§ã§ãã æååãªãã©ã«ã¯ãæšæºã®
String
ãªããžã§ã¯ãããç¶æ¿ããããªããžã§ã¯ããžã®åç
§ã§ãã æ°å€-ãããã
Integer
ããã
ã³ãã³ãä»ããŠãªããžã§ã¯ãã®ãã£ãŒã«ãã«ã¢ã¯ã»ã¹ã§ããŸãã
Object: field
ä»»æã®ãªããžã§ã¯ããç¶æ¿ã§ããŸãã ãªããžã§ã¯ããç¶æ¿ããããšããã®ãã¹ãŠã®ãã£ãŒã«ããç¶æ¿ãããŸãã åæã«ããã£ãŒã«ãã¯ãªãŒããŒããŒããããå¯èœæ§ããããŸãã
Derived object := object ( ~~ `Derived object` `Object`. Field = "New value" ~~ `Field` . )
ãã£ãŒã«ãããªãŒããŒããŒãããã«ã¯ã
:=
代ããã«
=
èšå·ã䜿çšããŸãã
ãã ããç¶æ¿ããããªããžã§ã¯ãã§ã¯ãç¶æ¿ããããªããžã§ã¯ããšãŸã£ããåãååã®ãã£ãŒã«ãã宣èšã§ããŸãã
Another object := object ( Field := 123 ~~ `Field`. )
ãã®å Žåãæ°ãããªããžã§ã¯ãã«ã¯åãååã®2ã€ã®ãã£ãŒã«ãããããŸãã 次ã®ããã«ã¢ã¯ã»ã¹ã§ããŸãã
Another object: field ~~ 123 Another object: field @object ~~ "Value" Another object: field @another object ~~ 123
ãããã¿ã€ããšæœè±¡ãã£ãŒã«ã
èŠã«ããããšã¯ãªãã®ã§ããªããžã§ã¯ãã¯ã¯ã©ã¹ã眮ãæããŸãã å®éããªããžã§ã¯ããèªèº«ã®æ§é ã«é¢ããå®å
šãªæ
å ±ãæã£ãŠããå Žåããªãã¯ã©ã¹ãå¿
èŠãªã®ã§ããããïŒ æ®ã£ãŠããã¢ããªã±ãŒã·ã§ã³ã¯1ã€ã ãã§ããïŒæœè±¡çãªïŒããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ãšãã®ããã€ãã®ç°ãªãå®è£
ãæå®ããå¿
èŠãããå Žåã
ãããã®ç®çã®ããã«ããããã¿ã€ãã䜿çšã§ããŸãã
Interface :=> void ( ~~~ . `:=>`. ~~~ Name :=< string ~~~ . `:=<`. ~~~ )
ãããã¿ã€ããšéåžžã®ãªããžã§ã¯ãã®éãã¯ããããã®ã³ã³ãã³ãïŒãã£ãŒã«ããªã©ïŒã«ã¢ã¯ã»ã¹ã§ããªãããšã§ãã 次ã®ã³ãŒãã¯ãšã©ãŒã«ãªããŸãã
Interface: name ~~ : `Interface` - .
ãã ãããããã¿ã€ãã¯ä»ã®ãªããžã§ã¯ããšåæ§ã«ç¶æ¿ã§ããŸãã å®éããããå¿
èŠãªã®ã¯ããã ãã§ãã
ããã«ããããã¿ã€ãã«ã¯æœè±¡ãã£ãŒã«ããå«ãŸããå ŽåããããŸãã ãã®ãããªãã£ãŒã«ãã¯ãç¶æ¿äžã«ãªãŒããŒããŒãããå¿
èŠããããŸãã
Implementation 1 := interface ( Name = "Implementation 1" Implementation 1-specific field := 1 ) Implementation 2 := interface ( Name = "Implementation 2" Implementation 2-specific field := 2 )
ãã®ç®çããããããã¿ã€ãã¯æ®éã®ã¯ã©ã¹ã§ãã 察ç
§çã«ão42aã®éåžžã®ãªããžã§ã¯ãã¯ã¯ã©ã¹ãšãã®ã€ã³ã¹ã¿ã³ã¹ã®äž¡æ¹ã§ãã
åŸè
ã¯ãJavaããã°ã©ããŒã«éŠŽæã¿ãããã¯ãã§ãã ãããã¯å¿åã¯ã©ã¹ã§ãïŒ
Runnable task = new Runnable() { @Override public void run() { System.err.println("Done!"); } }
ãã®åŒã¯ãå¿åã¯ã©ã¹ãšãã®ã€ã³ã¹ã¿ã³ã¹ã®äž¡æ¹ãäœæããŸãã o42aã®éãã¯ããã®æ¹æ³ã§äœæããããã¯ã©ã¹ãã¯å¿
ãããå¿åã§ã¯ãªããšããããšã§ãã
ãªããžã§ã¯ãå€
åãªããžã§ã¯ãã«ã¯æå³ããããŸãã ãã®å€ã®åã¯ãªããžã§ã¯ã-ç¥å
ããç¶æ¿ããã
void
ã§ãªãéãå€æŽã§ããŸããã
o42aã«ã¯ããã€ãã®ã¿ã€ãã®å€ããããŸãã ãããã¯ããããæšæºãªããžã§ã¯ãã§è¡šãããŸãã 以äžã«ããã€ãã®åçŽãªã¿ã€ãã瀺ããŸãã
Void
ã¯ç©ºã®å€ã§ãããä»ã®ãã¹ãŠã®ãŠãŒã¶ãŒã®åºæ¬åã§ããInteger
ã¯64ãããæŽæ°ã§ããFloat
ã¯64ãããã®æµ®åå°æ°ç¹æ°ã§ããString
å-Unicodeæåã®æååã
ããè€éãªåãååšããŸããããšãã°ãè¡ãšé
åãé¢ä¿ãå€æ°ãªã©ã§ãã åã·ã¹ãã ã¯ãå¿
èŠã«å¿ããŠæéãšãšãã«æ¡å€§ããŸãã
ãªããžã§ã¯ãã®å€ã¯å¿
ãããå®æ°ã§ã¯ãããŸããã å®çŸ©ã§å®çŸ©ãããã¢ã«ãŽãªãºã ã䜿çšããŠèšç®ãã
ãŸã ã å€å®çŸ©ã¯ããªããžã§ã¯ãã®æ¬äœã«ããäžé£ã®ã¹ããŒãã¡ã³ãã§ãã ããã¯éåžžã«è€éã«ãªãå¯èœæ§ããããŸãïŒæ¡ä»¶ããµã€ã¯ã«ããã®ä»äœã§ãã ãã ãããªããžã§ã¯ãã®å®éã®å€ã¯ã次
ã®åœ¢åŒã®
å€ã®åŠæ¹ïŒæ»ãïŒã«ãã£ãŠæå®ãããŸãã
= value
次ã®å®£èšã¯åçã§ãã
Value := 5 ~~ , : Value := integer (= 5)
å€ã®å®çŸ©ã¯ç¶æ¿ããããªãŒããŒããŒãã§ããŸãã
次ã«ã2ã€ã®æ°å€ã®åèšã決å®ããäŸã瀺ããŸãã
Sum :=> integer ( Left operand :=< integer Right operand :=< integer = Left operand + right operand )
åãå®çŸ©ãç°ãªãå€ã«ã€ãªããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
Sum (Left operand = 1. Right operand = 2) ~~ 3 Sum (Left operand = -1. Right opernad = 10) ~~ 9
ã¢ããã¿ãŒãšãµã³ãã«
ãªããžã§ã¯ããäœæãããšããç¥å
ã«å ããŠããªããžã§ã¯ããäœæãã1ã€ä»¥äžã®ãµã³ãã«ãæå®ã§ããŸãã
Object := ancestor & sample 1 & sample 2 (~~ ~~)
ãã®å Žåããµã³ãã«ã®ãã£ãŒã«ããšå®çŸ©ã¯æ°ãããªããžã§ã¯ãã«ç¶æ¿ããããªããžã§ã¯ãèªäœã¯ãµã³ãã«ãšäºææ§ããããŸãïŒ
Barbara Liskov眮æåçã®æå³
㧠ïŒã ç¶æ¿ã®ç«¶åã®å¯èœæ§ã¯ãç¹å®ã®èŠåã«åŸã£ãŠè§£æ±ºãããŸãã
ã¯ããããã¯å€éç¶æ¿ã§ãã ãããããããé©çšããããšã¯åžžã«é©åã§ããïŒ å®éã«ã¯ãç¶æ¿ïŒè€æ°ãå«ãïŒã¯æ¬¡ã®3ã€ã®å Žåã®ããããã§äœ¿çšãããŸãã
- ãªããžã§ã¯ãããããŒãã£ã¯ã«ãitãã®ä»£ããã«ããªããžã§ã¯ãã«ãã£ãŠç¶æ¿ããããªããžã§ã¯ãã®ããªã¢ã³ãã§ããããšã瀺ãããã ããšãã°ããã¹ã€ã«ã¯ããªãŒã§ããã
- ãªããžã§ã¯ãã«ããã€ãã®ããããã£ãäžããããã«ãããã€ãã®èšèªã§ã¯ãã®ç®çã®ããã«ãäžçŽç©ãïŒç¹æ§ãããã¯ã¹ã€ã³ïŒã䜿çšãããŸãã
- ãªããžã§ã¯ãã«å¥ã®ããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ããããå¥ã®ã¿ã€ãã«ãããããã«ã¯ããã®å Žåã¯ã³ã³ããžã·ã§ã³ã䜿çšããããšããå§ãããŸãã
æåã®2ã€ã®ã±ãŒã¹ã§ãµã³ãã«ã䜿çšãããšäŸ¿å©ã§ãão42aã®3ã€ç®ã®ã±ãŒã¹ã§ã¯ãå¥åã®ã¢ããã¿ãŒã¡ã«ããºã ããããŸãã
ã¢ããã¿ã¯ãèå¥åãååã§ã¯ãªãå¥ã®ãªããžã§ã¯ãã§ãããªããžã§ã¯ããã£ãŒã«ãã§ãã
Foo := void ( Value := 123 @String := "Foo=" + value ~~ `String` `@` ~~ , . )
ã¢ããã¿ãªããžã§ã¯ãã¯ãåžžã«ãã®èå¥åãªããžã§ã¯ããç¶æ¿ããŸãã ãã£ã¹ããããšãão42aã¯æåã«ãªããžã§ã¯ããç®çã®ãªããžã§ã¯ãããç¶æ¿ãããŠãããã©ããã確èªããããããã¢ããã¿ãŒã䜿çšããããšããŸãã ãã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
Print [foo] nl
Print
ãã©ã¡ãŒã¿ãŒã¯æååã§ãªããã°ãªããã
String
ã®
Foo
ãªããžã§ã¯ãã¯ç¶æ¿ãããªããšããäºå®ã«ããããããã
Foo=123
Print
ãŸãã 察å¿ããã¢ããã¿ãŒããã©ã¡ãŒã¿ãŒãšããŠæž¡ãããŸãã
æšæºå€åã¯ãã¢ããã¿ã䜿çšããŠæååããã³ãã®ä»ã®åã«ãã£ã¹ããããŸãã
ã¢ããã¿ãŒã«çŽæ¥ã¢ã¯ã»ã¹ããããšãã§ããŸãã
Foo @@string
ã¢ããã¿ãŒèªäœã®ãã£ãŒã«ãã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
Foo: length @string ~~ 7
ã¢ããã¿ãã£ãŒã«ãã«ã¢ã¯ã»ã¹ããããã®æ§æã¯ããªããžã§ã¯ãèªäœã®ãã£ãŒã«ãã«ã¢ã¯ã»ã¹ããããã®æ§æãšåãã§ããããšã«æ³šæããŠãã ããã ãã£ãŒã«ãã®ãœãŒã¹ïŒãã®å Žåã¯
@string
ïŒã瀺ãå Žåã
@string
ãå¿
é ã§ãã
ã¢ããã¿ãŒã¯ä»ã®å Žåã«ã䜿çšãããŸãã ããšãã°ãã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãªããžã§ã¯ãã瀺ãã«ã¯ïŒ
Use namespace 'Console' ~~ `Print` `Main` `Console`. @Main := * { ~~ , `Main` . Print "Hello, World!" nl }
ã¢ããªã±ãŒã·ã§ã³ã¯ã
@Main
ã¢ããã¿ãŒãžã®ã¢ã¯ã»ã¹ã§æ§æãããæåãªããã¹ããå°å·ããŸãã
å€ãã®ã¢ããªã±ãŒã·ã§ã³ãçºæããããšãã§ããŸãã ããšãã°ãã¢ããã¿ã䜿çšããŠãä»»æã®ãªããžã§ã¯ãã®ããã·ã¥é¢æ°ãèšç®ã§ããŸãã
@Hash code
ã¢ããã¿ãŒãå®çŸ©ãã
@Hash code
ã
ã¢ããã¿ã䜿çšãããšãä»»æã®ãªããžã§ã¯ãã«ç®çã®æ©èœãè¿œå ã§ããŸãã ããã«ããã
Void
ããŒã¹ãªããžã§ã¯ãã«ãã£ãŒã«ãã
Void
å¿
èŠããªããªããŸãã ããã«ã泚éä»ããŸãã¯ç¹å¥ãªååã®
__str__
圢åŒã®ã¡ãœãããšã¯ç°ãªããã¿ã€ãã»ãŒã
__str__
ã
äžè¬çãªããã°ã©ãã³ã°
o42aã«ã¯ãç¹åŸŽçãªã¿ã€ãã®ãã©ã¡ãŒã¿ãŒãåãã䜿ãæ
£ãããã³ãã¬ãŒãïŒãã³ãã¬ãŒãïŒãäžè¬åïŒãžã§ããªãã¯ïŒã¯ãããŸããã o42aã®åãªããžã§ã¯ãã¯ãã§ã«äžè¬åãããŠããããããå«ããªããžã§ã¯ããšé£æ¥ãããã£ãŒã«ãã«ãã£ãŠãã©ã¡ãŒã¿ãŒåãããŠããŸãã
å®éããªããžã§ã¯ããžã®åç
§ã¯éåžžéçã§ã¯ãããŸããã ããã¯ããã®ãããªãªã³ã¯ãå«ããªããžã§ã¯ããç¶æ¿ããå Žåãç¶æ¿ãªããžã§ã¯ãã¯åããªã³ã¯ã䜿çšããŠå¥ã®ãªããžã§ã¯ããåãåãããšãã§ããããšãæå³ããŸãã
以äžã«äŸã瀺ããŸãã
Base := void ( A := void ( F := 123 ~~ `Base: a` `F'. ) B := a ( ~~ `Base: b` `Base: a`. = 456 ) ) Object := base ( ~~ `Base`. A = * ( ~~ `A`. G := f * 10 ~~ `A: g`. ) ) Object: a: g ~~ 1230 Object: b: g ~~ 4560
Object: a: g
ãã£ãŒã«ãã¯
Base: b
åŸã«å®çŸ©ãããŠããããšã«æ³šæããŠãã ããã ãã ããåŒ
Object: b: g
å®å
šã«æ£ããã§ãã
å®éããªããžã§ã¯ãã¯ä»ã®ãªããžã§ã¯ãã ãã§ãªããããããåç
§ããåŒãç¶æ¿ããŸãã å¥ã®ã³ã³ããã¹ãã§å®è¡ããããšããã®ãããªåŒã¯å¥ã®ãªããžã§ã¯ãã«è§£æ±ºãããå¯èœæ§ãããããããã£ãŠããããã«ç°ãªãç¶æ¿éå±€ã«ã€ãªããå¯èœæ§ããããŸãã åŒãèš±å¯ãããã©ã®ãããªã³ã³ããã¹ãã§ããçµæã®ãªããžã§ã¯ãã¯åžžã«å
ã®ãªããžã§ã¯ããšäºææ§ããããã€ãŸããããããªããžã§ã¯ãã§ãããããã®çžç¶äººã§ããããšãéèŠã§ãã
ãã®ãããªæ©èœã¯ãåŸæ¥ã®äžè¬åãå®å
šã«çœ®ãæãããã®ã§ã¯ãããŸããããå€ãã®å Žåããããã®å¿
èŠæ§ãæé€ããŸãã ããè€éãªå Žåão42aã¯ãã¯ãã¡ã«ããºã ãæäŸããŸãïŒãããç¬ç¹ã§ããããã以å€ã¯ã©ãã§ããïŒïŒã ãã ãããã®èšäºã§ã¯ãã¯ããšã¡ã¿ããã°ã©ãã³ã°ã®å¯èœæ§ã«ã€ããŠã¯èª¬æããŸããã
äžèšã®èŠçŽ
o42aã«ã¯ããŸã 話ããŠããªãããšããããããããŸãã
- æç« ã®äœãæ¹ã«ã€ããŠ
- åœä»€åããã°ã©ãã³ã°ã®ãµããŒãã«ã€ããŠã
- ãã¬ãŒãºã«ã€ããŠ-ãã¡ã€ã³åºæã®åŒãæ§ç¯ããæä»çãªæ§æçæ¹æ³ïŒã©ã ãèšç®ãªãïŒïŒ
- æŒç®åã®ãªãŒããŒããŒãã«ã€ããŠïŒãšããã§ãæŒç®åããã¬ãŒãºã§ãïŒã
- å€æ°ãé¢ä¿ãå«ãè€éãªããŒã¿åã
- ãã¯ããšãã£ã¬ã¯ãã£ãã«ã€ããŠ-ã³ã³ãã€ã«äžã«é¢ä¿ããã¡ã¿ããã°ã©ãã³ã°ã¡ã«ããºã ã
- ã¢ããªã±ãŒã·ã§ã³ãœãŒã¹ããªãŒã®ã¢ãžã¥ãŒã«ãšæ§é ã«ã€ããŠã
ãããŠãã¡ãããç§ã¯å€ãã®è©³çŽ°ãçç¥ããŸããã ããã¯å°æ¥ã®èšäºã®è³æã§ãã
ãã ãããã®èšäºã®ç®çã¯ãæŠå¿µãšãã®å®è£
ã玹ä»ããããšã§ãã ãã¹ãŠãæ確ã«èª¬æããããšæããŸãã
ãããã£ãŠãèšèªã®äž»èŠã§å¯äžã®ã»ãã³ãã£ãã¯ãŠãããã¯ãå€ãã®ãã®ã眮ãæããããšãã§ãããªããžã§ã¯ãã§ãã
- ãªããžã§ã¯ãã¯åå空éã§ã
ç¹ã«ã³ã¡ã³ãããå¿
èŠã¯ãããŸããããªããžã§ã¯ãã®ãã£ãŒã«ãã¯ãã®ã¹ããŒã¹ã®ã·ã³ãã«ã§ãã
- ãªããžã§ã¯ãã¯ã¯ã©ã¹ã§ãã
äžèšã§ã説æããŸããã ãªããžã§ã¯ããçŽæ¥ç¶æ¿ããå Žåãã¯ã©ã¹ã¯å¿
èŠãããŸããã
- ãªããžã§ã¯ãã¯é¢æ°ã§ã ïŒåæã«ã¡ãœããã§ããããŸãïŒ
ãã®ãããªé¢æ°ã®åŒæ°ã¯ãªããžã§ã¯ãã®ãã£ãŒã«ãã§ãããçµæã¯ãã®å€ã§ãã
ãªããžã§ã¯ãã®ç¶æ¿ã¯é¢æ°åŒã³åºãã§ããããã£ãŒã«ãã®ãªãŒããŒããŒãã¯ãã©ã¡ãŒã¿ãŒçœ®æïŒã«ãªãŒåïŒã§ãã
ãããããªããžã§ã¯ãã¯ãã以äžã®ããšãã§ããŸãã çµå±ãããã¯åã³ç¶æ¿ããããšãã§ãããã£ãŒã«ãã¯åã³ãªããŒãããããšãã§ããŸãïŒå...ã«ã¬ãŒïŒïŒã
- ãªããžã§ã¯ãã¯äžè¬åã§ã
ã¯ããç¬ç¹ã§ãã ãã ããå¯èœæ§ã¯ããã«å€§ãããªããŸãã
äžè¬åããããªããžã§ã¯ãã«ã¯ãåŸæ¥ã®äžè¬åããã³ãã¬ãŒãã«å¯Ÿããå©ç¹ããéåžžã®é¢æ°ã«å¯Ÿãããªããžã§ã¯ãé¢æ°ãšåãå©ç¹ããããŸãããã©ã¡ãŒã¿ãã£ãŒã«ãã¯äœåºŠããªãŒããŒããŒãã§ããŸãã JavaãŸãã¯C ++ãã³ãã¬ãŒãã®ã€ã³ã¹ã¿ã³ã¹ãäžè¬åããŠãæ¢ã«çœ®æãããŠããåãã©ã¡ãŒã¿ãŒã眮ãæããŠã¿ãŠãã ããã ãããŠãæã«ã¯äžå¿
èŠãªæœè±¡ã¯ã©ã¹ãäœæããããªãå ŽåããããŸãã
åé·æ§ãšæ£èŠå
ãã¹ãŠãæ¯æãå¿
èŠããããŸãã ãããŠãããã¹ãŠããªããžã§ã¯ãã§ãããã¢ãããŒãã®äŸ¡æ Œã¯é«ãã§ãã
æãåçŽãªè¡šçŸ
a + b
ãã
a
ã
b
ãš
b
ã¯è¿œå ããã ãã®æŽæ°ã§ãå®éã«ã¯ãªããžã§ã¯ãã®ããŒãã§ããããšãããããŸãã
Integers: add ( Left operand = a Right operand = b )
ãããã®å€ãèŠæ±ããããã ãã«æ§ç¯ããå¿
èŠããããŸãïŒãã£ãŒã«ãã®ãªãŒããŒããŒãã«ãã£ãŠç¶æ¿ãããŸãïŒã
ãã ããããã«ã¯äºæããªãããšã¯äœããããŸããã ãã·ã³è¡šçŸãšäººéã®ç解ãšã®äžäžèŽãããã®ãã·ã³è¡šçŸã®æ·±å»ãªåé·æ§ã«ã€ãªããããšã¯ããã«æããã«ãªããŸããã ãã¡ããããé¡ãã«æ°ä»ããªãéãã ããããããã¯å¿
èŠãããŸããã
åé·æ§ã¯æé€ã§ããŸãã ãã®ããã»ã¹ã¯æ£èŠåãšåŒã°ããŸãã 圌ã®ãããã§ãäžèšã®äŸã¯2ã€ã®æ°åãè¿œå ããŠã³ã³ãã€ã«ãããŸãã çµå±ããããåãªãè¿œå ã§ãããšäººãç解ããã°ãã³ã³ãã€ã©ã¯ãããæããããšãã§ããŸãã
æ£èŠåææ³ã¯éåžžã«éèŠã§ãã ãããŠããããã®æè¡ã®å®è£
ã¯ãŸã å§ãŸã£ãã°ããã§ãã ãã ãããã®ãããªåçŽãªã±ãŒã¹ã§ã¯ããã¹ãŠãæ©èœããŸãã ããã¯ãããšãã°ãæ£èŠåããªã³ããã³ãªãã«ããŠo42aãã¹ãã¹ã€ãŒããã³ã³ãã€ã«ããããšã§ç¢ºèªã§ããŸãïŒ
o42ac -normalize=0
ïŒã å®è¡å¯èœãã¡ã€ã«ã®ãµã€ãºã¯4åç°ãªããŸãã
LLVM IRã®ãHelloãWorldïŒãããã°ã©ã ã¯æ¬¡ã®ãšããã§ãã
hello_world.ll ; ModuleID = 'hello_world' target datalayout = "Ep:64:64:64-S0-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64" target triple = "x86_64-pc-linux-gnu" %o42a_val_t = type { i32, i32, i64 } @CONST.STRING.1 = private constant %o42a_val_t { i32 6145, i32 13, i64 ptrtoint ([13 x i8]* @DATA.STRING.0 to i64) } @CONST.STRING.2 = private constant %o42a_val_t { i32 1, i32 1, i64 10 } @DATA.STRING.0 = private constant [13 x i8] c"Hello, World!" define i32 @main(i32, i8*) nounwind { main: call void @o42a_init() nounwind call void @o42a_io_print_str(%o42a_val_t* @CONST.STRING.1) nounwind call void @o42a_io_print_str(%o42a_val_t* @CONST.STRING.2) nounwind ret i32 0 } declare void @o42a_init() declare void @o42a_io_print_str(%o42a_val_t*)
åæããŸããããã«ã¯äœèšãªãã®ã¯ã»ãšãã©ãããŸããã ãããŠããªããžã§ã¯ãã®ãããªåäžã®è€éãªæ§é ã§ã¯ãããŸããã ããããããã€ãã¯ããã°ã©ã ã«é¢äžããŠããŸãã
ãæ£èŠåããšããååã¯æå³çã«éžæãããŸããã åžžã«é©åãªãã¥ãŒãªã¹ãã£ãã¯ã§ã¯ãªããå€ãã®å Žå誀ã£ãä»®å®ã«åºã¥ããæé©åããšã¯å¯Ÿç
§çã«ãæ£èŠåã¯ãæå°ã®åé·æ§ã®ååã«åŸã£ãŠéæãããäºæž¬å¯èœãªçµæãââæå³ããŸãã ãŸããèšèªãšã³ãã£ãã£ã®æ°ãå¶éããèšèªã®å³å¯ãªã»ãã³ãã£ã¯ã¹ã¯ãæ£èŠåã®ææ³ãšã«ãŒã«ã®å®è£
ã«éåžžã«åœ¹ç«ã¡ãŸãã ãã®åé¡ã«æ°åŠççè«ãããããããšãã§ããã°...
æ£èŠåã®æ¬è³ªã¯ããœãŒã¹ã®æ§æã«åŸã£ãŠå®è¡å¯èœã³ãŒããçæãã代ããã«ãã³ã³ãã€ã©ããã®ãªããžã§ã¯ããŸãã¯ãã®ãªããžã§ã¯ããããã°ã©ã ã§ã©ã®ããã«äœ¿çšãããŠããããææ¡ããããšãããã®ç¥èã«åŸã£ãŠããŸããŠãããŒãµã«ããªããžã§ã¯ãããæå°éã®åé·æ§ã«åçŽåããããšã§ãå®è¡ãšã³ãã£ãã£ïŒå®æ°ãå®è¡å¯èœã³ãŒãã®ãããã¯ãé¢æ°ããŸãã¯ããã€ãã®é¢æ°ã®1ã€ãžã®ãã€ã³ã¿ãŒãæ§é ...ïŒããã³å®è¡å¯èœã³ãŒããæ¢ã«çæããŸãã
èããŠã¿ããšãæ£èŠåã¯ããã°ã©ã ã®éçºããã»ã¹ãæ ¹æ¬çã«å€ããŸãã ããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ãäºåã«æ€èšããäœããã¯ã©ã¹ãé¢æ°ããã®ãã©ã¡ãŒã¿ãŒãŸãã¯ä»ã®äœããšããŠå®è£
ãããã©ããã決å®ããå¿
èŠãããå Žåãæ£èŠåã³ã³ãã€ã©ãŒã¯ããã§ã«èšè¿°ãããããã°ã©ã ã«åºã¥ããŠããã®æ¹æ³ãæ£ç¢ºã«ææ¡ããŠãç¬èªã«ãã®ãããªæ±ºå®ãè¡ããŸãå¥ã®å®äœã
å®éã«äœ¿çšãã㊠ã
䜿çšããã ã¹ãã§ã¯ãã
ãŸããã æ£èŠåã³ã³ãã€ã©ã®èŠ³ç¹ããèŠããšãåæã«åºã¥ããŠäºåã«äœæãããããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ããã¢ãŒããã¯ãã£äžã®æ±ºå®ã¯ãææå°æ©ãªæé©åã«ãããŸããã
ããããæ£èŠåã«å ããŠãä»ã®äœããå®è£
ãããŠããŸãïŒ
- ã³ã³ãã€ã«äžã«ãå¯èœãªãã¹ãŠãèšç®ãããŸãã ãããŠãããã¯æé©åã§ã¯ãªããäž»ãªæ©èœã§ãã ããããªããã°ãèšèªã解éããå¿
èŠããããŸãã
- ããã°ã©ã ããã䜿çšãããŠããªããã®ã¯ãã¹ãŠæšãŠãããŸããããšãã°ãäžèŠãªãªããžã§ã¯ãããå¿
èŠãªãªããžã§ã¯ãã®æªäœ¿çšãã£ãŒã«ããªã©ã§ãã ãã®æ©èœã¯éåžžã«æåŸ
ãããŠãããããæ£èŠåã«èµ·å ãããã®ã§ã¯ãããŸããã
çŸç¶ãšå±æ
o42aãããžã§ã¯ãã¯ãéå»3幎åã®éããã«ã¿ã€ã ã§1人ã§å®æœãããŠããŸãã ã§ããããç§ã¯ãã®ä»äºãçå£ã«åãæ¢ããŠããããšãç解ããªããã°ãªããŸããã
ãã®ãããžã§ã¯ãã¯åŠè¡çãªãã®ãšããŠèããããããšã¯ãªããå®çšçãªæ±çšããã°ã©ãã³ã°èšèªãšãã®ãã©ãããã©ãŒã ã®äœæãç®æããŠããŸãã ç§ã®æåã®ã¢ã€ãã¢ã¯ãç§ããŸã åŠçã ã£ããã£ãšåã«æãã€ããŸããããæ°ãããããžã§ã¯ããéçºããå€ããããžã§ã¯ãããµããŒãããè±å¯ãªçµéšãæã€èšèªããã§ã«äœæãå§ããŸããã ãããã£ãŠãèšèªã®æŠå¿µãã®ãã®ãèšèªã«é¢ãããã¹ãŠã®æ±ºå®ãããã³å®éã®å®è£
ã¯ãå®éã®çµéšã®ææã§ãããæœè±¡çãªçè«ã§ã¯ãããŸããã
ãããžã§ã¯ãéçºã¯ããããã¿ã€ãã®å®è£
段éã§ãã ã³ã³ãã€ã©ã¯Javaã§èšè¿°ãããŠãããLLVMã䜿çšããŠå®è¡å¯èœã³ãŒããçæããŸãã ãœãŒã¹ã³ãŒã
㯠ãGPLv3 +ã©ã€ã»ã³ã¹ïŒLGPLv3 +ã®ã©ã³ã¿ã€ã ã©ã€ãã©ãªïŒã§
å©çšã§ããŸã ã
ãã®ãããžã§ã¯ãã«ã¯ãããªãåä»ãªè±èªã®ããã¥ã¡ã³ããåããWebãµã€ããšããŸã 空ã®ãã©ãŒã©ã ããããŸãïŒæçœãªçç±ããçŽæ¥ãªã³ã¯ã¯æäŸããŠããŸããïŒão42a-0.2.4ã®çŸåšã®ããŒãžã§ã³ã«ã¯ã13äžè¡ãè¶
ãããœãŒã¹ã³ãŒããå«ãŸããŠããŸããã³ã³ãã€ã©ã¯ãŸã éåžžã«å£ãããããã©ã€ãã©ãªã¯ã»ãšãã©ååšããŸãããã¿ãŒã²ãããã©ãããã©ãŒã ã¯GNU / Linux x86_64ã§ãããä»ã®ãã©ãããã©ãŒã ã¯ãã¹ããããŠããŸãããä»åŸæ°ã¶æã§ãã³ã¬ã¯ã·ã§ã³ã©ã€ãã©ãªãšI / Oã©ã€ãã©ãªãå®è£
ããäºå®ã§ããåæã«ãã³ã³ãã€ã©ãŒããããã°ããèšèªèªäœã«é¢ããæ®ãã®è³ªåã解決ããŸãããŸããRosetta Codeã䜿çšããŠäŸãäœæããŸããããŒãžã§ã³0.3.0ã¯æ¢ã«äœããã®åœ¢ã§äœ¿çšã§ãããšæ³å®ãããŠããŸããå°æ¥ã®èŠéãã§ã¯ããã¹ãŠãããªãé§ã«èŠãããŠããŸããæåã¯ãéçºã«ããã»ã©æéãããããšã¯æã£ãŠããŸããã§ããããä»ã§ã¯äœæ¥éã«ã€ããŠååã«ç解ããŠããŸãããã人ã«ãšã£ãŠã¯ãããã¯éåžžã«å€ããç§ãè¿å¹ŽçããŠããç¯çŽã¯äœ¿ãæããããŠããŸãããã®ãããéçºãæ·±å»ãªãªãã£ã¹ã®ãç¿Œã®äžãã«çœ®ãããŠããªããã°ããã€ãã£ãã®oDeskã§ããªãŒã©ã³ã¹ã«æ»ããªããã°ãªããªããããéçºã¯é
ããªããŸãããŸã å¯ä»ããé¡ãããã€ããã¯ãããŸãããããã¯ã©ãããããã軜èã§ãïŒããªãã¯ãŸãšããªãéãéããããšã¯ãããŸãããã矩åããããŸãã誰ãããã®ãããªéå¿çãªãããžã§ã¯ããè¡ãããšãçå£ã«æãã§ããå Žå-ãåãåãããã ãããç§ã¯åçŽãªããã°ã©ããŒã§ããããã®ã¢ã³ã¹ã¿ãŒãåçåããããã®ã¢ã€ãã¢ãæãã€ãããšãã§ããŸããããã¯ãŠã§ãã®2ã€ã®ãŒãäŸ¡æ Œã®10k-want-milen-startupã§ã¯ãªãããšã«æ³šæããŠãã ããããããã¯ãæ·±å»ãªããŒã±ãã£ã³ã°ãå«ããæ·±å»ãªé·ææè³ã§ããäžè¬ã«ãªãŒãã³ãœãŒã¹ãç¹ã«o42aãããžã§ã¯ãã®å©çã®ããã«ç¡æã§åãããå Žåão42aã«çŽæ¥é¢é£ãããã¹ã¿ã³ãã¢ãã³ãââããžã§ã¯ãïŒçŽç²ãªCã®å¿
èŠãªã©ã€ãã©ãªïŒãšããŠæçšãªã¿ã¹ã¯ãå«ãããã€ãã®ã¿ã¹ã¯ãèŠã€ããã§ããããéçºã«è³éãæäŸããæ¹æ³ã«ã€ããŠèããŠããå Žåã¯ãå
±æããŠãã ããã