Для базы данных с высокой активностью вы можете столкнуться с проблемами, когда ваши обновления влияют на активное изменение записей, и по этой причине я рекомендую использовать snapshot ()
db.person.find().snapshot().forEach( function (hombre) {
hombre.name = hombre.firstName + ' ' + hombre.lastName;
db.person.save(hombre);
});
http: // docs .mongodb.org / ручной / ссылки / метод / cursor.snapshot /
Инструменты являются бесплатными и хорошими, чтобы продолжить работать. Это имеет технические и теоретические учебные руководства, много информации, инструментов и генераторов кода для многих langs.
Не онлайн, но возможно необходимо смотреть на Компиляторы: Принципы, Методы и Инструменты (2-й Выпуск) Aho и др. Это - стандартный текст, который развивался в течение 30 лет (если Вы считаете 1-ю Книгу Дракона, опубликованную в 1977
Ну, вот то, где я изучил это...
http://www.cs.uiuc.edu/class/sp08/cs273/
Нажмите на тег лекций, просмотрите путем прокрутки, пока Вы не находите лекции по материалу, о котором Вы говорите.
Любите мою alma mater. Бог благословляет их, они никогда не удаляют свои лекции ни в каком классе, и можно пойти и считать любой из них каждый раз, когда Вы хотите.
править: Похож на Вас, хотят lecture11
Antlr?
Имеет довольно хороший IDE для разработки грамматики и большого количества генераторов для различных языков.