Hello World
От: anvaka Украина Yasiv
Дата: 16.05.06 11:56
Оценка: 13 (3) +1 :)))
Нашел интересную подборку программ Hello World на разных языках (263 языка!) . Кому интересно, источник тут.

Здесь же хотел показать понравившиеся экземпляры + некоторые свои наблюдения, подборки, ссылки по форуму. Смотреть лучше в отдельном окне. Да, и почему в "Философию": а как же? Как и родина начниается с картинки в букваре, так и программирование начинается с Hello World

Название языкаHello World

Естественный язык

Armenian    Բարե՛ւ, աշխարհ։ (barev ash'kharh)
Azeri        Salam Dunya ;
Czech        Ahoj Světe!
Basque/Euskara    Kaixo mundua!
Bengali    Shagatam Prithivi!
Bosnian    Zdravo Svijete!
Brazilian Portuguese    Oi mundo!
Bulgarian    Здравей, свят! (Zdrav'ei svi'at)
Catalan    Hola món!
Chinese    世界你好 (ni hao shi jie)
Croatian    Bok Svijete!
Danish    Hej, Verden!
Dutch        Hallo, wereld!
English    Hello World!
Finnish    Hei maailma!
French    Salut le Monde!
Frisian    Hallo, wrâld!
German    Hallo Welt!
Greek        Γεια σου κόσμε! (Geia soy kosme)
Hebrew    העלו ווורלד(Shalom Olam)
Hindi        ःएल्लो wओर्ल्ड्(namaste duniya)
Hungarian    Szia Vilag!
Indonesian    Halo Dunia!
Italian    Ciao Mondo!
Japanese    こんにちは世界 (konnichiwa sekai)
Kannada    ಃಎಲ್ಲೊ ವೊರ್ಲ್ಡ್(namaste prapancha)
Korean    여보세요 세계 (annyeong, sesangah)
Malagasy    Manao ahoana ry tany!
Norwegian    Hallo Verden!
Polish    Witaj, Swiecie!
Portuguese    Ola mundo!
Romanian    Salut lume!
Russian    Здравствуй, мир! (Zdra'vstvuj mi'r)
Serbian    Zdravo Svete!
Slovak    Ahoj, svet!
Slovenian    Pozdravljen svet!
Spanish    ¡Hola mundo!
Swedish    Hejsan värld!
Turkish    Merhaba Dünya!
Ukrainian    Привiт, свiте!(Pryvi't svi'te)


BrainFuck
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...

(@Google)

Оригинал:
++++++++++[->+++++++>++++++++++>+++++++++++>
+++++++++++>++++>+++>+++++++++>+++++++++++>+
+++++++++>+++<<<<<<<<<<]>++.>+.>--..>+.>++++
.>++.>---.<<<.>>>>++++.<<<<<.>>>>>>.>+++.



Вариант
Автор: Кодт
Дата: 10.05.05
Кодта
:


Ook

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook!
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook.


To Кодт:
Нужна еще одна интерпретация .

Vatical

Понравилось:
LITURGY:
PRAY "Hello World!"
AMEN.


ZOMBIE

HelloWorld is a zombie
summon
    task SayHello
        say "Hello World!"
    animate
animate


HQ9++, HQ9+

H

ListVIEW



Logo

DRUCKEZEILE [Hello World!]

Mumps

w !,"Hello World"

Piet
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...

(@Google)

Разные вариации:






Shakespeare

Исодник большой.

Spiral (не смог найти линк)

e0v ***   *eXlv**   *lX      *2X       **oXi
v * * *   *     *   * 2      * o      **   v*
* * * *   * *****   * v      * v      * *iX *
* * * *   * *       * ^      v *      * * w *
* *** *   * *****   * v      * *      * * v *
*     *   *     ^   * ^      * *      * * * *
* *** *   * ****v   * v      * *      v * * *
* * * *   * *       * *      * *      ^ * * *
* * * *   * *****   * *****  * *****  * *** *
* * * *   *     *   *     *  *     *  **   **
*** ***   *******   *****v^  *******   *****

*wX ***    **3Xp    *rX4..   d5*      qd**  
* 3 * *   **   v^   *    ..  * *      *  ***
* v * ^   * #pX v   * ..  .  * *      *    **
* *** v   * # r #   * ..  .  * *      * !q* *
* * * *   * # v #   * 54 ..  * *      * * * *
* * * *   * # * #   *   @X   * *      * * * *
* * * *   * # * #   *   v    * *      * * * *
* * * *   * # * #   * * **   * *      * * * *
*  *  *   * # * #   * ** **  * *      * *** *
*  *  *   * #v* ^   * *** *  * *****  *    **
** * **   **   *v   * * * *  *     *  *  ***
 *****     *v^**    *** ***  *******  ****


Машина Тьюринга

State   Read   |   Write     Step    Next state
---------------|---------------------------------
1       empty  |   H         >       2
2       empty  |   e         >       3
3       empty  |   l         >       4
4       empty  |   l         >       5
5       empty  |   o         >       6
6       empty  |   blank     >       7
7       empty  |   W         >       8
8       empty  |   o         >       9
9       empty  |   r         >       10
10      empty  |   l         >       11
11      empty  |   d         >       12
12      empty  |   !         >       STOP


Unlambda

`r```````````.H.e.l.l.o. .w.o.r.l.di


Whitespace
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...

(@Google)

Hello #World #in #Whitespace* # #* # # #
+*[Space]
+ #is #marked #with"#" # #[tab]#with"*"*line-feed #with #"+"* #*so
+it#would
+be #easier #to #write #again... #All*the*non-whitespace-characters #are*ignored...* # #
+*
+ # # # # #** #** # #
+*
+ # # # # #** #****
+*
+ # # # # #* # # # # #
+*
+ # # # # #* #* #***
+*
+ # # # # #** #****
+*
+ # # # # #*** # #* #
+*
+ # # # # #** #** # #
+*
+ # # # # #** # #* # #
+*
+ # # # # #* # # # #*
+*
+ # # # # #* #* #
+*
+ # #
+
+
+


BIT

LINENUMBERZEROCODEPRINTZEROGOTOONELINENUMBERONECODEPRINTONEGOTOONEZEROLINENUMBE
RONEZEROCODEPRINTZEROGOTOONEONELINENUMBERONEONECODEPRINTZEROGOTOONEZEROZEROLINE
NUMBERONEZEROZEROCODEPRINTONEGOTOONEZEROONELINENUMBERONEZEROONECODEPRINTZEROGOT
OONEONEZEROLINENUMBERONEONEZEROCODEPRINTZEROGOTOONEONEONELINENUMBERONEONEONECOD
EPRINTZEROGOTOONEZEROZEROZEROLINENUMBERONEZEROZEROZEROCODEPRINTZEROGOTOONEZEROZ
EROONELINENUMBERONEZEROZEROONECODEPRINTONEGOTOONEZEROONEZEROLINENUMBERONEZEROON
EZEROCODEPRINTONEGOTOONEZEROONEONELINENUMBERONEZEROONEONECODEPRINTZEROGOTOONEON
EZEROZEROLINENUMBERONEONEZEROZEROCODEPRINTZEROGOTOONEONEZEROONELINENUMBERONEONE
ZEROONECODEPRINTONEGOTOONEONEONEZEROLINENUMBERONEONEONEZEROCODEPRINTZEROGOTOONE
ONEONEONELINENUMBERONEONEONEONECODEPRINTONEGOTOONEZEROZEROZEROZEROLINENUMBERONE
ZEROZEROZEROZEROCODEPRINTZEROGOTOONEZEROZEROZEROONELINENUMBERONEZEROZEROZEROONE
CODEPRINTONEGOTOONEZEROZEROONEZEROLINENUMBERONEZEROZEROONEZEROCODEPRINTONEGOTOO
NEZEROZEROONEONELINENUMBERONEZEROZEROONEONECODEPRINTZEROGOTOONEZEROONEZEROZEROL
INENUMBERONEZEROONEZEROZEROCODEPRINTONEGOTOONEZEROONEZEROONELINENUMBERONEZEROON
EZEROONECODEPRINTONEGOTOONEZEROONEONEZEROLINENUMBERONEZEROONEONEZEROCODEPRINTZE
ROGOTOONEZEROONEONEONELINENUMBERONEZEROONEONEONECODEPRINTZEROGOTOONEONEZEROZERO
ZEROLINENUMBERONEONEZEROZEROZEROCODEPRINTZEROGOTOONEONEZEROZEROONELINENUMBERONE
ONEZEROZEROONECODEPRINTONEGOTOONEONEZEROONEZEROLINENUMBERONEONEZEROONEZEROCODEP
RINTONEGOTOONEONEZEROONEONELINENUMBERONEONEZEROONEONECODEPRINTZEROGOTOONEONEONE
ZEROZEROLINENUMBERONEONEONEZEROZEROCODEPRINTONEGOTOONEONEONEZEROONELINENUMBERON
EONEONEZEROONECODEPRINTONEGOTOONEONEONEONEZEROLINENUMBERONEONEONEONEZEROCODEPRI
NTZEROGOTOONEONEONEONEONELINENUMBERONEONEONEONEONECODEPRINTZEROGOTOONEZEROZEROZ
EROZEROZEROLINENUMBERONEZEROZEROZEROZEROZEROCODEPRINTZEROGOTOONEZEROZEROZEROZER
OONELINENUMBERONEZEROZEROZEROZEROONECODEPRINTONEGOTOONEZEROZEROZEROONEZEROLINEN
UMBERONEZEROZEROZEROONEZEROCODEPRINTONEGOTOONEZEROZEROZEROONEONELINENUMBERONEZE
ROZEROZEROONEONECODEPRINTZEROGOTOONEZEROZEROONEZEROZEROLINENUMBERONEZEROZEROONE
ZEROZEROCODEPRINTONEGOTOONEZEROZEROONEZEROONELINENUMBERONEZEROZEROONEZEROONECOD
EPRINTONEGOTOONEZEROZEROONEONEZEROLINENUMBERONEZEROZEROONEONEZEROCODEPRINTONEGO
TOONEZEROZEROONEONEONELINENUMBERONEZEROZEROONEONEONECODEPRINTONEGOTOONEZEROONEZ
EROZEROZEROLINENUMBERONEZEROONEZEROZEROZEROCODEPRINTZEROGOTOONEZEROONEZEROZEROO
NELINENUMBERONEZEROONEZEROZEROONECODEPRINTZEROGOTOONEZEROONEZEROONEZEROLINENUMB
ERONEZEROONEZEROONEZEROCODEPRINTONEGOTOONEZEROONEZEROONEONELINENUMBERONEZEROONE
ZEROONEONECODEPRINTZEROGOTOONEZEROONEONEZEROZEROLINENUMBERONEZEROONEONEZEROZERO
CODEPRINTZEROGOTOONEZEROONEONEZEROONELINENUMBERONEZEROONEONEZEROONECODEPRINTZER
OGOTOONEZEROONEONEONEZEROLINENUMBERONEZEROONEONEONEZEROCODEPRINTZEROGOTOONEZERO
ONEONEONEONELINENUMBERONEZEROONEONEONEONECODEPRINTZEROGOTOONEONEZEROZEROZEROZER
OLINENUMBERONEONEZEROZEROZEROZEROCODEPRINTZEROGOTOONEONEZEROZEROZEROONELINENUMB
ERONEONEZEROZEROZEROONECODEPRINTONEGOTOONEONEZEROZEROONEZEROLINENUMBERONEONEZER
OZEROONEZEROCODEPRINTONEGOTOONEONEZEROZEROONEONELINENUMBERONEONEZEROZEROONEONEC
ODEPRINTONEGOTOONEONEZEROONEZEROZEROLINENUMBERONEONEZEROONEZEROZEROCODEPRINTZER
OGOTOONEONEZEROONEZEROONELINENUMBERONEONEZEROONEZEROONECODEPRINTONEGOTOONEONEZE
ROONEONEZEROLINENUMBERONEONEZEROONEONEZEROCODEPRINTONEGOTOONEONEZEROONEONEONELI
NENUMBERONEONEZEROONEONEONECODEPRINTONEGOTOONEONEONEZEROZEROZEROLINENUMBERONEON
EONEZEROZEROZEROCODEPRINTZEROGOTOONEONEONEZEROZEROONELINENUMBERONEONEONEZEROZER
OONECODEPRINTONEGOTOONEONEONEZEROONEZEROLINENUMBERONEONEONEZEROONEZEROCODEPRINT
ONEGOTOONEONEONEZEROONEONELINENUMBERONEONEONEZEROONEONECODEPRINTZEROGOTOONEONEO
NEONEZEROZEROLINENUMBERONEONEONEONEZEROZEROCODEPRINTONEGOTOONEONEONEONEZEROONEL
INENUMBERONEONEONEONEZEROONECODEPRINTONEGOTOONEONEONEONEONEZEROLINENUMBERONEONE
ONEONEONEZEROCODEPRINTONEGOTOONEONEONEONEONEONELINENUMBERONEONEONEONEONEONECODE
PRINTONEGOTOONEZEROZEROZEROZEROZEROZEROLINENUMBERONEZEROZEROZEROZEROZEROZEROCOD
EPRINTZEROGOTOONEZEROZEROZEROZEROZEROONELINENUMBERONEZEROZEROZEROZEROZEROONECOD
EPRINTONEGOTOONEZEROZEROZEROZEROONEZEROLINENUMBERONEZEROZEROZEROZEROONEZEROCODE
PRINTONEGOTOONEZEROZEROZEROZEROONEONELINENUMBERONEZEROZEROZEROZEROONEONECODEPRI
NTONEGOTOONEZEROZEROZEROONEZEROZEROLINENUMBERONEZEROZEROZEROONEZEROZEROCODEPRIN
TZEROGOTOONEZEROZEROZEROONEZEROONELINENUMBERONEZEROZEROZEROONEZEROONECODEPRINTZ
EROGOTOONEZEROZEROZEROONEONEZEROLINENUMBERONEZEROZEROZEROONEONEZEROCODEPRINTONE
GOTOONEZEROZEROZEROONEONEONELINENUMBERONEZEROZEROZEROONEONEONECODEPRINTZEROGOTO
ONEZEROZEROONEZEROZEROZEROLINENUMBERONEZEROZEROONEZEROZEROZEROCODEPRINTZEROGOTO
ONEZEROZEROONEZEROZEROONELINENUMBERONEZEROZEROONEZEROZEROONECODEPRINTONEGOTOONE
ZEROZEROONEZEROONEZEROLINENUMBERONEZEROZEROONEZEROONEZEROCODEPRINTONEGOTOONEZER
OZEROONEZEROONEONELINENUMBERONEZEROZEROONEZEROONEONECODEPRINTZEROGOTOONEZEROZER
OONEONEZEROZEROLINENUMBERONEZEROZEROONEONEZEROZEROCODEPRINTONEGOTOONEZEROZEROON
EONEZEROONELINENUMBERONEZEROZEROONEONEZEROONECODEPRINTONEGOTOONEZEROZEROONEONEO
NEZEROLINENUMBERONEZEROZEROONEONEONEZEROCODEPRINTZEROGOTOONEZEROZEROONEONEONEON
ELINENUMBERONEZEROZEROONEONEONEONECODEPRINTZEROGOTOONEZEROONEZEROZEROZEROZEROLI
NENUMBERONEZEROONEZEROZEROZEROZEROCODEPRINTZEROGOTOONEZEROONEZEROZEROZEROONELIN
ENUMBERONEZEROONEZEROZEROZEROONECODEPRINTONEGOTOONEZEROONEZEROZEROONEZEROLINENU
MBERONEZEROONEZEROZEROONEZEROCODEPRINTONEGOTOONEZEROONEZEROZEROONEONELINENUMBER
ONEZEROONEZEROZEROONEONECODEPRINTZEROGOTOONEZEROONEZEROONEZEROZEROLINENUMBERONE
ZEROONEZEROONEZEROZEROCODEPRINTZEROGOTOONEZEROONEZEROONEZEROONELINENUMBERONEZER
OONEZEROONEZEROONECODEPRINTONEGOTOONEZEROONEZEROONEONEZEROLINENUMBERONEZEROONEZ
EROONEONEZEROCODEPRINTZEROGOTOONEZEROONEZEROONEONEONELINENUMBERONEZEROONEZEROON
EONEONECODEPRINTZEROGOTOONEZEROONEONEZEROZEROZEROLINENUMBERONEZEROONEONEZEROZER
OZEROCODEPRINTZEROGOTOONEZEROONEONEZEROZEROONELINENUMBERONEZEROONEONEZEROZEROON
ECODEPRINTZEROGOTOONEZEROONEONEZEROONEZEROLINENUMBERONEZEROONEONEZEROONEZEROCOD
EPRINTONEGOTOONEZEROONEONEZEROONEONELINENUMBERONEZEROONEONEZEROONEONECODEPRINTZ
EROGOTOONEZEROONEONEONEZEROZEROLINENUMBERONEZEROONEONEONEZEROZEROCODEPRINTZEROG
OTOONEZEROONEONEONEZEROONELINENUMBERONEZEROONEONEONEZEROONECODEPRINTZEROGOTOONE
ZEROONEONEONEONEZEROLINENUMBERONEZEROONEONEONEONEZEROCODEPRINTZEROGOTOONEZEROON
EONEONEONEONELINENUMBERONEZEROONEONEONEONEONECODEPRINTONE


G-Code

Очень большой листинг. Оригинал тут



Вот уж... Век живи — век учись . Не всем же с .NET и Java начинать...
В любом случае:

Happy Programming

Re: Hello World
От: Ice Dragon Россия  
Дата: 16.05.06 12:10
Оценка: :))) :)
Здравствуйте, anvaka, Вы писали:

A>Нашел интересную подборку программ Hello World на разных языках (263 языка!) . Кому интересно, источник тут.


Караул, там же нету Nemerle, срочно вызываем бригаду розовых слоников.
Знание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения. (Бенджамин Франклин)
Re: Hello World
От: Ilya10k Россия  
Дата: 16.05.06 13:01
Оценка:
Здравствуйте, anvaka, Вы писали:

A>Нашел интересную подборку программ Hello World на разных языках (263 языка!) . Кому интересно, источник тут.


Это ж баян. Постоянно обсуждаются варианты "Hello, World!" на различных языках. Например, Путеводитель автостопщика по потаенным знаниям
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...
. Лучше уж тогда в раздел "юмор" надо было писать.
Re[2]: Hello World
От: anvaka Украина Yasiv
Дата: 16.05.06 13:27
Оценка:
Здравствуйте, Ilya10k, Вы писали:

I>Например, Путеводитель автостопщика по потаенным знаниям
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...
...


Если бы Вы прочитали, прежде чем написать, то заметили бы, что ссылка на эту статью в моем посте встречается несколько раз .
Re[3]: Hello World
От: Ilya10k Россия  
Дата: 16.05.06 13:44
Оценка:
Здравствуйте, anvaka, Вы писали:

A>Здравствуйте, Ilya10k, Вы писали:


I>>Например, Путеводитель автостопщика по потаенным знаниям
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...
...


A>Если бы Вы прочитали, прежде чем написать, то заметили бы, что ссылка на эту статью в моем посте встречается несколько раз .


Но и в моем сообщении главная мысль не в этом.
Re[2]: Hello World
От: Oyster Украина https://github.com/devoyster
Дата: 16.05.06 13:58
Оценка: :)))
Здравствуйте, Ice Dragon, Вы писали:

ID>Караул, там же нету Nemerle, срочно вызываем бригаду розовых слоников.


Ну зачем же сразу слоников? Устрицы тоже вполне ко столу:

System.Console.WriteLine(["!", "d", "l", "r", "o", "w", " ", ",", "o", "l", "l", "e", "H" ].FoldLeft("", _ + _));
Re: Hello World
От: Зверёк Харьковский  
Дата: 16.05.06 17:39
Оценка: 12 (1)
Здравствуйте, anvaka, Вы писали:

A>Spiral (не смог найти линк)


Тоже мне бином Ньютона
FAQ — це мiй ай-кью!
Re: Hello World
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.05.06 23:37
Оценка: 1 (1) :)))
Здравствуйте, anvaka, Вы писали:
...
A>Вот уж... Век живи — век учись . Не всем же с .NET и Java начинать...

Не понял наезда? Умеючи можно на чем угодно писать не хуже приведенных тобой примеров. Напрммер, вот как можно VB задействовать:
Imports System
Imports System.Reflection
Imports System.Reflection.Emit
Imports Microsoft.VisualBasic
Imports System.Globalization

Public Class Test
    ' Declare a delegate type that can be used to execute the completed
    ' dynamic method. 
    Private Delegate Function HelloDelegate(ByVal msg As String, _
        ByVal ret As Integer) As Integer

    Public Shared Sub Main()
        ' Create an array that specifies the types of the parameters
        ' of the dynamic method. This dynamic method has a String
        ' parameter and an Integer parameter.
        Dim helloArgs() As Type = {GetType(String), GetType(Integer)}

        ' Create a dynamic method with the name "Hello", a return type
        ' of Integer, and two parameters whose types are specified by
        ' the array helloArgs. Create the method in the module that
        ' defines the String class.
        Dim hello As New DynamicMethod("Hello", _
            GetType(Integer), _
            helloArgs, _
            GetType(String).Module)

        ' Create an array that specifies the parameter types of the
        ' overload of Console.WriteLine to be used in Hello.
        Dim writeStringArgs() As Type = {GetType(String)}
        ' Get the overload of Console.WriteLine that has one
        ' String parameter.
        Dim writeString As MethodInfo = GetType(Console). _
            GetMethod("WriteLine", writeStringArgs) 

        ' Get an ILGenerator and emit a body for the dynamic method,
        ' using a stream size larger than the IL that will be
        ' emitted.
        Dim il As ILGenerator = hello.GetILGenerator(256)
        ' Load the first argument, which is a string, onto the stack.
        il.Emit(OpCodes.Ldarg_0)
        ' Call the overload of Console.WriteLine that prints a string.
        il.EmitCall(OpCodes.Call, writeString, Nothing)
        ' The Hello method returns the value of the second argument;
        ' to do this, load the onto the stack and return.
        il.Emit(OpCodes.Ldarg_1)
        il.Emit(OpCodes.Ret)

        ' Display MethodAttributes for the dynamic method, set when 
        ' the dynamic method was created.
        Console.WriteLine(vbCrLf & "Method Attributes: {0}", _
            hello.Attributes)

        ' Display the calling convention of the dynamic method, set when the 
        ' dynamic method was created.
        Console.WriteLine(vbCrLf & "Calling convention: {0}", _ 
            hello.CallingConvention)

        ' Display the declaring type, which is always Nothing for dynamic
        ' methods.
        If hello.DeclaringType Is Nothing Then
            Console.WriteLine(vbCrLf & "DeclaringType is always Nothing for dynamic methods.")
        Else
            Console.WriteLine("DeclaringType: {0}", hello.DeclaringType)
        End If

        ' Display the default value for InitLocals.
        If hello.InitLocals Then
            Console.Write(vbCrLf & "This method contains verifiable code.")
        Else
            Console.Write(vbCrLf & "This method contains unverifiable code.")
        End If
        Console.WriteLine(" (InitLocals = {0})", hello.InitLocals)

        ' Display the module specified when the dynamic method was created.
        Console.WriteLine(vbCrLf & "Module: {0}", hello.Module)

        ' Display the name specified when the dynamic method was created.
        ' Note that the name can be blank.
        Console.WriteLine(vbCrLf & "Name: {0}", hello.Name)

        ' For dynamic methods, the reflected type is always Nothing.
        If hello.ReflectedType Is Nothing Then
            Console.WriteLine(vbCrLf & "ReflectedType is Nothing.")
        Else
            Console.WriteLine(vbCrLf & "ReflectedType: {0}", _
                hello.ReflectedType)
        End If

        If hello.ReturnParameter Is Nothing Then
            Console.WriteLine(vbCrLf & "Method has no return parameter.")
        Else
            Console.WriteLine(vbCrLf & "Return parameter: {0}", _
                hello.ReturnParameter)
        End If

        ' If the method has no return type, ReturnType is System.Void.
        Console.WriteLine(vbCrLf & "Return type: {0}", hello.ReturnType)           

        ' ReturnTypeCustomAttributes returns an ICustomeAttributeProvider
        ' that can be used to enumerate the custom attributes of the
        ' return value. At present, there is no way to set such custom
        ' attributes, so the list is empty.
        If hello.ReturnType Is GetType(System.Void) Then
            Console.WriteLine("The method has no return type.")
        Else
            Dim caProvider As ICustomAttributeProvider = _
                hello.ReturnTypeCustomAttributes
            Dim returnAttributes() As Object = _
                caProvider.GetCustomAttributes(True)
            If returnAttributes.Length = 0 Then
                Console.WriteLine(vbCrLf _
                    & "The return type has no custom attributes.")
            Else
                Console.WriteLine(vbCrLf _
                    & "The return type has the following custom attributes:")
                For Each attr As Object In returnAttributes
                    Console.WriteLine(vbTab & attr.ToString())
                Next attr
            End If
        End If

        Console.WriteLine(vbCrLf & "ToString: " & hello.ToString())

        ' Add parameter information to the dynamic method. (This is not
        ' necessary, but can be useful for debugging.) For each parameter,
        ' identified by position, supply the parameter attributes and a 
        ' parameter name.
        Dim parameter1 As ParameterBuilder = hello.DefineParameter( _
             1, ParameterAttributes.In, "message")
        Dim parameter2 As ParameterBuilder = hello.DefineParameter( _
             2, ParameterAttributes.In, "valueToReturn")

        ' Display parameter information.
        Dim parameters() As ParameterInfo = hello.GetParameters()
        Console.WriteLine(vbCrLf & "Parameters: name, type, ParameterAttributes")
        For Each p As ParameterInfo In parameters
            Console.WriteLine(vbTab & "{0}, {1}, {2}", _ 
                p.Name, p.ParameterType, p.Attributes)
        Next p

        ' Create a delegate that represents the dynamic method. This
        ' action completes the method, and any further attempts to
        ' change the method will cause an exception.
    Dim hi As HelloDelegate = _
            CType(hello.CreateDelegate(GetType(HelloDelegate)), HelloDelegate)

        ' Use the delegate to execute the dynamic method.
        Console.WriteLine(vbCrLf & "Use the delegate to execute the dynamic method:")
        Dim retval As Integer = hi(vbCrLf & "Hello, World!", 42)
        Console.WriteLine("Invoking delegate hi(""Hello, World!"", 42) returned: " _
            & retval & ".")

        ' Execute it again, with different arguments.
        retval = hi(vbCrLf & "Hi, Mom!", 5280)
        Console.WriteLine("Invoking delegate hi(""Hi, Mom!"", 5280) returned: " _
            & retval & ".")

        Console.WriteLine(vbCrLf & "Use the Invoke method to execute the dynamic method:")
        ' Create an array of arguments to use with the Invoke method.
        Dim invokeArgs() As Object = {vbCrLf & "Hello, World!", 42}
        ' Invoke the dynamic method using the arguments. This is much
        ' slower than using the delegate, because you must create an
        ' array to contain the arguments, and value-type arguments
        ' must be boxed.
        Dim objRet As Object = hello.Invoke(Nothing, _
            BindingFlags.ExactBinding, Nothing, invokeArgs, _
            New CultureInfo("en-us"))
        Console.WriteLine("hello.Invoke returned: {0}", objRet)
    End Sub
End Class

' This code example produces the following output:
'
'Method Attributes: PrivateScope, Public, Static
'
'Calling convention: Standard
'
'DeclaringType is always Nothing for dynamic methods.
'
'This method contains verifiable code. (InitLocals = True)
'
'Module: CommonLanguageRuntimeLibrary
'
'Name: Hello
'
'ReflectedType is Nothing.
'
'Method has no return parameter.
'
'Return type: System.Int32
'
'The return type has no custom attributes.
'
'ToString: Int32 Hello(System.String, Int32)
'
'Parameters: name, type, ParameterAttributes
'        message, System.String, In
'        valueToReturn, System.Int32, In
'
'Use the delegate to execute the dynamic method:
'
'Hello, World!
'Invoking delegate hi("Hello, World!", 42) returned: 42.
'
'Hi, Mom!
'Invoking delegate hi("Hi, Mom!", 5280) returned: 5280.
'
'Use the Invoke method to execute the dynamic method:
'
'Hello, World!
'hello.Invoke returned: 42

http://msdn2.microsoft.com/en-us/library/system.reflection.emit.dynamicmethod.aspx
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Hello World
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.05.06 23:42
Оценка:
Здравствуйте, Ice Dragon, Вы писали:

ID>Караул, там же нету Nemerle, срочно вызываем бригаду розовых слоников.


Не, для каждой задачи нужен свой язык. Для такой сложной и отвественной нужно брать язык в которм практически нельзя случайно ошибиться и реализовать задуманное как-то не так. В общем, для таких задач слоники выбирают VB.NET:
Re: Hello World
Автор: VladD2
Дата: 18.05.06
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Hello World
От: IT Россия linq2db.com
Дата: 18.05.06 01:09
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Не понял наезда? Умеючи можно на чем угодно писать не хуже приведенных тобой примеров. Напрммер, вот как можно VB задействовать:


Что же так сложно? Вот как надо:

Imports System

Imports NUnit.Framework

Imports BLToolkit.Reflection
Imports BLToolkit.Reflection.Emit

Namespace Examples.Reflection.Emit

    <TestFixture()> _
    Public Class HelloWorld

        Public Interface IHello
            Sub SayHello()
        End Interface

        <Test()> _
        Sub Test()
            Dim assemblyHelper As AssemblyBuilderHelper = New AssemblyBuilderHelper("HelloWorld.dll")
            Dim typeHelper     As TypeBuilderHelper     = assemblyHelper.DefineType("Hello", GetType(Object), GetType(IHello))
            Dim methodHelper   As MethodBuilderHelper   = typeHelper.DefineMethod(GetType(IHello).GetMethod("SayHello"))
            Dim emit           As EmitHelper            = methodHelper.Emitter

            emit.ldstr("Hello, World!")
            emit.call(GetType(Console), "WriteLine", GetType(String))
            emit.ret()

            Dim type As Type = typeHelper.Create()

            Dim hello As IHello = TypeAccessor.CreateInstance(type)

            hello.SayHello()
        End Sub

    End Class

End Namespace

А на шарпе ещё проще (чуть другой алгоритм):

using System;

using NUnit.Framework;

using BLToolkit.Reflection;
using BLToolkit.Reflection.Emit;

namespace Examples.Reflection.Emit
{
    [TestFixture]
    public class HelloWorld
    {
        public interface IHello
        {
            void SayHello(string toWhom);
        }

        [Test]
        public void Test()
        {
            EmitHelper emit = new AssemblyBuilderHelper("HelloWorld.dll")
                .DefineType  ("Hello", typeof(object), typeof(IHello))
                .DefineMethod(typeof(IHello).GetMethod("SayHello"))
                .Emitter;

            emit
                // string.Format("Hello, {0}!", toWhom)
                //
                .ldstr   ("Hello, {0}!")
                .ldarg_1
                .call    (typeof(string), "Format", typeof(string), typeof(object))

                // Console.WriteLine("Hello, World!");
                //
                .call    (typeof(Console), "WriteLine", typeof(string))
                .ret()
                ;

            Type type = emit.Method.Type.Create();

            IHello hello = (IHello)TypeAccessor.CreateInstance(type);

            hello.SayHello("World");
        }
    }
}
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Hello World
От: Chipsеt Россия http://merlinko.com
Дата: 18.05.06 01:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, anvaka, Вы писали:

VD>...
A>>Вот уж... Век живи — век учись . Не всем же с .NET и Java начинать...

VD>Не понял наезда? Умеючи можно на чем угодно писать не хуже приведенных тобой примеров. Напрммер, вот как можно VB задействовать:


Самое ужасное это когда в проекте вот так вот и оформлен каждый вывод в консоль
"Всё что не убивает нас, делает нас сильнее..."
Re[3]: Hello World
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.05.06 20:52
Оценка:
Здравствуйте, IT, Вы писали:

IT>Что же так сложно? Вот как надо:

...

Эээ... слаба! Мы тут размерами меряемся.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.