Уважаемое сообщество, я хочу рассказать вам о языке программирования Gentee. Я уверен, что вы о нем ничего не слышали, но это не новинка. Первая рабочая версия компилятора увидела свет в 2008 году, а в конце 2010 была выпущена последняя на данный момент 3-я версия. Gentee является open source проектом и распространяется под MIT лицензией, то есть без всяких условий и ограничений. Кроме меня над компилятором, библиотеками и всей документацией работал еще один человек. В начале я хочу написать об истории возникновения языка. Начиная с 2000 года я работал над инсталляторами, в которых пользователь мог строить сценарии из определенных команд. То есть, каждая команда из параметров на форме должна была конвертироваться в код на каком-то языке, который можно было бы компилировать в байт-код и создавать исполняемый файл. Начинали с примитивного языка, но в конце концов решили сделать язык широкого применения. Основные требования были следующие: быстрый компилятор, легкая работа с Windows API, маленький размер движка виртуальной машины, лаконичный и понятный синтаксис, возможность использования компилятора и виртуальной машины из любого языка программирования. На языке C был написан компилятор в байт-код и виртуальная машина. Gentee.dll (компилятор и ВМ) занимает всего 112 КБ и может быть включена в любой проект, которому требуется встроенный язык программирования. Программа на Gentee может быть выполнена сразу после компиляции или можно создать исполняемый файл с байт-кодом и вшитой виртуальной машиной.
Читать полностью »
Рубрика «Программирование» - 1079
Язык программирования Gentee
2012-06-18 в 5:00, admin, рубрики: open source, байт-код, компилятор, Компиляторы, Программирование, язык программирования, метки: байт-код, компилятор, язык программированияGroovy и трансформации AST на службе безопасности приложения
2012-06-17 в 16:34, admin, рубрики: AST, bytecode, groovy, java, Программирование, метки: AST, bytecode, groovy, javaПредыстория
Мы разрабатываем небольшой портал на Grails и используем Spring Security для управления безопасностью. Плагин spring-security для Grails достаточно удобен и до последнего момента от него не требовалось сложной функциональности.
Недавно был обнаружен неприятный момент в использовании аннотаций @Secured для методов контроллеров Grails. Проблема заключается в том, что аннотации обрабатываются во время исполнения и преобразуются в набор правил для адресов «Адрес -> Набор требуемых ролей». Такой подход порождает ряд проблем в Grails-контроллерах сохранения/удаления данных, поскольку они отправляют данные на основной URL контроллера, то приходиться во-первых аннотировать контроллер, во вторых — невозможно задать различные ограничения для таких запросов.
Речь пойдёт о том, как решить проблему и приобрести хороший инструмент правил безопасности.
Читать полностью »
Цитаты о разработке программного обеспечения
2012-06-17 в 14:40, admin, рубрики: Программирование, разработка, цитатыНесколько цитат о дизайне и разработке программ. Думаю, каждый найдет что-нибудь себе по вкусу. В дополнение к этому топику.
Простота — дух эффективности. // A. Freeman
Читать полностью »
Конкурс для программистов: результаты
2012-06-17 в 11:54, admin, рубрики: Блог компании Инфопульс Украина, конкурс, Программирование, метки: конкурс 
Итак, мы подводим результаты объявленного 3 дня назад конкурса. Под катом вы найдёте информацию о ходе конкурса, верные ответы на задачи и, конечно же, имя победителя. Спасибо всем, кто участвовал, обсуждал конкурс в комментариях и наши поздравления победителю.
Читать полностью »
Основы реляционной алгебры
2012-06-16 в 15:51, admin, рубрики: sql, база данных, Программирование, реляционные базы данных, метки: база данных, реляционные базы данных Реляционная алгебра базируется на теории множеств и является основой логики работы баз данных.
Когда я только изучал устройство баз данных и SQL, предварительное ознакомление с реляционной алгеброй очень помогло дальнейшим знаниям правильно уложиться в голове, и я постараюсь что бы эта статья произвела подобный эффект.
Так что если вы собираетесь начать свое обучение в этой области или вам просто стало интересно, прошу под кат.
Крадущийся тигр, затаившийся дракон
2012-06-16 в 10:17, admin, рубрики: .net, clr, generics, java, jvm, linq, Программирование, метки: .net, c++, clr, generics, java, jvm, linqJava vs. C#… Что может быть лучше вечного спора? Нет, данная статья не посвящена очередному бенчмарку, и даже не является holy war, не стоит даже вопрос: «кто круче».
Для каждой задачи существует свой инструмент. Сравнивать C# и Ruby, например, не имеет смысла, т.к. их целевое предназначение совершенно разное, да и природа также. Однако именно C# и Java являются наиболее близкими по своей философии.
Очень часто коллеги, пишущие на Java, даже не подозревают о многих (!!!) вещах, которые предоставляет (или, наоборот не предоставляет) C#.
Если Вам интересно посмотреть на C# и Java без субъективизма, а также узнать внутреннее устройство той или иной возможности, тогда вперед.
Читать полностью »
Как сделать программу нетерпеливой?
2012-06-15 в 12:36, admin, рубрики: linux, UNIX, Айдеко, Алгоритмы, Блог компании Айдеко, обучение, Программирование, сетевое программирование, метки: c++, linux, unix, Айдеко, обучение, Программирование, сетевое программирование 
Программы, которые были написаны в прошлых лекциях курса «Сетевое программирование в UNIX», обладали бесконечным запасом терпения, то есть беспрекословно ждали, пока не поступят данные для обработки. В новой лекции вы узнаете, как ограничить терпение программы определенными временными рамками.Читать полностью »
Работа с USB устройствами в программе на C в MacOS X
2012-06-14 в 22:26, admin, рубрики: mac os x, usb, Программирование, метки: mac os x, usb Приветствую уважаемых читателей.
В этой небольшой статье я бы хотел рассмотреть вопрос взаимодействия с оборудованием (в данном случае с USB устройствами) в операционной системе MacOS X.
Будет рассмотрены очень интересный и полезный фреймворк IOKit, способ получения уведомлений о добавлении/удалении обордования, а так же получения полной информации об устройствах. Конечно данный материал не претендует на какую либо уникальность, т.к. каждый может разобраться с этими вопросами самостоятельно, изучив документацию Apple, а так же покурив разнообразные исходники на opensource.apple.com
Моя статья — попытка восполнить пробелл в русскоязычном материале подобного рода и описать некоторые грабли, с которыми могут столкнуться новичики.
Все кто заинтересовался — добро пожаловать под кат.
Читать полностью »
Оформление кода
2012-06-14 в 20:59, admin, рубрики: оформление кода, Программирование, метки: оформление кода Данным топиком я хочу поднять вопрос о качестве кода, независимо от используемого языка программирования. В топике я приведу пару советов и методик, которых придерживаются у нас в компании. Я не буду утверждать, что они являются верными, ведь у каждого есть свой вкус и свои предпочтения. Но все равно, в каждом кругу разработчиков, работающих вместе, существуют какие либо правила оформления кода.
Так же, не мало важно увидеть в комментариях ваши подходы и «любимый стиль».
Читать полностью »
Folding для объектов JavaScript в TextMate
2012-06-14 в 11:06, admin, рубрики: javascript, mac os x, Программирование, программы, метки: javascript, mac os x, программы 
TextMate умеет сворачивать куски кода — это удобно, т.к. позволяет окинуть код взглядом целиком. К сожалению по умолчанию в JavaScript он сворачивает только функции, а иногда хочется свернуть и другие большие структуры (условия/циклы/объекты/списки)
Чтобы это было возможно, нужно подправить условия нахождения границ блоков.
Для этого нужно открыть редактор настроек (Bundles → Bundle Editor → Show Bundle Editor)
Там находим узел с нужными настройками языка (JavaScript → JavaScript)
Заменяем значения foldingStartMarker на '^.*({|[)s*$', а foldingStopMarker на '^s*(}|])'Читать полностью »
