Чем языки программирования и функции языка находятся под 10? [закрытый]

Как насчет следующего:

int coluna(int sz, int tabuleiro[sz][sz])
{
    int i, j, k, m;
    i= 0;
    m= sz;
    while (i<m) {
        int allzeroes= 1;
        for (j=0; j<sz; j++) {
            if (tabuleiro[i][j]!=0) {
                allzeroes= 0;
                break;
            }
        }
        if (allzeroes) {    // col i is all zeroes
            // move all remaining cols down 1 col
            for (j=i; j<m-1; j++)
                for (k=0; k<sz; k++)
                    tabuleiro[j][k]= tabuleiro[j+1][k];

            // zero last column
            for (k=0; k<sz; k++)
                tabuleiro[m-1][j]= 0;

            // new last col that is not zero
            m--;
        }
        else i++;
    }
    return 1;
}
11
задан 3 revs, 2 users 100% 14 February 2009 в 17:19
поделиться

17 ответов

Ни один, который я видел.

Несомненно, существуют "новые" языки, открывающиеся все время. Но я использовал кавычки паники, потому что все примеры, обычно предлагаемые:

  • переупаковка (на другой язык) идеи, которые были в Вычислениях Науки и Математики в течение многих десятилетий, или
  • языки/методы, которые являются более старыми, чем это, но только недавно "обнаруженные" "основным" миром.

Для конкретных примеров:

Работа продвижения, популяризации, применения и совершенствования их (и многие другой) важные идеи стоит. Но это не делает то использование действительно инновационным.

Конечно, я буду рад, если кто-либо может обеспечить пример действительно исходного понятия в программировании, которое не существовало десять лет назад.

19
ответ дан 3 December 2019 в 00:41
поделиться

Я сказал бы, что последние дополнения C# как LINQ, дополнительные методы, лямбда-выражения и остальные являются относительно новыми. Если они не будут большими прямо сейчас, то они будут.

ASP.NET MVC, хотя это не функция языка, будет большим (я почти уверен), хотя я знаю многих, никогда не будет принимать его.

-3
ответ дан 3 December 2019 в 00:41
поделиться

Синий язык программирования демонстрирует большой потенциал. Подумайте «Python, но проще в использовании и расширении».

Нет, я не говорю, что Blue лучше, чем Python, я просто говорю, что его варят, он прост в использовании и (уже через пару лет) довольно стабилен. Это росло на мне около года :)

0
ответ дан 3 December 2019 в 00:41
поделиться

Язык E сделал доступным облегченный конвейер обещаний. Это должно стать решающей идеей для предстоящей многоядерной революции, поскольку она позволяет писать код, который легко распараллеливается, имеет недорогие зависимости между взаимодействующими подпроцессами и обходит все стандартные проблемы с управлением блокировками и устранением тупиковых ситуаций. , Основные идеи в E были перенесены на множество других языков . E является частью длинной (хотя и несколько непонятной) линейки языков объектных возможностей, которая вносит очень важный вклад в надежность и безопасность программного обеспечения. Е сейчас около 10 лет.

0
ответ дан 3 December 2019 в 00:41
поделиться

Хорошо, мы знаем Контракты Кода начиная с Eiffel - таким образом, этому 20 лет + годы и Анализ кода в течение многих лет и лет, но я никогда не видел такой полной комбинации Контрактов Кода, Анализа кода и Поблочного тестирования как в c# 4.0 и Pex. Возможно, я неправ и не осведомлен о других языках и продуктах, которые действительно предлагали тот уровень функциональности несколько лет назад - но я, конечно, назову ту степень справки к "bugfree" программному обеспечению функцией. Так, действительно ли это является новым?

1
ответ дан 3 December 2019 в 00:41
поделиться

Партия "нового" языка предназначается один или другой хорошо на месте VM, а именно, JVM или CLR. Это позволяет концентрироваться на дизайне синтаксиса, и "философия" больше, чем на реализации (усиливающий существующий оптимизировал VM, GC, библиотеки, и т.д.).

Интересно, некоторые языки предназначаются для обеих платформ, как Язык программирования Вентилятора.

Другие языки просто переводят себя на другой язык (обычно C), таким образом полагаясь на некоторый портативный или локальный оптимизированный компилятор, чтобы сделать хорошее задание.

Я нашел Haxe интересным, потому что он предназначается для нескольких languages/VM: JavaScript, Flash, NekoVM или даже PHP.

Как другие сказали, трудно найти действительно новые понятия сегодня. Частично, потому что много уже были исследованы, частично потому что партия программистов является ленивой и запутанной, если новый язык не использует знакомый синтаксис (я видел партию жалоб людей в списке рассылки Lua, запрашивая, чтобы использование {и} вместо/закончило - см. также жалобы на JavaFX, не являющийся Java...), уже не говоря о новом понятии!

2
ответ дан 3 December 2019 в 00:41
поделиться

Язык программирования Scala находится под контролем 10 лет (я полагаю, что он был первоначально выпущен в 2001), и, как могли утверждать, был первым:

  • Реальный масштабируемый язык (например, из сценариев и implicits к агентам и модулям). Я говорю реальный, потому что некоторые будут требовать других, начиная с Lisp, были первыми здесь, но я верю совместимости Java Scala, объектно-ориентированные функции, система типов и т.д. делает это отличающимся
  • Реальный сплав функционального и объектно-ориентированного программирования (например, наличие функций высшего порядка, но также и и статического контроля типов состояния). Я говорю реальный снова, потому что, в то время как, например, Oz является более старым, я полагаю, что совместимость и прагматизм Scala имеют значение
2
ответ дан 3 December 2019 в 00:41
поделиться

OMeta меньше чем 2 года и является языком для создания других языков. По-моему, это более выразительно, чем языки как предстоящий MGrammar Microsoft.

Самая прохладная идея, которую это имеет, состоит в том, что можно создать языки объектно-ориентированным способом (например, Вы могли создать язык мэшапа Ruby и грамматик C#).

Также хорошо, что синтаксис выглядит почти идентичным BNF и таким образом довольно читаемым.

Я записал больше об этом здесь.

5
ответ дан 3 December 2019 в 00:41
поделиться

очень ожидание Шикнуть.

Шиканье является объектно-ориентированным, языком программирования со статическим контролем типов в активной разработке с 2003, которая стремится использовать поддержку Общеязыковой инфраструктуры Unicode, интернационализации и веб-приложений, при использовании вдохновленного Python syntax1 и особого акцента на расширяемости компилятора и языке. Некоторые знаменитые функции включают вывод типа, генераторы, мультиметоды, дополнительный утиный ввод, макросы, истинные закрытия, приправление карри и Первоклассные функции.

2
ответ дан 3 December 2019 в 00:41
поделиться

Я не думаю, что недавние инновации изобретали новые возможности. Это делало старые идеи доступными (и практичное) в основных настройках. Лямбда-выражения являются ярким примером этого - старый как выступы, но подавляющее большинство разработчиков не будет встречаться с ними перед C# 3 и VB9.

Точно так же две функции, возможно, существовали независимо прежде, но никогда на том же языке. Я не хотел бы начинать требовать, какие комбинации являются новыми, но это достойно рассмотрения.

Природа дженериков.NET, "новых" между прочим?, я не знаю, что в достаточном количестве вычислительной истории говорится, но существуют четкие различия между нею и любым Java дженерики (со стиранием типа) или шаблоны C++ (где специализация является действительно бизнесом времени компиляции насколько я могу сказать, требуя источника для шаблона).

5
ответ дан 3 December 2019 в 00:41
поделиться

Как насчет F# :). Существуют также тонны новых языков в разработке сольными разработчиками. Как scala, jruby, отличные, шикают и т.д.

Чтобы язык завоевал популярность, ему действительно нужна большая поддержка со стороны крупной компании, таким образом, мы застрянем с тем, что мы получили некоторое время. Хотя Sun и MS вкладывают капитал в большой степени в создание их платформ (JVM, CLR) более открытый для этих языков. Значения по умолчанию будут Java и C# на данный момент, но только время покажет.

3
ответ дан 3 December 2019 в 00:41
поделиться

Я думаю, что формулировка вопроса предполагает, что нет никаких инноваций, но на самом деле всего, что показано в обсуждении, вот то, что инновации занимают десятилетия для превращения его в господствующую тенденцию.

Если Вы задали этот вопрос приблизительно 20 лет назад, когда OO было одной из 'больших новых вещей' с C++ и Smalltalk и этажеркой, люди могли просто ответить, что это был просто Simula (1967) повторно упакованный. Но в 1970, я не думаю, что любой рассмотрел бы объекты быть 'большими инновациями', скорее они просто будут 'интересной синтаксической точностью' на том языке Simula. Со временем OO развилось, люди распознали, как OO является естественным для modeling/structing систем, шаблоны разработки были найдены... и теперь сегодня очень много языков просто считают OO само собой разумеющимся ''. Но трудно найти в любой момент вовремя, где люди сказали бы, что 'OO было большой новой идеей', потому что, когда это было новым, никто не ценил ее объема влияния на поле разработки программного обеспечения, и к тому времени, когда ее досягаемость была очевидна, это больше не было новым.

20 лет с этого времени, возможно, все новые/популярные языки будут иметь функцию как 'классы типа' от сегодняшнего Haskell (это - уничтожающая функция), но это уже 'слишком старо' по критериям этого вопроса, чтобы быть инновациями, даже при том, что это может быть 'следующая большая вещь'.

Таким образом да, я держал пари, что существуют новые вещи под солнцем, вероятно, сотни, но они все выключены на крошечных экспериментальных языках и мы не будем ценить новинки до несколько десятилетий спустя, когда лучшие из сегодняшних идей будут совершенствованы/доказаны и превращают свой путь в господствующую тенденцию.

6
ответ дан 3 December 2019 в 00:41
поделиться

Языки развиваются. Вам не обязательно нужен новый язык для получения новой функции языка. Как пример, Haskell не является новым языком, но он действительно имеет много "новых" функций, включая STM.

6
ответ дан 3 December 2019 в 00:41
поделиться

Язык программирования D просто находится под контролем 10 лет. Его уникальные функции включают переходную константу (все достижимое от объекта константы является также константой), оценка функции времени компиляции и способность аннотировать функции, поскольку чистый и иметь их статически проверил компилятор для побочных эффектов, видимых вне функции. Также включенный шаблонная система, которая помещает шаблоны C++, дженерики Java/C#, и т.д. к позору:

  1. Шаблоны Variadic, что "просто работают" на неограниченные количества аргументов.
  2. Строки, числа с плавающей точкой и функциональные псевдонимы могут быть шаблонными параметрами.
  3. static if оператор, подобный тому, что существует на бумаге в C++ 0x, на самом деле реализован и работает.
  4. Строка и шаблон mixins, которые позволяют инжекцию произвольного параметрического шаблонного кода в любое место в Вашем источнике, и для произвольной генерации кода времени компиляции. В крайнем случае это использовалось Don Clugston для создания матричной математической библиотеки, которая на самом деле проанализировала код, данный как строковые литералы во время компиляции, и сгенерировала оптимальный код встроенного ассемблерного кода для этих операций перед этапом генерации кода компилятора.
  5. Структуры могут быть представлены как кортежи, позволив повторение по их полям. Это позволяет, чтобы немного интересного дженерика программировало со структурами.
  6. Смехотворно мощное отражение/самоанализ времени компиляции. Я однажды записал шаблон функции, который мог глубоко скопировать любую структуру пока никакие полиморфные объекты класса во время выполнения (какое отражение времени компиляции просто не может продолжить работать), были включены. Это было сделано с помощью только отражение времени компиляции. Никакая информация о типах во время выполнения не использовалась.
11
ответ дан 3 December 2019 в 00:41
поделиться

Википедия имеет хорошую временную шкалу о 1-м появлении языков программирования - это показывает, что существует несколько языков, что бегунок в подобный в годах 2000 +, хотя я верю им, не является широко используемыми языками (уже?).

12
ответ дан 3 December 2019 в 00:41
поделиться

AgentSpeak (L) язык для программирования интеллектуальных агентов. Это основано на Прологе (который очень стар), но существуют некоторые очень определенные функции, и это совершенно ново.

Можно проверить полностью интерпретатор по имени Jason.

3
ответ дан 3 December 2019 в 00:41
поделиться

Powershell как язык не старше 10, конечно, не языковые функции.

1
ответ дан 3 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: