LINUX.ORG.RU

Конкурс на простейшую программу

 


0

1

Условие: составить кратчайшую программу на любимом языке и продемонстрировать её технлогию сборки, запуска….

Бью рекорд Hello world на классическом Си. Никаких заголовочных файлов и стандартных библиотек ! Впрочем, нестандартные тоже не нужны.

В вашем любимом редакторе пишем в файл simplest.c:

int main(int argc){
        return argc;
}

компиляция : gcc simplest.c

запуск с демонстраций вывода количества аргументов программы в качестве кодов её возврата :

./a.out ; echo $? 
./a.out - ; echo $? 
./a.out - - ; echo $? 

Верилог

module x;
endmodule

VHDL

entity x is
end entity;

architechture y of x is
begin
end architecture;
demidrol ★★★★★
()
Ответ на: комментарий от anonymous

Наверное, потому, что программирование сродни математике и все программисты очень умные. Мысли у них чёткие, структурированные, в делах порядок. Программы пишут без ошибок почти что.

den73 ★★★★★
()
Ответ на: комментарий от anonymous
Жили у бабуси два весёлых гуся
Один серый, другой белый, два весёлых гуся
Вытянули шеи, у кого длиннее
Один серый, другой белый, у кого длиннее
den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от Uncle_Bobby

Вот сразу видно, какой язык самый лучший.

den73 ★★★★★
()
Ответ на: комментарий от RazrFalcon

А как же компиляторы и рантаймы +/- надёжных языков типа haskell, ocaml? А как же llvm? Им Вы доверяете с закрытыми глазами?

anonymous
()

демонстраций вывода количества аргументов программы в качестве кодов её возврата

bash

exit $#
anonymous
()
Ответ на: комментарий от anonymous

точнее вот так

import os
quit(paramCount())
anonymous
()
Ответ на: комментарий от RazrFalcon

Но ведь оно не на Rust. Rust — лучший язык для хеллоувордов. Нужно собрать подписи и отдать петицию Столлману, пусть перепишут.

WitcherGeralt ★★
()

Охренеть! Программа вызывающая другую программу!

grem ★★★★★
()

<h1>hello, chetotam</h1>

мой хеловорд больше твоего!

buratino ★★★★★
()
Ответ на: комментарий от RazrFalcon

Но ты же написал как-то это сообщение на операционной системе, написанной на Си, и из браузера, написанного на смеси Си и С++?

Rust’о’клоуны как всегда.

anonymous
()
Ответ на: комментарий от anonymous

Тривиальная программа

Дотошные доки конечно, могут придраться: простейшая, кратчайшая программа - отсутствие программы. Как ихтамнет в политике… Но всё-таки, программа должна хоть что-то делать. Если она только выдаёт детерминированный результат - это одно задание, если хоть что-то может принять и передать/трансформировать - другая… Но разница не столь велика, хотя конечно есть.

Но одна из идей такого минималистичного приложения в статье «A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux» раскрывается: дальнейший удобный анализ формата исполнимого кода Unix (ELF)…

Мне лично в голову она пришла, потому, что за годы пришлось вникать в разные языки . И традиция - точки входа в «Hello World» мне казалось загадочной: а почему обязательно приветствие? А если простая и первая программа, то она должна быть именно такой? А сколько вариантов простых программ быть может?

Ну и к тому же про Си, которые многим уже кажется архаикой, от которой они мечатют избавиться. Всегда начинают обучать с функции main, но никогда не говорят, что уже есть переменные в ней и их не надо как-то лично явно откуда то брать. И почему их игнорят? А код возврата - это информация не проще ли той, что печатается на устройство стандартного вывода (сейчас монитор, а раньше - терминал)?

И я смотрю, многие уже это выкристализовали в родственную задачу: сообщение кодом возврата числа параметров программы на разных языках. А вдруг на некоторых языках такое тривиальное действие ну если не невозможно, то вызывает сложности и бОльший код?

Надеюсь, мы увидим ещё здесь многообразные языки программирования доступные в штатном Линукс-дистрибутиве из его родных репов. Ну и ассемблерные и может в кодах даже программки.

А пока ещё можно подумать, как развить идею до следующих конкурсов? Может, объявить конкурс на простейшую технологию генерации графических файлов? Сразу приходит на ум библиотека GD… Или простейший структурированный документ(HTML, Tex…), или файл для сборки на каком то языке… ant, Makefile, …. Или простеший актуальный конвертор данных… В принципе, на Node.JS что-то новенькое было - вот в этом направлении… может создание простейшего кластера или быстрое создание базы данных какой….

Android
() автор топика

Hello world

Это уныло.
«Пробу пера» начинаю всегда с подсчета ряда натуральных чисел от 1 до 100.

Это конечно ностальгия.
Когда-то на СМ1-М зашел в машзал с начальником, а он говорит программисту - «Посчитай ка сумму чисел от 1 до 100».
И о чудо он за полминуты пишет программу из трех строк и выдает нам результат - 5050.
Это был шок!

И дело пошло ...

Владимир

anonymous
()

Конкурс на простейшую программу

А на худшую когда?

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Посчитай ка сумму чисел от 1 до 100». И о чудо он за полминуты пишет программу из трех строк и выдает нам результат - 5050.

1+2………+99+100 100+99+…..+2+1

(1+100)*100/2 - дидактический материал для устного счета в 3 классе.

Uncle_Bobby
()

Давайте лучше почтим памятть Делириума.
У нас с ним было столько планов: скататься в отпуск в Анапу, оприходовать Метапрога, оприходовать Котечку, Кирка Джонсона… Как я теперь без него…

Владимир

anonymous
()
Ответ на: Ассемблер от Android
[luke@r2-d2 shortest]$ cat exit.s 
.global _start
_start:
    movq    (%rsp),%rbx
    movq    $0x01, %rax
    int     $0x80
[luke@r2-d2 shortest]$ as exit.s -o exit.o
[luke@r2-d2 shortest]$ ld exit.o -o exit
[luke@r2-d2 shortest]$ ./exit ; echo $?
1
[luke@r2-d2 shortest]$ ./exit -; echo $?
2
[luke@r2-d2 shortest]$ ./exit - -; echo $?
3
luke ★★★★★
()
Ответ на: комментарий от anonymous

Предлагаю объявить месяц траура на ЛОР.

И нужно завершить его планы - давайте оприходуем хотя бы Метапрога. За нарушение авторских прав.

Владимир

anonymous
()

MS-DOS 1.0

    org 0x100
    int 0x20

Компилять в линуксе так:

as86 simple.asm -b simple.com -s simple.map

Запускать в досбоксе.

З.Ы. Даже метка _start не нужна.

З.З.Ы. А бинарник вообще классный:0x20cd

luke ★★★★★
()
Последнее исправление: luke (всего исправлений: 2)

Пример кратчайшего интерактивного веб-приложения на php (т.н. «гостевая книга»):

<?php
if(@$n=$_GET[p])@fwrite(fopen(p,a),"<p>$n");@readfile(p);?><form><input name=p>

avolver
()
Ответ на: комментарий от anonymous

И нужно завершить его планы - давайте оприходуем хотя бы Метапрога. За нарушение авторских прав.

Пока одни слова и обещания …
Когда дойдет до дела ему и без нас все «объяснят».

anonymous
()

Создаем файл simplest.sh и записываем туда

echo $#

Fast_Sloth
()

Оригинальный true на баше уже был?

urxvt ★★★★★
()
Ответ на: комментарий от anonymous

Делирума забанили, чтобы он тебе объяснил.

luke ★★★★★
()

ret - почти любой ассемблер для почти любого процессора, почти для любой системы.

ЗЫ я знаю о извращенцах, что дают этой операции другие мнемоники.

nihirash ★★★
()
Ответ на: комментарий от anonymous

Владимир, гомосексуалист

Это повод для гордости чтоли? Я тебе из жалости выпишу макпук, но только если он войдёт в тебя полностью

anonymous
()
Ответ на: комментарий от anonymous

Давай лучше товары оприходуем

Фу, извращенец. Я лучше Метапрога отжарю. Во имя Делириума!

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Траур уже закончен?

Вроде нет. Но можно позвать негров-ганцов

anonymous
()
Ответ на: комментарий от anonymous

Это повод для гордости чтоли?

Фу, гомофоб. Делириум бы тебя разложил на атомы.

Владимир, гомосексуалист

anonymous
()
Ответ на: комментарий от luke

GNU Assebler is the winer!

Люк, твой пример на GNU Assembler (переложение моей идеи на Си) на сегодня меня больше всего впечатлил. Хотя PHP-шный вариант - тоже тема… ну и ещё некоторые языки, которые я или забыл или и не знал… В общем предлагаю, тоже оценивать…

Размер скомпилированного Ассемблерного кода - 664 байта - на порядок меньше моего варианта Си.

Жаль, что тут лички нету. А то хотел тебе за инсайт выслать посильно-символический донат-премию (допустим, на Яндекс.Кошелёк)…

Есть ещё идея следующего аналогичного конкурса-демонстрации языка программирования, или как тут удачно сказали «пробы пера».

Тогда на неделе объявить или не стОит?

Android
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.