Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.mmonline.ru/message/1086/print/
Дата изменения: Unknown
Дата индексирования: Tue Feb 5 01:04:10 2013
Кодировка: Windows-1251
Эволюция Программиста

MMOnline – Информационный портал о мехмате МГУ


Этот материал доступен в сети по адресу:
http://www.mmonline.ru/message/1086/


25.12.00 17:19  Эволюция Программиста

Эволюция Программиста

8-ой класс школы

10 PRINT "HELLO WORLD"
20 END

9-ый класс школы

program Hello(input, output)
  begin
    writeln('Hello World')
  end.

1-ый курс мех-мата

#include <stdio.h>
void main(void)
{
  char *message[] = {"Hello ", "World"};
  int i;
  for(i = 0; i < 2; ++i)
    printf("%s", message[i]);
  printf("n");
}

2-ой курс мех-мата

#include <iostream.h>
#include <string.h>
class string
{
private:
  int size;
  char *ptr;
public:
  string() : size(0), ptr(new char(' ')) {}
string(const string &s) : size(s.size)
  {
    ptr = new char[size + 1];
    strcpy(ptr, s.ptr);
  }
~string()
  {
    delete [] ptr;
  }
friend ostream &operator <<(ostream &, const string &);
  string &operator=(const char *);
};
ostream &operator<<(ostream &stream, const string &s)
{
  return(stream << s.ptr);
}
string &string::operator=(const char *chrs)
{
  if (this != &chrs)
  {
    delete [] ptr;
    size = strlen(chrs);
    ptr = new char[size + 1];
    strcpy(ptr, chrs);
  }
  return(*this);
}
int main()
{
  string str;
str = "Hello World";
  cout << str << endl;

  return(0);
}

3-ий курс мех-мата(WIN32API)

[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
    // Bring in the master library.
    importlib("actimp.tlb");
    importlib("actexp.tlb");
// Bring in my interfaces.
    #include "pshlo.idl"
[
    uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
    ]
    cotype THello
      {
      interface IHello;
      interface IPersistFile;
      };
};
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
// Some code-related header files

    importheader(<windows.h>);
    importheader(<ole2.h>);
    importheader(<except.hxx>);
    importheader("pshlo.h");
    importheader("shlo.hxx");
    importheader("mycls.hxx");
// Needed typelibs
    importlib("actimp.tlb");
    importlib("actexp.tlb");
    importlib("thlo.tlb");
[
    uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
    aggregatable
    ]
    coclass CHello
      {
      cotype THello;
      };
};
#include "ipfix.hxx"
extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
    IPFIX(CLSID_CHello);
CHello(IUnknown *pUnk);
    ~CHello();
HRESULT  __stdcall        PrintSz(LPWSTR pwszString);

private:
    static int cObjRef;
};
#include <windows.h>
#include <ole2.h>
#include <stdio.h>
#include <stdlib.h>
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
    cObjRef++;
    return;
}
HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
{
    printf("%wsn", pwszString);
    return(ResultFromScode(S_OK));
}
CHello::~CHello(void)
{
// When the object count goes to zero, stop the server.
cObjRef--;
if( cObjRef == 0 )
    PulseEvent(hEvent);
return;
}
#include <windows.h>
#include <ole2.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
HANDLE hEvent;
int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;

CHelloCF *pCF = new CHelloCF();
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
// Initialize the OLE libraries.
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
                REGCLS_MULTIPLEUSE, &dwRegistration);
// Wait for an event to stop.
WaitForSingleObject(hEvent, INFINITE);
// Revoke and release the class object.
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();
// Tell OLE we are going away.

CoUninitialize();
return(0);
}
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
    0x2573F891,
    0xCFEE,
    0x101A,
    { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
    0x2573F890,
    0xCFEE,
    0x101A,
    { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include <windows.h>
#include <ole2.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"
int _cdecl main(
int argc,
char * argv[]
) {
HRESULT       hRslt;
IHello               *pHello;
ULONG         ulCnt;
IMoniker *    pmk;
WCHAR         wcsT[_MAX_PATH];
WCHAR         wcsPath[2 * _MAX_PATH];
// Get object path.
wcsPath[0] = ' ';
wcsT[0] = ' ';
if( argc > 1) {
    mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
    wcsupr(wcsPath);
    }
else {

    fprintf(stderr, "Object path must be specifiedn");
    return(1);
    }
// Get print string.
if(argc > 2)
    mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
    wcscpy(wcsT, L"Hello World");
printf("Linking to object %wsn", wcsPath);
printf("Text String %wsn", wcsT);
// Initialize the OLE libraries.
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath, &pmk);
    if(SUCCEEDED(hRslt))
      hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {
// Print a string out.
      pHello->PrintSz(wcsT);
Sleep(2000);
      ulCnt = pHello->Release();
      }
    else
      printf("Failure to connect, status: %lx", hRslt);
// Tell OLE we are going away.
    CoUninitialize();
    }
return(0);
}

Третьекурсник экспериментатор на VAXе

#include <stdio.h>
#define S "Hello, Worldn"
main(){
int i=4,j=5;
i*=5;j*=4;
printf("4*5=%d 5*4=%dn",i,j);
exit(printf(S) == strlen(S) ? 0 : 1);}

4-ый курс мех-мата

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Четверокурсник экспериментатор на HP

% echo "Hello, world." > /dev/tty13

Хакер-подмастерье

#!/usr/local/bin/perl
$msg="Hello, world.n";
if ($#ARGV >= 0) {
  while(defined($arg=shift(@ARGV))) {
    $outfilename = $arg;
    open(FILE, ">" . $outfilename) || die "Can't write $arg: $!n";
    print (FILE $msg);
    close(FILE) || die "Can't close $arg: $!n";
  }
} else {
  print ($msg);
}
1;

Системный программист на AXE

LL0:
        .seg    "data"
        .seg    "text"
        .proc 04
        .global _main
_main:
        !#PROLOGUE# 0
        sethi   %hi(LF26),%g1
        add     %g1,%lo(LF26),%g1
        save    %sp,%g1,%sp
        !#PROLOGUE# 1
        .seg    "data1"
L30:
        .ascii  "Hello, World 12 "
        .seg    "text"
        .seg    "data1"
L32:
        .ascii  "Hello, World 12 "
        .seg    "text"
        set     L32,%o0
        call    _strlen,1
        nop
        mov     %o0,%i5
        set     L30,%o0
        call    _printf,1
        nop
        cmp     %o0,%i5
        bne     L2000000
        nop
        mov     0,%o0
        b       L2000001
        nop
L2000000:
        mov     0x1,%o0
L2000001:
        call    _exit,1
        nop
LE26:
        ret
        restore
       LF26 = -96
        LP26 = 96
        LST26 = 96
        LT26 = 96
        .seg    "data"

0000000 0103 0107 0000 0060 0000 0020 0000 0000
0000020 0000 0030 0000 0000 0000 0054 0000 0000
0000040 033f ffff 8200 63a0 9de3 8001 1100 0000
0000060 9012 2000 4000 0000 0100 0000 ba10 0008
0000100 1100 0000 9012 2000 4000 0000 0100 00 ba10 0008
0000100 1100 0000 9012 2000 4000 0000 0100 0000
0000120 80a2 001d 1280 0005 0100 0000 9010 2000
0000140 1080 0003 0100 0000 9010 2001 4000 0000
0000160 0100 0000 81c7 e008 81e8 0000 0000 0000
0000200 4865 6c6c 6f2c 2057 6f72 6c64 0a00 4865
0000220 6c6c 6f2c 2057 6f72 6c64 0a00 0000 0000
0000240 0000 000c 0000 0608 0000 006e 0000 0010
0000260 0000 060b 0000 006e 0000 0014 0000 0286
0000300 ffff ffec 0000 0020 0000 0608 0000 0060
0000320 0000 0024 0000 060b 0000 0060 0000 0028
0000340 0000 0186 ffff ffd8 0000 004c 0000 0386
0000360 ffff ffb4 0000 0004 0500 0000 0000 0000
0000400 0000 000a 0100 0000 0000 0000 0000 0012
0000420 0100 0000 0000 0000 0000 001a 0100 0000
0000440 0000 0000 0000 0020 5f6d 6169 6e00 5f70
0000460 7269 6e74 6600 5f73 7472 6c65 6e00 5f65
0000500 7869 7400
0000504

% axe_generate -f system.uhdl
Application 'Exchange' generated
2324042350000000 source code lines
No Errors detected.
Hardware retrieval...done OK
Certification Test...done OK
Packing..............done OK
Delivery.............done OK
Application 'Exchange' delivered to customer
23456000 bytes/sec.
End processing, 2345 seconds.

Шибко высокоуровневый программист

system.uhdl :

SYSTEM
  CREATE ScreenWin
    SIZE 20000000/Unit=One
    DESTINATION Order.dest[One]
    OUTPUT CHARACTER['Hello world']
  END
END

Младший менеджер

10 PRINT "HELLO WORLD"
20 END

Средний менеджер

mail -s "Hello, world." bob@b12

 Bob, could you please write me a program that prints
 "Hello, world."? I need it by tomorrow.

^D

Старший менеджер

% zmail all

  I need a "Hello, world." program by this afternoon.

Биг Босс

% message
message: Command not found
% pm
pm: Command not found
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
  help mail
help: Command not found.
>what
what: Command not found
>need help
need: Command not found
  damn!
!: Event unrecognized
>exit
exit: Unknown
>quit
%
% logout

Bipppp ! Mrs. Thompson? Please page Tommy for me. NOW!


Copyright © 2000−2010 MMOnline.Ru | http://www.mmonline.ru/